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()
def __test__(self, list_, result): file_ = StringIO(result) self.assertEqual(list(deserialize_list(file_, deserialize_varchar)), list_)
def __test__(self, list_, len_, result): file_ = StringIO(result) self.assertEqual(list(deserialize_list(file_, lambda f:deserialize_hash(f, len_))), list_)
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)