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应用之二的主要内容,如果未能解决你的问题,请参考以下文章

三十python之Flask框架视图:返回状态码重定向状态保持请求钩子

Flask 编写http接口api及接口自动化测试

Flask项目-短信验证码

Vue 之Flask实现全栈单页面应用

Flask之视图

Docker ( React / Flask / Nginx) - Spotify 授权码