接下来,将构建一个基于BlockChain的预存款管理系统,这个系统是基于Flask框架的。Flask是Python中一个轻量级的web框架。
BlockChain API接口:在这里将创建三个借口:
/mine 告诉服务器去挖掘新的区块,并将一笔交易添加其中。
/chain 返回整个区块链
创建节点:“Flask web服务器”将扮演区块链网络中的一个节点。在flask的初始化文件application/__init__.py代码如下:
fromflaskimportFlask
fromuuidimportuuid4
fromapplication.blockchain.blockchainimportBlockChain
node_identifier =str(uuid4()).replace('-','')
blockChain = BlockChain()
app = Flask(__name__)
在application/views.py中实现mine和chain
fromapplicationimportapp
fromapplicationimportblockChain
fromapplicationimportnode_identifier
fromflaskimportrequest, make_response
importjson
@app.route('/')
defhello_world():
return'Hello World!'
@app.route('/mine')
defmine():
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)
returnmake_response(json.dumps(res))
@app.route('/chain')
deffull_chain():
res = {
'chain': blockChain.chain,
'length':len(blockChain.chain),
}
returnmake_response(json.dumps(res))
在这里挖坑的同时,将新的交易信息添加到blockchain中,根据chain显示的整个信息,可以追踪到系统中的每一笔交易。
启动flask应用后,首先看一下/chain显示的内容,这是创始区块的内容。然后执行一次/mine会增加一个新的区块,并增加一笔交易。
到这里一个简单的Blockchain的应用就结束了,这个应用虽然简单,真个原理可以拓展到实际的应用之中。
领取专属 10元无门槛券
私享最新 技术干货