Пример #1
0
def verify_single_block_multi_transaction_blockchain(tx_pool):
    blockchain = Blockchain()
    key_store = KeyStore()

    block_number = 0
    previous_block_hash = blockchain.current_block.block_hash if not blockchain.is_empty(
    ) else None
    header = BlockHeader(block_number, previous_block_hash, key_store,
                         config.MINING_DIFFICULTY)
    txs = [tx_pool.get() for i in xrange(config.BLOCKCHAIN_LENGTH)]
    block = MultiTransactionBlock(header, txs)

    if previous_block_hash:
        blockchain.current_block.header.next_block = block

    blockchain.accept_block(block)

    print block
    logger.info(block)

    blockchain.verify_chain()
Пример #2
0
[print(blocks[i]) for i in range(len(blocks))]
print('TOTAL Blocks = {}'.format(len(blocks)))

# Build the blockchain with txns
print('=' * 10)
print('Adding transactions to blocks (4 txns/block)...')
for i in range(len(blocks)):
    for j in range(4):
        blocks[i].add_transaction(txn_pool.get_transaction())

# Generating hash manually for now
blocks[0].set_block_hash(chain.genesis_block)
blocks[1].set_block_hash(blocks[0])
blocks[2].set_block_hash(blocks[1])
blocks[3].set_block_hash(blocks[2])
[chain.accept_block(blocks[i]) for i in range(len(blocks))]
print('Generating merkle root...')
[
    print(str(chain.blocks[i].merkle_tree.get_merkle_root()))
    for i in range(len(chain.blocks))
]
print('Generating block hash and PoW...')
[
    print('{}::{}'.format(chain.blocks[i].nonce, chain.blocks[i].block_hash))
    for i in range(len(chain.blocks))
]

print('=' * 10)
print('Adding blocks to chain...')
print(repr(chain))
print(str(chain))