Exemple #1
0
def migrate_genesis_txn(base_dir):
    for suffix in ('sandbox', 'live', 'local'):
        old_domain_genesis = os.path.join(
            base_dir, 'transactions_{}'.format(suffix))
        old_pool_genesis = os.path.join(
            base_dir, 'pool_transactions_{}'.format(suffix))

        new_domain_genesis = os.path.join(
            base_dir, 'domain_transactions_{}_genesis'.format(suffix))
        new_pool_genesis = os.path.join(
            base_dir, 'pool_transactions_{}_genesis'.format(suffix))

        if os.path.exists(new_domain_genesis):
            os.remove(new_domain_genesis)
        if os.path.exists(new_pool_genesis):
            os.remove(new_pool_genesis)

        if os.path.exists(old_domain_genesis):
            old_ser = CompactSerializer(getTxnOrderedFields())
            new_ser = JsonSerializer()
            with open(old_domain_genesis, 'r') as f1:
                with open(new_domain_genesis, 'w') as f2:
                    for line in store_utils.cleanLines(f1):
                        txn = old_ser.deserialize(line)
                        txn = {k: v for k, v in txn.items() if v}
                        txn = new_ser.serialize(txn, toBytes=False)
                        f2.write(txn)
                        f2.write('\n')
            os.remove(old_domain_genesis)
        if os.path.exists(old_pool_genesis):
            os.rename(old_pool_genesis, new_pool_genesis)
Exemple #2
0
    def _generate_genesis_files(self):

        pool_txns, domain_txns = self._split_pool_and_domain()

        # TODO make Ledger a context manager
        pl = TestNetworkSetup.init_pool_ledger(appendToLedgers=False,
                                               baseDir=self.base_dir,
                                               config=self.config,
                                               envName='test')
        pl_lines = self._add_and_stop(pool_txns, pl)

        dl = TestNetworkSetup.init_domain_ledger(
            appendToLedgers=False,
            baseDir=self.base_dir,
            config=self.config,
            envName='test',
            domainTxnFieldOrder=getTxnOrderedFields())
        dl_lines = self._add_and_stop(domain_txns, dl)

        return adict(pool=adict(lines=pl_lines,
                                root=pl.root_hash,
                                size=pl.size),
                     domain=adict(lines=dl_lines,
                                  root=dl.root_hash,
                                  size=dl.size))
def migrate_genesis_txn(base_dir):
    for suffix in ('sandbox', 'live', 'local'):
        old_domain_genesis = os.path.join(
            base_dir, 'transactions_{}'.format(suffix))
        old_pool_genesis = os.path.join(
            base_dir, 'pool_transactions_{}'.format(suffix))

        new_domain_genesis = os.path.join(
            base_dir, 'domain_transactions_{}_genesis'.format(suffix))
        new_pool_genesis = os.path.join(
            base_dir, 'pool_transactions_{}_genesis'.format(suffix))

        if os.path.exists(old_domain_genesis):
            os.remove(old_domain_genesis)
        if os.path.exists(old_pool_genesis):
            os.remove(old_pool_genesis)

        if os.path.exists(new_domain_genesis):
            old_ser = CompactSerializer(getTxnOrderedFields())
            new_ser = JsonSerializer()
            with open(new_domain_genesis, 'r') as f1:
                with open(old_domain_genesis, 'w') as f2:
                    for line in store_utils.cleanLines(f1):
                        txn = new_ser.deserialize(line)
                        txn = old_ser.serialize(txn)
                        f2.write(txn)
            os.remove(new_domain_genesis)
        if os.path.exists(new_pool_genesis):
            os.rename(new_pool_genesis, old_domain_genesis)
Exemple #4
0
    def _generate_genesis_files(self):

        pool_txns, domain_txns = self._split_pool_and_domain()

        # TODO make Ledger a context manager
        pl = TestNetworkSetup.init_pool_ledger(appendToLedgers=False,
                                               baseDir=self.base_dir,
                                               config=self.config,
                                               envName='test')
        pl_lines = self._add_and_stop(pool_txns, pl)

        dl = TestNetworkSetup.init_domain_ledger(
            appendToLedgers=False,
            baseDir=self.base_dir,
            config=self.config,
            envName='test',
            domainTxnFieldOrder=getTxnOrderedFields())
        dl_lines = self._add_and_stop(domain_txns, dl)

        return adict(pool=adict(lines=pl_lines,
                                root=pl.root_hash,
                                size=pl.size),
                     domain=adict(lines=dl_lines,
                                  root=dl.root_hash,
                                  size=dl.size))
def migrate_all_hash_stores(node_data_directory):
    # the new hash store (merkle tree) will be recovered from the new transaction log after re-start
    # just delete the current hash store
    new_merkle_nodes = os.path.join(node_data_directory, '_merkleNodes')
    new_merkle_leaves = os.path.join(node_data_directory, '_merkleLeaves')
    new_merkle_nodes_bin = os.path.join(
        node_data_directory, '_merkleNodes.bin')
    new_merkle_leaves_bin = os.path.join(
        node_data_directory, '_merkleLeaves.bin')
    new_merkle_nodes_config_bin = os.path.join(
        node_data_directory, 'config_merkleNodes.bin')
    new_merkle_leaves_config_bin = os.path.join(
        node_data_directory, 'config_merkleLeaves.bin')

    if os.path.exists(new_merkle_nodes):
        shutil.rmtree(new_merkle_nodes)
    if os.path.exists(new_merkle_leaves):
        shutil.rmtree(new_merkle_leaves)
    if os.path.exists(new_merkle_nodes_bin):
        os.remove(new_merkle_nodes_bin)
    if os.path.exists(new_merkle_leaves_bin):
        os.remove(new_merkle_leaves_bin)
    if os.path.exists(new_merkle_nodes_config_bin):
        os.remove(new_merkle_nodes_config_bin)
    if os.path.exists(new_merkle_leaves_config_bin):
        os.remove(new_merkle_leaves_config_bin)

    # open new Ledgers
    fields = getTxnOrderedFields()
    _open_old_ledger(node_data_directory, config.poolTransactionsFile,
                     'pool', serializer=JsonSerializer())
    _open_old_ledger(node_data_directory, config.domainTransactionsFile,
                     'domain', serializer=CompactSerializer(fields=fields))
    _open_old_ledger(node_data_directory, config.configTransactionsFile,
                     'config', serializer=JsonSerializer())
def migrate_all_ledgers_for_node(node_data_directory):
    # using default ledger names
    _migrate_ledger(node_data_directory,
                    config.poolTransactionsFile, config.poolTransactionsFile,
                    serializer=JsonSerializer())
    _migrate_ledger(
        node_data_directory,
        config.configTransactionsFile,
        config.configTransactionsFile,
        serializer=JsonSerializer())

    # domain ledger uses custom CompactSerializer and old file name
    fields = getTxnOrderedFields()
    _migrate_ledger(node_data_directory,
                    config.domainTransactionsFile.replace(
                        'domain_', ''), config.domainTransactionsFile,
                    serializer=CompactSerializer(fields=fields))
Exemple #7
0
def migrate_all_ledgers_for_node(node_data_directory):
    # using default ledger names
    _migrate_ledger(node_data_directory,
                    config.poolTransactionsFile, config.poolTransactionsFile,
                    serializer=JsonSerializer())
    _migrate_ledger(
        node_data_directory,
        config.configTransactionsFile,
        config.configTransactionsFile,
        serializer=JsonSerializer())

    # domain ledger uses custom CompactSerializer and old file name
    fields = getTxnOrderedFields()
    _migrate_ledger(node_data_directory,
                    config.domainTransactionsFile.replace(
                        'domain_', ''), config.domainTransactionsFile,
                    serializer=CompactSerializer(fields=fields))
def migrate_all_hash_stores(node_data_directory):
    # the new hash store (merkle tree) will be recovered from the new transaction log after re-start
    # just delete the current hash store
    new_merkle_nodes = os.path.join(node_data_directory, '_merkleNodes')
    new_merkle_leaves = os.path.join(node_data_directory, '_merkleLeaves')
    new_merkle_nodes_bin = os.path.join(node_data_directory,
                                        '_merkleNodes.bin')
    new_merkle_leaves_bin = os.path.join(node_data_directory,
                                         '_merkleLeaves.bin')
    new_merkle_nodes_config_bin = os.path.join(node_data_directory,
                                               'config_merkleNodes.bin')
    new_merkle_leaves_config_bin = os.path.join(node_data_directory,
                                                'config_merkleLeaves.bin')

    if os.path.exists(new_merkle_nodes):
        shutil.rmtree(new_merkle_nodes)
    if os.path.exists(new_merkle_leaves):
        shutil.rmtree(new_merkle_leaves)
    if os.path.exists(new_merkle_nodes_bin):
        os.remove(new_merkle_nodes_bin)
    if os.path.exists(new_merkle_leaves_bin):
        os.remove(new_merkle_leaves_bin)
    if os.path.exists(new_merkle_nodes_config_bin):
        os.remove(new_merkle_nodes_config_bin)
    if os.path.exists(new_merkle_leaves_config_bin):
        os.remove(new_merkle_leaves_config_bin)

    # open new Ledgers
    fields = getTxnOrderedFields()
    _open_old_ledger(node_data_directory,
                     config.poolTransactionsFile,
                     'pool',
                     serializer=JsonSerializer())
    _open_old_ledger(node_data_directory,
                     config.domainTransactionsFile,
                     'domain',
                     serializer=CompactSerializer(fields=fields))
    _open_old_ledger(node_data_directory,
                     config.configTransactionsFile,
                     'config',
                     serializer=JsonSerializer())
Exemple #9
0
def domainTxnOrderedFields():
    return getTxnOrderedFields()
Exemple #10
0
def addTxnToGenesisFile(dir, file, txns, fields=getTxnOrderedFields()):
    ledger = create_genesis_txn_init_ledger(dir, file)
    for txn in txns:
        ledger.add(txn)
    ledger.stop()
Exemple #11
0
def addTxnToGenesisFile(dir, file, txns, fields=getTxnOrderedFields()):
    ledger = create_genesis_txn_init_ledger(dir, file)
    for txn in txns:
        ledger.add(txn)
    ledger.stop()
Exemple #12
0
def domainTxnOrderedFields():
    return getTxnOrderedFields()
Exemple #13
0
        seq_no = 1

        for td in trustee_defs:
            trustee_txn = Member.nym_txn(
                td.nym,
                verkey=td.verkey,
                role=TRUSTEE,
                seq_no=seq_no,
                protocol_version=genesis_protocol_version)

            seq_no += 1
            domainLedger.add(trustee_txn)

        for sd in steward_defs:
            nym_txn = Member.nym_txn(sd.nym,
                                     verkey=sd.verkey,
                                     role=STEWARD,
                                     creator=trustee_defs[0].nym,
                                     seq_no=seq_no,
                                     protocol_version=genesis_protocol_version)
            seq_no += 1
            domainLedger.add(nym_txn)

        domainLedger.stop()


if __name__ == '__main__':

    DomainLedger.bootstrap_domain_ledger(getConfig(), ConfigHelper,
                                         getTxnOrderedFields())
        d=adict()
        d.name = st
        d.nym = cf.get(st,'nym')
        d.fromnym= cf.get(st,'from')
        d.role = cf.get(st,'role')
        d.verkey = cf.get(st,'verkey')
        
        nyms.append(d)

    print(nyms)
    
    getConfig().NETWORK_NAME = args.network

    chroot = None
    config_helper = ConfigHelper(getConfig(),chroot = chroot)
    os.makedirs(config_helper.genesis_dir, exist_ok=True)
    genesis_dir = config_helper.genesis_dir
    keys_dir = config_helper.keys_dir
    print(keys_dir)
    domainLedger = init_domain_ledger(args.appendToLedgers, genesis_dir,
                                       getConfig(), getTxnOrderedFields())
    domain(domainLedger , nyms)
    
    
    genesis_dir = setup_clibase_dir(getConfig(), args.network)
    keys_dir = os.path.join(genesis_dir, "keys")
    
    domainLedger = init_domain_ledger(args.appendToLedgers, genesis_dir,
                                          getConfig(), getTxnOrderedFields())
    domain(domainLedger ,nyms)
Exemple #15
0
 def txnFieldOrdering(self):
     fields = getTxnOrderedFields()
     return updateFieldsWithSeqNo(fields)
Exemple #16
0
from stp_core.common.util import adict

import os
import logging
import argparse
import string
import random

def generateSeed():
    alphabet = string.ascii_uppercase + string.ascii_lowercase + string.digits    
    return ''.join(random.choice(alphabet) for _ in range(32))

if __name__ == "__main__":
    logger = logging.getLogger()
    config = getConfig()
    txFieldOrder = getTxnOrderedFields()

    logging.FileHandler('/var/lib/indy.log')

    parser = argparse.ArgumentParser(description="Generate pool transactions")
    parser.add_argument('--node-names', 
                        required=True)
    parser.add_argument('--node-ips', 
                        required=True)
    parser.add_argument('--node-seeds', 
                        required=True)                    
    parser.add_argument('--node-port', 
                        default=9701)       
    parser.add_argument('--client-port', 
                        default=9702)
    parser.add_argument('--append', 
 def txnFieldOrdering(self):
     fields = getTxnOrderedFields()
     return updateFieldsWithSeqNo(fields)
import logging
from indy_network import NetworkSetup

from indy_common.config_util import getConfig
from indy_common.config_helper import ConfigHelper, NodeConfigHelper
from indy_common.txn_util import getTxnOrderedFields

portsStart = 9700
nodeParamsFileName = 'indy.env'

if __name__ == "__main__":
    logger = logging.getLogger()
    logger.disabled = True
    NetworkSetup.bootstrapNodes(getConfig(), portsStart, nodeParamsFileName,
                                getTxnOrderedFields(), ConfigHelper,
                                NodeConfigHelper)
Exemple #19
0
    def bootstrap_domain_ledger(cls,
                                config=getConfig(),
                                config_helper_class=PConfigHelper,
                                domainTxnFieldOrder=getTxnOrderedFields(),
                                chroot: str = None):
        parser = argparse.ArgumentParser(
            description="Generate domain transactions")
        parser.add_argument('--trusteeDids',
                            required=True,
                            help='Trustee Dids, provide comma separated dids',
                            type=cls._bootstrap_args_type_dids)
        parser.add_argument(
            '--trusteeVerkeys',
            required=True,
            help='Trustees Verkey, provide comma separated verification keys',
            type=cls._bootstrap_args_type_verkeys)
        parser.add_argument('--stewardDids',
                            required=True,
                            help='Stewards Dids, provide comma separated dids',
                            type=cls._bootstrap_args_type_dids)
        parser.add_argument(
            '--stewardVerkeys',
            required=True,
            help='Stewards Verkey, provide comma separated verification keys',
            type=cls._bootstrap_args_type_verkeys)
        parser.add_argument('--network',
                            required=False,
                            help='Network name (default sandbox)',
                            type=str,
                            default="sandbox")
        parser.add_argument(
            '--appendToLedgers',
            help="Determine if ledger files needs to be erased "
            "before writing new information or not",
            action='store_true')

        args = parser.parse_args()

        if (len(args.trusteeDids) != len(args.trusteeVerkeys)):
            raise argparse.ArgumentTypeError(
                "Every Trustee did must need to have  it's "
                "corresponding verification key and vice versa")

        if (len(args.stewardDids) != len(args.stewardVerkeys)):
            raise argparse.ArgumentTypeError(
                "Every Steward did must need to have it's "
                "corresponding verification key and vice versa")

        for line in fileinput.input(['/etc/indy/indy_config.py'],
                                    inplace=True):
            if 'NETWORK_NAME' not in line:
                print(line, end="")
        with open('/etc/indy/indy_config.py', 'a') as cfgfile:
            cfgfile.write("NETWORK_NAME = '{}'".format(args.network))

        trustee_defs = cls.gen_def(args.trusteeDids, args.trusteeVerkeys)
        steward_defs = cls.gen_def(args.stewardDids, args.stewardVerkeys)

        cls.bootstrap_domain_ledger_core(config, args.network,
                                         args.appendToLedgers,
                                         domainTxnFieldOrder, trustee_defs,
                                         steward_defs, config_helper_class)