def mine(): if len(blockchain) == 0: genesis_block = GenesisBlock(miner_pub_key=miner_key) genesis_block.mine(blockchain.get_difficult()) blockchain.add(genesis_block) else: block = Block(previous_block=blockchain.chain[-1], miner_pub_key=miner_key, \ transactions=transactionPool.get_best_transactions(blockchain,1)) block.mine(blockchain.get_difficult()) blockchain.add(block) send_blockchain() return ''
def blockchain(): blockchain = Blockchain() private_keys = [43, 53, 63] public_keys = mapv(lambda priv: PrivateKey(priv).public_key().to_bytes(), private_keys) genesis_block = GenesisBlock(miner_pub_key=public_keys[0]) genesis_block.mine(blockchain.get_difficult()) blockchain.add(genesis_block) miners = [public_keys[1], public_keys[2]] outputs_array = [[(public_keys[0], 1), (public_keys[1], 2)], [(public_keys[2], 10), (public_keys[1], 1)]] for key, miner, outputs in zip(private_keys, miners, outputs_array): transaction = Wallet(key).sign(Transaction(outputs)) block = Block(blockchain.get_last_block(), [transaction], miner_pub_key=miner) block.mine(blockchain.get_difficult()) blockchain.add(block) return blockchain