Exemplo n.º 1
0
def mine():
    transactions = get_transactions()
    transactions = [Transaction.from_dict(x) for x in transactions]
    last_block = get_last_block()
    block = Block(last_block['id'] + 1, transactions, 0)
    while not block.get_hash(last_block['hash']).startswith('0000'):
        block.nonce += 1
    block.set_hash(block.get_hash(last_block['hash']))
    r = requests.post(b_url + '/add_block', json=block.to_dict())
    return r.text
Exemplo n.º 2
0
from flask import Flask, jsonify, request
from blockchain import BlockChain, Block, Transaction

app = Flask(__name__)

genesis = Block(0, [], 0)
genesis.set_hash('0' * 64)
blockchain = BlockChain([genesis, ])
transaction_pool = []


@app.route('/')
def index():
    return jsonify(blockchain.to_dict())


@app.route('/add_transaction', methods=['POST'])
def add_transaction():
    data = request.json
    transaction = Transaction.from_dict(data)
    transaction_pool.append(transaction)
    return jsonify({"status": "OK"})


@app.route('/transactions')
def list_transactions():
    return jsonify([x.to_dict() for x in transaction_pool])


@app.route('/add_block', methods=["POST"])
def new_block():