用Python构建区块链

区块链

区块链是在计算机网络的节点之间共享数据的分类账(分布式数据库)。作为数据库,区块链以电子格式储存信息。区块链的创新之处在于它保证了数据记录的安全性和真实性,可信性(不需要没有可信任的第三方)。

区块链和典型数据库的区别是数据结构。区块链以的方式收集信息。

block

是一种能永久记录加密货币交易数据(或其他用途)的一种数据结构。类似于链表。一个记录了一些火所有尚未被验证的最新交易。验证数据后,将关闭,之后会创建一个新的来输入和验证新的交易。因此,一旦写入,永久不能更改和删除。

  • 是区块链中存储和加密信息的地方
  • 由长数字标识,其中包括先前加密块的加密交易信息和新的交易信息
  • 在创建之前,以及其中的信息必须由网络验证

以下是一个简单的例子:

目标

区块链的目标是允许数字信息被记录和分发,但不能编辑。通过这种方式,区块链成为了不可变分类账或无法更改、删除和销毁的交易记录的基础。

去中心化

想象一下,一家公司拥有10000台服务器,用于维护一个包含所有客户信息的数据库。公司的所有服务器都在一个仓库中,可以完全控制每台服务器。这就提供了单点故障。如果那个地方停电了怎么办果他的网络连接被切断了怎么办任何情况下,数据都会丢失或损坏。

构建

区块链类

我们将创建一个类,构造函数创建一个空列表来存储区块链,再创建一个空列表来存储交易。创建

添加交易

我们需要一种将交易添加到区块的方法。负责这个

在 将交易添加到列表后,它返回交易将被添加到的块的索引——下一个要挖掘的块。这将在以后对提交交易的用户有用。

创建新blocks

当我们的区块链被实例化时,我们需要为它播种一个创世块——一个没有前辈的块。我们还需要向我们的创世块添加一个“证明”,这是挖掘的结果(或工作量证明)。除了在我们的构造函数中创建创世块之外,我们还将充实 new_block()、new_transaction() 和 hash() 的方法:

到这里,我们几乎完成了代表我们的区块链。但此时,你一定想知道新区块是如何创建、锻造或开采的。

POW

工作量证明算法 (PoW) 是在区块链上创建或挖掘新块的方式,它的目标是发现一个解决问题的数字。这个数字必须很难找到但很容易被网络上的任何人验证。PoW广泛用于加密货币挖掘,用于验证交易和挖掘新代币。由于PoW,比特币和其他加密货币交易可以以安全的方式进行点对点处理,而无需受信任的第三方。
让我们实现一个类似的算法:

API

为了使区块链能够交互,我们需要一个将其置于web服务器上。这里我们是用框架。
如果没有安装,需要安装

我们的服务器将在我们的区块链网络中形成单一节点,在同级目录下创建一个:

来源:梦实现了吗

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年10月22日
下一篇 2022年10月22日

相关推荐