マイニング関数
マイニング成功で新たなブロックを発行したマイナーが、ビットコインを報酬として得られます。
報酬となるトランザクションには送信者はなく新たに発行されたことになります。
ビットコインは、新規ブロックが21万個増えるごとにマイニングの成功報酬として発行されるビットコインが半分になります。
これは、約4年ごとに生じ半減期といいます。
@app.route('/mine', methods=['GET']) def mine(): # We run the proof of work algorithm to get the next proof... last_block = blockchain.last_block proof = blockchain.proof_of_work(last_block) # We must receive a reward for finding the proof. # The sender is "0" to signify that this node has mined a new coin. blockchain.new_transaction( sender="0", recipient=node_identifier, amount=1, ) # Forge the new Block by adding it to the chain previous_hash = blockchain.hash(last_block) block = blockchain.new_block(proof, previous_hash) response = { 'message': "New Block Forged", 'index': block['index'], 'transactions': block['transactions'], 'proof': block['proof'], 'previous_hash': block['previous_hash'], } return jsonify(response), 200