Exemplo n.º 1
0
            genesis            = parameters.genesis[:80],
            genesis_hash       = hash256(parameters.genesis[:80]).intdigest(),
            testnet            = parameters.testnet,
            pubkey_hash_prefix = parameters.pubkey_hash_prefix,
            script_hash_prefix = parameters.script_hash_prefix,
            secret_prefix      = parameters.secret_prefix)

        session.add(chain)
        session.commit()

    genesis_block_hash_string = rpc.getblockhash(0)
    genesis_block_hash = hash_string_to_integer(genesis_block_hash_string)

    genesis_file = StringIO(CHAIN_PARAMETERS[FLAGS.network].genesis)
    genesis_block = core.Block.deserialize(genesis_file)
    genesis_transactions = list(deserialize_list(genesis_file, core.Transaction.deserialize))
    assert not genesis_file.read()

    for tx in genesis_transactions:
        genesis_block.transactions.append(
            session.query(core.Transaction).filter_by(hash=tx.hash).first() or tx)

    assert genesis_block.hash == genesis_block_hash
    assert genesis_block.merkle_hash == merkle(genesis_transactions)

    query = session.query(core.Block).filter_by(hash=genesis_block.hash)
    if query.count():
        genesis_block = query.first()
    else:
        session.add(genesis_block)
        session.commit()
Exemplo n.º 2
0
 def __test__(self, list_, result):
     file_ = StringIO(result)
     self.assertEqual(list(deserialize_list(file_, deserialize_varchar)), list_)
Exemplo n.º 3
0
 def __test__(self, list_, len_, result):
     file_ = StringIO(result)
     self.assertEqual(list(deserialize_list(file_, lambda f:deserialize_hash(f, len_))), list_)
Exemplo n.º 4
0
                               parameters.genesis[:80]).intdigest(),
                           testnet=parameters.testnet,
                           pubkey_hash_prefix=parameters.pubkey_hash_prefix,
                           script_hash_prefix=parameters.script_hash_prefix,
                           secret_prefix=parameters.secret_prefix)

        session.add(chain)
        session.commit()

    genesis_block_hash_string = rpc.getblockhash(0)
    genesis_block_hash = hash_string_to_integer(genesis_block_hash_string)

    genesis_file = StringIO(CHAIN_PARAMETERS[FLAGS.network].genesis)
    genesis_block = core.Block.deserialize(genesis_file)
    genesis_transactions = list(
        deserialize_list(genesis_file, core.Transaction.deserialize))
    assert not genesis_file.read()

    for tx in genesis_transactions:
        genesis_block.transactions.append(
            session.query(core.Transaction).filter_by(hash=tx.hash).first()
            or tx)

    assert genesis_block.hash == genesis_block_hash
    assert genesis_block.merkle_hash == merkle(genesis_transactions)

    query = session.query(core.Block).filter_by(hash=genesis_block.hash)
    if query.count():
        genesis_block = query.first()
    else:
        session.add(genesis_block)