Flask实现BlockChain应用之二

接下来,将构建一个基于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的应用就结束了,这个应用虽然简单,真个原理可以拓展到实际的应用之中。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180313G1N96N00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券