コード例 #1
0
ファイル: keystore.py プロジェクト: BulatSaif/reblockstorer
 def __init__(self, source_public, user, peer_address, source_private=None):
     assert (user or peer_address)
     self.used = False
     self.source_public_key = source_public
     if None == source_private:
         self.private_key = IrohaCrypto.private_key()
         self.public_key = IrohaCrypto.derive_public_key(self.private_key)
     else:
         self.private_key = source_private
         self.public_key = IrohaCrypto.derive_public_key(source_private)
         assert (source_public == self.public_key.decode('utf-8'))
     self.user = user
     self.peer_address = peer_address
コード例 #2
0
ファイル: iroha_helpers.py プロジェクト: 2hoursleep/Iroha-CLI
def save_to_wallet_db(account_id):
    private_key = ic.private_key()
    public_key = ic.derive_public_key(private_key)
    private_key_file = account_id + ".priv"
    public_key_file = account_id + ".pub"
    open(private_key_file, "wb+").write(private_key)
    open(public_key_file, "wb+").write(public_key)
コード例 #3
0
ファイル: IrohaPy.py プロジェクト: bruce-willis/Iroha-Python
 def __init__(self, account_name, domain):
     self.account_name = account_name
     self.domain = domain
     self.full_name = f"{self.account_name}@{self.domain}"
     self.__private_key = IrohaCrypto.private_key()
     self.public_key = IrohaCrypto.derive_public_key(self.__private_key)
     self.iroha = Iroha(self.full_name)
コード例 #4
0
 def __init__(self, source_public, user, peer_address):
     assert (user or peer_address)
     self.source_public_key = source_public
     self.private_key = IrohaCrypto.private_key()
     self.public_key = IrohaCrypto.derive_public_key(self.private_key)
     self.user = user
     self.peer_address = peer_address
コード例 #5
0
 def create_agent(self, company_name, agent_name):
     user_private_key = IrohaCrypto.private_key()
     user_public_key = IrohaCrypto.derive_public_key(user_private_key)
     commands = [
         self.iroha.command('CreateAccount',
                            account_name=agent_name,
                            domain_id=company_name,
                            public_key=user_public_key),
         self.iroha.command(
             'GrantPermission',
             account_id=get_full_acc(agent_name, company_name),
             permission=primitive_pb2.can_set_my_account_detail),
         self.iroha.command('AddSignatory',
                            account_id=self.admin_account,
                            public_key=user_public_key)
     ]
     transaction = self.iroha.transaction(commands)
     IrohaCrypto.sign_transaction(transaction, self.admin_private_key)
     self.__send_transaction_and_print_status(transaction)
     if self.__send_transaction_and_print_status(
             transaction) == "COMMITTED":
         return "Your private key: " + str(
             user_private_key) + " Your public key: " + str(
                 user_public_key), 201
     else:
         return 'Internal Error', 500
コード例 #6
0
def save_keys_to_file(account_id):
    private_key = ic.private_key()
    public_key = ic.derive_public_key(private_key)
    private_key_file = account_id + '.priv'
    public_key_file = account_id + '.pub'
    open(private_key_file, 'wb+').write(private_key)
    open(public_key_file, 'wb+').write(public_key)
コード例 #7
0
def genesis_tx():
    test_permissions = [
        primitive_pb2.can_grant_can_transfer_my_assets,
        primitive_pb2.can_receive, primitive_pb2.can_transfer
    ]
    genesis_commands = commons.genesis_block(admin, alice, test_permissions)
    genesis_commands.extend([
        iroha.command('CreateAccount',
                      account_name='bob',
                      domain_id='test',
                      public_key=IrohaCrypto.derive_public_key(bob['key'])),
        iroha.command('CreateAsset',
                      asset_name='coin',
                      domain_id='test',
                      precision=2),
        iroha.command('AddAssetQuantity',
                      asset_id='coin#test',
                      amount='100.00'),
        iroha.command('TransferAsset',
                      src_account_id=admin['id'],
                      dest_account_id=alice['id'],
                      asset_id='coin#test',
                      description='init top up',
                      amount='90.00')
    ])
    tx = iroha.transaction(genesis_commands)
    IrohaCrypto.sign_transaction(tx, admin['key'])
    return tx
コード例 #8
0
ファイル: commons.py プロジェクト: blockchain-samples/iroha-1
def genesis_block(admin, alice, test_permissions, multidomain=False):
    """
    Compose a set of common for all tests' genesis block transactions
    :param admin: dict of id and private key of admin
    :param alice: dict of id and private key of alice
    :param test_permissions: permissions for users in test domain
    :param multidomain: admin and alice accounts will be created in
    different domains and the first domain users will have admin right
    by default if True
    :return: a list of Iroha.command's
    """
    peer = primitive_pb2.Peer()
    peer.address = '0.0.0.0:50541'
    peer.peer_key = IrohaCrypto.derive_public_key(admin['key'])
    commands = [
        command('AddPeer', peer=peer),
        command('CreateRole',
                role_name='admin_role',
                permissions=all_permissions()),
        command('CreateRole',
                role_name='test_role',
                permissions=test_permissions)
    ]
    if multidomain:
        commands.append(
            command('CreateDomain',
                    domain_id='first',
                    default_role='admin_role'))
    commands.extend([
        command('CreateDomain',
                domain_id='second' if multidomain else 'test',
                default_role='test_role'),
        command('CreateAccount',
                account_name='admin',
                domain_id='first' if multidomain else 'test',
                public_key=IrohaCrypto.derive_public_key(admin['key'])),
        command('CreateAccount',
                account_name='alice',
                domain_id='second' if multidomain else 'test',
                public_key=IrohaCrypto.derive_public_key(alice['key']))
    ])
    if not multidomain:
        commands.append(
            command('AppendRole',
                    account_id=admin['id'],
                    role_name='admin_role'))
    return commands
コード例 #9
0
ファイル: iroha_helpers.py プロジェクト: 2hoursleep/Iroha-CLI
def generate_new_node_keys(node_id):
    private_key = ic.private_key()
    public_key = ic.derive_public_key(private_key)
    private_key_file = node_id + ".priv"
    public_key_file = node_id + ".pub"
    open(private_key_file, "wb+").write(private_key)
    open(public_key_file, "wb+").write(public_key)
    return public_key
コード例 #10
0
def generate_new_node_keys(node_id):
    private_key = ic.private_key()
    public_key = ic.derive_public_key(private_key)
    private_key_file = node_id + '.priv'
    public_key_file = node_id + '.pub'
    open(private_key_file, 'wb+').write(private_key)
    open(public_key_file, 'wb+').write(public_key)
    return public_key
コード例 #11
0
def genesis_tx():
    test_permissions = [primitive_pb2.can_grant_can_remove_my_signatory]
    genesis_commands = commons.genesis_block(admin, alice, test_permissions)
    genesis_commands.append(
        iroha.command('CreateAccount', account_name='bob', domain_id='test',
                      public_key=IrohaCrypto.derive_public_key(bob['key'])))
    tx = iroha.transaction(genesis_commands)
    IrohaCrypto.sign_transaction(tx, admin['key'])
    return tx
コード例 #12
0
def remove_signatory_tx():
    tx = iroha.transaction([
        iroha.command('RemoveSignatory',
                      account_id=alice['id'],
                      public_key=IrohaCrypto.derive_public_key(alice['key']))
    ],
                           creator_account=bob['id'])
    IrohaCrypto.sign_transaction(tx, bob['key'])
    return tx
コード例 #13
0
ファイル: user.py プロジェクト: LiTrans/BSMD
 def __init__(self, private_key, name, domain, ip, public_info):
     self.public_key = IrohaCrypto.derive_public_key(private_key)
     self.name = name
     self.domain = domain
     self.domain.name = domain.name
     ip_address = ip + ':50051'
     self.network = IrohaGrpc(ip_address)
     if domain.name == 'public':
         self.public_info = public_info
コード例 #14
0
def add_signatory_tx():
    extra_key = IrohaCrypto.private_key()
    tx = iroha.transaction([
        iroha.command('AddSignatory',
                      account_id=alice['id'],
                      public_key=IrohaCrypto.derive_public_key(extra_key))
    ],
                           creator_account=alice['id'])
    IrohaCrypto.sign_transaction(tx, alice['key'])
    return tx
コード例 #15
0
def add_peer_tx():
    peer_key = IrohaCrypto.private_key()
    peer = primitive_pb2.Peer()
    peer.address = '192.168.10.10:50541'
    peer.peer_key = IrohaCrypto.derive_public_key(peer_key)
    tx = iroha.transaction([
        iroha.command('AddPeer', peer=peer)
    ], creator_account=alice['id'])
    IrohaCrypto.sign_transaction(tx, alice['key'])
    return tx
コード例 #16
0
def genesis_tx():
    test_permissions = [primitive_pb2.can_set_quorum]
    extra_key = IrohaCrypto.private_key()
    genesis_commands = commons.genesis_block(admin, alice, test_permissions)
    genesis_commands.append(
        iroha.command('AddSignatory',
                      account_id=alice['id'],
                      public_key=IrohaCrypto.derive_public_key(extra_key)))
    tx = iroha.transaction(genesis_commands)
    IrohaCrypto.sign_transaction(tx, admin['key'])
    return tx
コード例 #17
0
 def CreateAccount(self, accName):
     user = User()
     user.Name = accName + "@" + "domain"
     user.PrivKey = IrohaCrypto.private_key()
     user.PubKey = IrohaCrypto.derive_public_key(user.PrivKey)
     tx = self.iroha.transaction([
         self.iroha.command('CreateAccount', account_name=accName, domain_id='domain',
                            public_key=user.PubKey)
     ])
     IrohaCrypto.sign_transaction(tx, self.admin_private_key)
     self.SendTxAndPrintstatus(tx)
     users.append(user)
コード例 #18
0
def grant_can_set_my_quorum_tx():
    extra_key = IrohaCrypto.private_key()
    tx = iroha.transaction([
        iroha.command('GrantPermission',
                      account_id=bob['id'],
                      permission=primitive_pb2.can_set_my_quorum),
        iroha.command('AddSignatory',
                      account_id=alice['id'],
                      public_key=IrohaCrypto.derive_public_key(extra_key))
    ],
                           creator_account=alice['id'])
    IrohaCrypto.sign_transaction(tx, alice['key'])
    return tx
コード例 #19
0
async def create_accounts(i):
    private_key = ic.private_key()
    public_key = ic.derive_public_key(private_key)
    user_name = str(i)
    init_cmds = [
        iroha.command('CreateAccount',
                      account_name=user_name,
                      domain_id='test',
                      public_key=public_key)
    ]
    init_tx = iroha.transaction(init_cmds, creator_account='admin@test')
    ic.sign_transaction(init_tx, admin_private_key)
    await send_transaction(init_tx)
コード例 #20
0
def genesis_tx():
    test_permissions = [primitive_pb2.can_append_role, primitive_pb2.can_add_peer]
    second_role_permissions = [primitive_pb2.can_add_peer]
    genesis_commands = commons.genesis_block(admin, alice, test_permissions)
    genesis_commands.extend([
        iroha.command('CreateRole', role_name='second_role', permissions=second_role_permissions),
        iroha.command('CreateAccount', account_name='bob', domain_id='test',
                      public_key=IrohaCrypto.derive_public_key(bob['key'])),
        iroha.command('AppendRole', account_id=alice['id'], role_name='second_role')
    ])
    tx = iroha.transaction(genesis_commands)
    IrohaCrypto.sign_transaction(tx, admin['key'])
    return tx
コード例 #21
0
ファイル: api_iroha.py プロジェクト: cs79/mtp
def add_user_to_db(userid,
                   guid,
                   conn,
                   tb_name=dbcfg['LEDGER_USER_TABLE_NAME']):
    '''
    Add a user to the Iroha ledger and the shared database.
    N.B. userid should be in proper Iroha format, e.g. "user@domain".
    The guid value (global platform-level user ID) should be passed from
    the shared API, which will generate it.
    '''
    # check correct userid format
    assert re.match(UID_PAT, userid) is not None, 'invalid userid format'
    # empty placeholders for privkey / pubkey
    privkey, pubkey = None, None
    # check if userid already exists in SQL (for this ledger)
    # this assumes that it is impossible to have user in SQL but not in Iroha...
    if userid in get_user_data(conn)['LedgerUserID']:
        warnings.warn('User already exists - nothing to add')
        return
    # check if userid already exists in Iroha (but not SQL yet)
    if get_iroha_user_info(
            userid).account_response.account.account_id != userid:
        # we need to create a new account entirely
        privkey = IrohaCrypto.private_key()
        pubkey = IrohaCrypto.derive_public_key(privkey)
        status = create_iroha_user_account(userid, pubkey)
        # check status for correctness, throw if bad status
        if status[0][0] == 'STATELESS_VALIDATION_FAILED':
            warnings.warn('User create transaction failed - check tx format')
            return
        if status[0][0] == 'COMMITTED':
            print('Successfully created user {} in Iroha'.format(userid))
    # once we know that the account exists in Iroha, add it to SQL as well
    ledgerid = get_ledgerids(conn, lname='Iroha')
    if privkey is None:
        privkey = ''
    else:
        privkey = str(privkey)[2:-1]  # string representation of hex bytes
    if pubkey is None:
        pubkey = ''
    else:
        pubkey = str(pubkey)[2:-1]  # string representation of hex bytes
    user_info = (guid, ledgerid, userid, privkey, pubkey)
    sql_qry = 'INSERT INTO {} VALUES (?,?,?,?,?)'.format(tb_name)
    c = conn.cursor()
    c.execute(sql_qry, user_info)
    conn.commit()
    print('Added user information for userid {} to SQL'.format(userid))
コード例 #22
0
 def create_client(self, client_name):
     user_private_key = IrohaCrypto.private_key()
     user_public_key = IrohaCrypto.derive_public_key(user_private_key)
     commands = [
         self.iroha.command('CreateAccount', account_name=client_name, domain_id="test",
                            public_key=user_public_key),
     ]
     transaction = self.iroha.transaction(commands)
     IrohaCrypto.sign_transaction(transaction, self.admin_private_key)
     self.__send_transaction_and_print_status(transaction)
     tx = self.iroha.transaction([
         self.iroha.command('GrantPermission', account_id='admin@test',
                            permission=primitive_pb2.can_set_my_account_detail)
     ])
     IrohaCrypto.sign_transaction(tx, user_private_key)
     if self.__send_transaction_and_print_status(transaction) == "COMMITTED":
         return "Your key: " + user_private_key, 201
     else:
         return 'Internal Error', 500
コード例 #23
0
if sys.version_info[0] < 3:
    raise Exception('Python 3 or a more recent version is required.')

IROHA_HOST_ADDR = os.getenv('IROHA_HOST_ADDR', '127.0.0.1')
IROHA_PORT = os.getenv('IROHA_PORT', '50051')

net = IrohaGrpc('{}:{}'.format(IROHA_HOST_ADDR, IROHA_PORT))

# Define necessary constants we will need throughout the app

ADMIN_ACCOUNT_ID = os.getenv('ADMIN_ACCOUNT_ID', 'admin@test')
ADMIN_PRIVATE_KEY = os.getenv(
    'ADMIN_PRIVATE_KEY',
    '72a9eb49c0cd469ed64f653e33ffc6dde475a6b9fd8be615086bce7c44b5a8f8')
ADMIN_PUBLIC_KEY = ic.derive_public_key(ADMIN_PRIVATE_KEY)

GAME_ACCOUNT_ID = 'match@games'
GAME_PRIVATE_KEY = '9b965ebbd194dc538735310740e6667cb8222811c5e4e8e917a6fbe77deeb6dc'
GAME_PUBLIC_KEY = ic.derive_public_key(GAME_PRIVATE_KEY)

ALICE_ACCOUNT_ID = 'alice@games'
ALICE_PRIVATE_KEY = '7384819f00d820e291f0dc9f1fce827d9f94ad508bf5252fb310916465b94f17'
ALICE_PUBLIC_KEY = ic.derive_public_key(ALICE_PRIVATE_KEY)

BOB_ACCOUNT_ID = 'bob@games'
BOB_PRIVATE_KEY = '4125f29b841b6bab5ab9bc830e19629e86a51fcb77c9554fdf3d8af41780573b'
BOB_PUBLIC_KEY = ic.derive_public_key(BOB_PRIVATE_KEY)

iroha = Iroha(ADMIN_ACCOUNT_ID)
コード例 #24
0
# BSMD configuration
######################
asset_id = 'fedcoin#federated'
# Replace localhost with an IP address of a node running the blockchain
network = IrohaGrpc('18.191.46.178:50051')
domain_id = 'federated'
admin_private_key = 'f101537e319568c765b2cc89698325604991dca57b9716b58016b253506cab70'
iroha = Iroha('admin@test')
default_role = 'user'
asset_name = 'fedcoin'
asset_precision = 2

# chief node
######################
chief_private_key = '054e294d86bedf9a43cf20542cade6e57addfd4294a276042be4ba83c73f8d9e'
chief_public_key = IrohaCrypto.derive_public_key(chief_private_key)
chief_name = 'chief'
chief_account_id = chief_name + '@' + domain_id
iroha_chief = Iroha('chief@federated')


# worker1 node
######################
worker1_private_key = '7a3a8efe3fbfac57af55e8d2a4b20e27b19444c4d240924dd1bd57701a5a0731'
worker1_public_key = IrohaCrypto.derive_public_key(worker1_private_key)
worker1_name = 'worker1'
worker1_account_id = worker1_name + '@' + domain_id
iroha_worker1 = Iroha('worker1@federated')


# worker2 node
コード例 #25
0
# Copyright Soramitsu Co., Ltd. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
#

from iroha import Iroha, IrohaCrypto
from iroha import primitive_pb2
import commons

admin = commons.new_user('admin@test')
alice = commons.new_user('alice@test')
iroha = Iroha(admin['id'])

peer_key = IrohaCrypto.private_key()
peer = primitive_pb2.Peer()
peer.address = '192.168.10.10:50541'
peer.peer_key = IrohaCrypto.derive_public_key(peer_key)


@commons.hex
def genesis_tx():
    test_permissions = [primitive_pb2.can_remove_peer]
    genesis_commands = commons.genesis_block(admin, alice, test_permissions)
    genesis_commands.append(Iroha.command('AddPeer', peer=peer))
    tx = iroha.transaction(genesis_commands)
    IrohaCrypto.sign_transaction(tx, admin['key'])
    return tx


@commons.hex
def remove_peer_tx():
    peer_key = IrohaCrypto.private_key()
コード例 #26
0
def generate_keypair():
    private_key = ic.private_key()
    public_key = ic.derive_public_key(private_key)
    return public_key, private_key
コード例 #27
0
ファイル: role.py プロジェクト: Cre-eD/iroha
    raise Exception("Python 3 or a more recent version is required.")

# Here is the information about the environment and admin account information:
IROHA_HOST_ADDR = os.getenv("IROHA_HOST_ADDR", "127.0.0.1")
IROHA_PORT = os.getenv("IROHA_PORT", "50051")
ADMIN_ACCOUNT_ID = os.getenv("ADMIN_ACCOUNT_ID", "admin@test")
ADMIN_PRIVATE_KEY = os.getenv(
    "ADMIN_PRIVATE_KEY",
    "f101537e319568c765b2cc89698325604991dca57b9716b58016b253506cab70",
)

iroha = Iroha(ADMIN_ACCOUNT_ID)
net = IrohaGrpc("{}:{}".format(IROHA_HOST_ADDR, IROHA_PORT))

test_private_key = IrohaCrypto.private_key()
test_public_key = IrohaCrypto.derive_public_key(test_private_key).decode(
    "utf-8")


@integration_helpers.trace
def create_contract():
    bytecode = "608060405234801561001057600080fd5b5073a6abc17819738299b3b2c1ce46d55c74f04e290c6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061081d806100746000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063094d1a1614610046578063d4e804ab14610076578063f5496cc514610094575b600080fd5b610060600480360381019061005b919061042e565b6100c4565b60405161006d91906105a1565b60405180910390f35b61007e610233565b60405161008b9190610586565b60405180910390f35b6100ae60048036038101906100a9919061042e565b610257565b6040516100bb91906105a1565b60405180910390f35b6060600083836040516024016100db9291906105c3565b6040516020818303038152906040527f094d1a16000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516101a2919061056f565b600060405180830381855af49150503d80600081146101dd576040519150601f19603f3d011682016040523d82523d6000602084013e6101e2565b606091505b509150915081610227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021e906105fa565b60405180910390fd5b80935050505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000838360405160240161026e9291906105c3565b6040516020818303038152906040527ff5496cc5000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051610335919061056f565b600060405180830381855af49150503d8060008114610370576040519150601f19603f3d011682016040523d82523d6000602084013e610375565b606091505b5091509150816103ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b1906105fa565b60405180910390fd5b80935050505092915050565b60006103d96103d48461063f565b61061a565b9050828152602081018484840111156103f157600080fd5b6103fc8482856106e5565b509392505050565b600082601f83011261041557600080fd5b81356104258482602086016103c6565b91505092915050565b6000806040838503121561044157600080fd5b600083013567ffffffffffffffff81111561045b57600080fd5b61046785828601610404565b925050602083013567ffffffffffffffff81111561048457600080fd5b61049085828601610404565b9150509250929050565b6104a3816106b3565b82525050565b60006104b482610670565b6104be8185610686565b93506104ce8185602086016106f4565b6104d781610787565b840191505092915050565b60006104ed82610670565b6104f78185610697565b93506105078185602086016106f4565b80840191505092915050565b600061051e8261067b565b61052881856106a2565b93506105388185602086016106f4565b61054181610787565b840191505092915050565b60006105596027836106a2565b915061056482610798565b604082019050919050565b600061057b82846104e2565b915081905092915050565b600060208201905061059b600083018461049a565b92915050565b600060208201905081810360008301526105bb81846104a9565b905092915050565b600060408201905081810360008301526105dd8185610513565b905081810360208301526105f18184610513565b90509392505050565b600060208201905081810360008301526106138161054c565b9050919050565b6000610624610635565b90506106308282610727565b919050565b6000604051905090565b600067ffffffffffffffff82111561065a57610659610758565b5b61066382610787565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006106be826106c5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b838110156107125780820151818401526020810190506106f7565b83811115610721576000848401525b50505050565b61073082610787565b810181811067ffffffffffffffff8211171561074f5761074e610758565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4572726f722063616c6c696e67207365727669636520636f6e7472616374206660008201527f756e6374696f6e0000000000000000000000000000000000000000000000000060208201525056fea2646970667358221220f8ebb31c12325b11cf148ed6694599909f6786dc0811e364f572a6b5098f59dc64736f6c63430008040033"
    """Bytecode was generated using remix editor  https://remix.ethereum.org/ from file role.sol. """
    tx = iroha.transaction(
        [iroha.command("CallEngine", caller=ADMIN_ACCOUNT_ID, input=bytecode)])
    IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY)
    net.send_tx(tx)
    hex_hash = binascii.hexlify(IrohaCrypto.hash(tx))
    for status in net.tx_status_stream(tx):
        print(status)
    return hex_hash
コード例 #28
0
# IrohaGrpc net for peer 1, 2, 3
net_1 = IrohaGrpc('{}:{}'.format(IROHA_HOST_ADDR_1, IROHA_PORT_1))
net_2 = IrohaGrpc('{}:{}'.format(IROHA_HOST_ADDR_2, IROHA_PORT_2))
net_3 = IrohaGrpc('{}:{}'.format(IROHA_HOST_ADDR_3, IROHA_PORT_3))

# Admin Account loading with Admin's private key
ADMIN_PRIVATE_KEY = os.getenv(
    'ADMIN_PRIVATE_KEY',
    'f101537e319568c765b2cc89698325604991dca57b9716b58016b253506cab70')
# Admin's account
ADMIN_ACCOUNT_ID = os.getenv('ADMIN_ACCOUNT_ID', 'admin@test')
iroha_admin = Iroha(ADMIN_ACCOUNT_ID)

# Satoshi's crypto material generation
satoshi_private_key = IrohaCrypto.private_key()
satoshi_public_key = IrohaCrypto.derive_public_key(satoshi_private_key)
# Satoshi's account
SATOSHI_ACCOUNT_ID = os.getenv('SATOSHI_ACCOUNT_ID', 'satoshi@test')
iroha_satoshi = Iroha(SATOSHI_ACCOUNT_ID)

# Nakamoto's crypto material generation
nakamoto_private_key = IrohaCrypto.private_key()
nakamoto_public_key = IrohaCrypto.derive_public_key(nakamoto_private_key)
# Nakamoto's account
NAKAMOTO_ACCOUNT_ID = os.getenv('NAKAMOTO_ACCOUNT_ID', 'nakamoto@test')
iroha_nakamoto = Iroha(NAKAMOTO_ACCOUNT_ID)

print("""
Please ensure about MST in iroha config file.
""")
コード例 #29
0
ファイル: examples.py プロジェクト: LiTrans/cBSMD
import json
if sys.version_info[0] < 3:
    raise Exception('Python 3 or a more recent version is required.')

# For running this example first run the setup.py file
domain_individual = 'individual'
asset_individual = 'token'
domain_vehicle = 'vehicle'
asset_vehicle = 'coin'
# We will create 3 nodes to demonstrate functions of the BSMD.
#####################
# 2 Individual nodes
#####################
Johannes = 'johannes'  # write al names with small caps
Johannes_private_key = 'e66dcb02367ae45449075839bbfedaf9ae4f9d579cb5601e82e0df341691ae2c'
Johannes_public_key = IrohaCrypto.derive_public_key(Johannes_private_key)
iroha_functions.create_account_with_assets(domain_individual, Johannes,
                                           Johannes_public_key,
                                           asset_individual, '1000')
#####################
David = 'david'
David_private_key = '2297b39c5331af17731d9bd6e04070e575b7ad9c18ca951cb6d5cd7b2abb240d'
David_public_key = IrohaCrypto.derive_public_key(David_private_key)
iroha_functions.create_account_with_assets(domain_individual, David,
                                           David_public_key, asset_individual,
                                           '1000')
# #####################
# # 1 Vehicle node
# #####################
Fiesta = 'fiesta'
Fiesta_private_key = '68e1e57b6ba06c45247937c3ea534a9560a63e6153a38a6ff0efef99ba774308'
コード例 #30
0
import json
import logging
from iroha import Iroha, IrohaGrpc, IrohaCrypto
from math import exp, log

if sys.version_info[0] < 3:
    raise Exception('Python 3 or a more recent version is required.')

logging.basicConfig(filename='slave_one.log',
                    filemode='w',
                    format='%(message)s',
                    level=logging.INFO)

# Slave node
slave_private_key = '7a3a8efe3fbfac57af55e8d2a4b20e27b19444c4d240924dd1bd57701a5a0731'
slave_public_key = IrohaCrypto.derive_public_key(slave_private_key)
slave_name = 'slave1'
domain_id = 'choice'
slave_account_id = slave_name + '@' + domain_id
iroha_slave = Iroha('slave1@choice')
# set the ip of one node in the iroha blockchain
asset_id = 'choicecoin#choice'

##################################
# Set corresponding IP
network = IrohaGrpc('18.216.92.47:50051')
##################################


def model(beta_car, beta_cost, beta_tt):
    """