/blockchain_python

Understand the principle of blockchain by python code (minimum viable product)

Primary LanguagePython

blockchain_python

Understand the principle of blockchain by python code (minimum viable product)

使用python代码完成区块链的原理理解,构建最小可用snakecoin

ref: https://medium.com/crypto-currently/lets-make-the-tiniest-blockchain-bigger-ac360a328f4d

ref: https://www.liaoxuefeng.com/wiki/1207298049439968/1311929706479649

名词说明

节点 = 矿工

block = 区块

blockchain = 区块链/账本

使用说明

在部分或所有节点运行

1、运行 snakecoin_server.py 矿工服务端代码

2、运行 dig.py 控制本地矿工不断挖矿

在局域网中任意地方运行

3、transaction.py 记录一笔交易

在局域网中任意地方运行

4、inquiry.py 查询所有矿工的账本

代码功能解释

snakecoin_server.py 矿工服务端代码

√ 1、提供交易记录功能

√ 2、提供挖矿功能

√ 3、提供账本查询功能

× 4、没有实现钱包功能

dig.py 控制本地矿工不断挖矿

当挖到币并通过一致性检验时:

    1、系统会奖励该矿工一个币

    2、该矿工会打包所有记录的交易上链

当挖到币未通过一致性检验时:

    使用所有矿工手里最长的账本替代自己的账本,重新开始挖矿

transaction.py 记录一笔交易

通过更改交易信息,向所有节点(矿工)发送记录交易请求

inquiry.py 查询所有矿工的blockchain(账本)