Flask实现BlockChain应用之二
Posted 知之Python
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask实现BlockChain应用之二相关的知识,希望对你有一定的参考价值。
接下来,将构建一个基于BlockChain的预存款管理系统,这个系统是基于Flask框架的。Flask是Python中一个轻量级的web框架。
BlockChain API接口:在这里将创建三个借口:
/mine 告诉服务器去挖掘新的区块,并将一笔交易添加其中。
/chain 返回整个区块链
创建节点:“Flask web服务器”将扮演区块链网络中的一个节点。在flask的初始化文件application/__init__.py代码如下:
from flask import Flask
from uuid import uuid4
from application.blockchain.blockchain import BlockChain
node_identifier = str(uuid4()).replace('-', '')
blockChain = BlockChain()
app = Flask(__name__)
在application/views.py中实现mine和chain
from application import app
from application import blockChain
from application import node_identifier
from flask import request, make_response
import json
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/mine')
def mine():
last_block = blockChain.last_block
last_proof = last_block['proof']
proof = blockChain.proof_of_work(last_proof)
print(proof)
blockChain.new_transaction(
sender="0",
recipient=node_identifier,
amount=1
)
# Forge the new Block by adding it to the chain
block = blockChain.new_block(proof)
res = {
'message': "New Block Forged",
'index': block['index'],
'transactions': block['transactions'],
'proof': block['proof'],
'previous_hash': block['previous_hash'],
}
print(res)
return make_response(json.dumps(res))
@app.route('/chain')
def full_chain():
res = {
'chain': blockChain.chain,
'length': len(blockChain.chain),
}
return make_response(json.dumps(res))
在这里挖坑的同时,将新的交易信息添加到blockchain中,根据chain显示的整个信息,可以追踪到系统中的每一笔交易。
启动flask应用后,首先看一下/chain显示的内容,这是创始区块的内容。然后执行一次/mine会增加一个新的区块,并增加一笔交易。
到这里一个简单的Blockchain的应用就结束了,这个应用虽然简单,真个原理可以拓展到实际的应用之中。
以上是关于Flask实现BlockChain应用之二的主要内容,如果未能解决你的问题,请参考以下文章