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()
[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))