50行python代码构建最小区块链

50行python代码构建最小区块链

Python部落(python.freelycode.com)组织翻译。禁止转载。欢迎转发。

虽然有人认为区块链技术的应用场景有待研究,但毫无疑问,这项新颖技术的出现是计算界的一个奇迹。那么,区块链是什么

区块链:是账本技术。比特币和其他使用区块链进行交易的加密货币的交易记录将按时间顺序公开存储。

通俗地说,就是一个公共数据库,新的数据存储在一个叫做block的容器中,用过去添加的数据添加到一个不可变的链中(因此成为区块链)。在比特币和其他加密货币的情况下,这些数据是一组交易记录。当然,数据可以是任何类型

区块链技术产生了新的、完全数字化的货币,如比特币和莱特币,这些货币不是由中央政府发行或管理的。这给那些认为当前的银行体系是个骗局的人带来了新的自由。区块链还以类似以太坊的技术形式革新了分布式计算,以太坊引入了有趣的概念,如智能合同

在本文中,我将使用不到50行的Python代码制作一个简单的区块链,名为SnakeCoin。

我们首先定义我们的块看起来像什么。在区块链,每个数据块都有一个时间戳和一个可选索引。在SnakeCoin中,两者将被同时存储,为了帮助确保整个区块链的完整性,每个块都将有一个自我识别的哈希。和比特币一样,每个块的哈希都会是该块的索引、时间戳、数据和前一个块的哈希的加密哈希。当然,这些数据可以是你想要的任何东西。

非常好!现在我们有了数据块结构,但是我们正在创建一个数据块链,并且需要将数据块添加到实际的链中。如前所述,每个块都需要前一个块的信息。也就是说,产生了一个问题:block区域的第一个block是怎么到那里的?因此,第一个块或原点块是一个特殊的块。在许多情况下,它是手动添加的,或者具有允许添加的唯一逻辑值。

为了方便起见,我们将创建一个函数来返回原点块。这个块的索引是0,它有任意的数据值和“previous hash”参数中的任意值。

现在我们可以创建一个原始块,我们需要一个函数来生成区块链中的后续块。该函数将链中的前一个块作为参数,创建要生成的块的数据,并返回一个新块及其相应的数据。当新块从前一个块获得散列信息时,区块链的完整性随着每个新块而增加。如果我们不这样做,外界的信息就更容易“改变过去”,用我们自己的更新和改变来代替我们的链条。作为加密的证明,该散列链有助于确保一旦块被添加到区块链,它就不能被替换或删除。

以上是必要的工作。现在我们可以创造我们的区块链了!在我们的例子中,区块链本身就是一个简单的Python列表。列表的第一个元素是原点块。当然,我们需要添加后续块。因为SnakeCoin是最小的块,所以我们只添加20个新块。我们可以用for循环来实现。

我们来测试一下。

版权声明:区块链技术及应用 发表于 2022-04-26 6:06:33。
转载请注明:50行python代码构建最小区块链 | 零零洞洞

暂无评论

暂无评论...