drimwai的博客

python下blockchain的搭建与测试

##前言: 最近我在做一个Blockchain项目。因此,需要搭建一个简易的pythonblockchain环境。如果您和我一样是一个pythonblockchain的小白,那我相信这个栏目会对我们都很有帮助。

 

##参考文献:

### https://learnku.com/python/t/22970/build-your-own-block-chain-step-by-step-with-python

### 英文原版:https://hackernoon.com/learn-blockchains-by-building-one-117428612f46


##1. 软件环境

### Python 3.6+

### pip

### Pycharm (python IDE)

###  Postman (API测试的platform)

### FlaskRequests (可以在Pycharm中安装)


##2. Blockchain的调试(单个节点)

### Pycharm打开项目,依照提示引入requestsflask库。然后,点击右上方的run进行调试。当下方出现以下提示时,说明程序顺利运行。

1571631476474740.png

### 打开postman,在状态栏中输入以GET http://127.0.0.1:5000/mine进行挖矿,并产生新block

1571631538365745.png

### 然后,我们以POSThttp://127.0.0.1:5000/trasactions/new 方式加入新的交易数据。注意,这里我们需要在postman 写入headerbody的内容。

1571631556595258.png

1571631568238336.png

--- 代码如下:

{
 "sender": "d4ee26eee15148ee92c6cd394edd974e",
 "recipient": "someone-other-address",
 "amount": 5
}

--- 结果如下:

 1571631605294944.png

### 在连续挖矿几次后,我们可以通过GEThttp://127.0.0.1:5000/chain ,查看当前的区块链。

1571631622515322.png

 

##3. Blockchain的调试(多个节点)

### 如我们所知,blockchain是由多个nodes共同维护,共同填写的。因此,我们需要还原多个nodes的环境。

### 这里,我们在同一个pycharm项目上多开一个进程,并将他的端口号改为5001。同时,为了方便起见,我们也同时多开一个postman

image007.png

--- 此时,新的node (5001)block chain只有一个block

1571631640589463.png

### 两边的postman互相把对方加入自己的node list,通过post http://127.0.0.1:5000/nodes/register(http://127.0.0.1:5001/nodes/register)

1571631656869648.png

### 两边的postman互相同步对方的block chain。注意,这里区块链以长的那方为准。通过posthttp://127.0.0.1:5000/nodes/resolve (http://127.0.0.1:5001/nodes/resolve)。这里,便完成了一个blockchain由的全部基本过程。

1571631664858317.png

drimwai的博客
drimwai的博客
使用条款和私隐条款。版权所有,保留一切权利。
Copyright by drimwai Liang (2018-2020). All Right Reserved.