Esempio n. 1
0
 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 ''
Esempio n. 2
0
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