【区块链】SimpleCoin简介及部署

SimpleCoin简介

SimpleCion是一个简单的,不太安全,不太完整的用Python制作的区块链实现。这个项目的目标是制作一个有效的区块链货币,尽可能的使它简洁,可以用作教材。

这个项目只为了满足个人兴趣。如果你想制作自己的加密货币,你可以看看Bitcoin Repository这个仓库。

区块链是什么?

看看 Bitcoin organization 维基百科介绍,可以看到如下的定义:

区块链是一个由所有节点共享的事务型数据库,每个节点都加入基于Bitcoin协议的系统中。货币区块链的完整副本包含货币交易的每笔记录。有了这些信息,人们就可以查看每个地址过去任何时刻的存储金额。

你可以在这篇文章Bitcoin Paper中获得更多的信息。

运行SimpleCoin

首先,安装requirements.txt.

pip install -r requirements.txt

其次,你有两个选择:

  • 运行 miner.py文件,作为节点并开始挖矿
  • 运行 wallet.py文件,作为用户并发起交易(发起交易前必须运行一个节点,话句话说,你必须运行miner.py文件)

注意:不要在Python IDLE中运行该项目,要在控制台运行。miner.py文件包含的并发进程,无法在Python IDLE中运行。

代码如何工作

该项目包含2个主要的脚本:

  • miner.py
  • wallet.py

Miner.py

这个文件应该是最重要的,运行它将创建一个节点(类似一个服务器端)。从这里你可以连接到区块链,并通过挖矿处理交易(该交易由其他用户发起)。作为这项工作的奖励,你会得到一些硬币。存在的节点越多,区块链就越安全。

miner.py 包含两个并发的进程:

  1. 第一个进程负责挖矿,更新区块链,并找到工作证明。

  2. 第二个进程运行flask服务器,对等节点和用户可以连接,并以此请求整个区块链或提交新的交易。

注意:并行程序无法再Python IDLE中运行,所以要确保你是在控制台中运行它的。

Wallet.py

该文件适用于那些不想成为节点的简单用户。运行这个文件可以让你生成一个新地址,发送硬币并检查你的交易记录(请记住,如果你在本地服务器上运行这个文件,你将需要一个"矿工"来处理你的交易)。


贡献

欢迎任何人参与这个项目。任意推送你的pull request(即使你是编程新手)

注意:这个项目的想法是构建一个非常简单的区块链系统,因此请确保你所有的代码都易于阅读(避免一行中代码过多),如果它们不重要,则不要引入复杂的更新。换句话说,保持简单

拒绝

绝不能将这个项目用于实际目的,它缺乏安全性并可能包含一些错误。


原文链接:https://github.com/cosme12/SimpleCoin

原文作者:cosme

猜你喜欢

转载自blog.csdn.net/little_stupid_child/article/details/79373272