一起写最简单的区块链

一起写最简单的区块链

雷锋。com:本文是AI研究社整理的技术博客。原标题是《让我们建立最微小的区块链》,作者是杰拉德纳什。

翻译|拉马克校对|余杭整理|我的

尽管有些人认为区块链是等待问题的解决方案,但毫无疑问,这项新技术是计算的奇迹。但是区块链到底是什么呢?

区块链

区块链按时间顺序记录比特币或其他加密货币的交易,并披露数字图书。

更一般地说,它是一个公共数据库,其中新数据存储在一个称为块的容器中,并被添加到不可变链(因此,区块链)中,数据是在过去添加到该链中的。在比特币和其他加密货币的情况下,这些数据是交易组。然而,数据可以是任何类型

区块链技术产生了新的数字货币范围的产品,这些产品不是由中央机构发行或管理的,如比特币和莱特币。这给那些认为今天的银行系统骗局或失败的个人带来了新的自由。区块链还以类似以太坊的技术形式彻底改变了分布式计算,并引入了智能合约等有趣的概念

在本文中,我将用不到50行Python 2代码创建一个简单的区块链。它被称为蛇币。

首先,我们需要定义块。在区块链中,每个块存储一个时间戳和一个可选索引。在SnakeCoin中,我们希望同时存储这两个部分。为了帮助确保整个区块链的完整性,每个块都有一个自我识别的哈希。和比特币一样,每个块的哈希都是块索引、时间戳、数据的加密哈希和前一个块的哈希。数据可以是你想要的任何东西。

好了!有了块结构,下一步是创建区块链。我们需要开始向实际的链中添加块。正如我之前提到的,每个块都需要来自前一个块的信息。但是说到这里,一个问题出现了:如何创建第一个块?第一个块或创建块是一个特殊的块。在许多情况下,它是手动添加的,或者具有允许添加它的独特逻辑

我们将创建一个只返回一个生成块的函数来简化操作。这个块的索引是0,它的参数是前面hash的任意值。

因为我们可以创建一个创建块,所以我们需要一个可以在区块链中生成后续块的函数。该函数将链中的前一个块作为参数,为要生成的块创建数据,并返回带有适当数据的新块。当一个新块对来自前一个块的信息进行哈希运算时,区块链的完整性随着每个新块的增加而增加。如果我们不这样做,外界就更容易“改变过去”,把我们的链条换成他们自己的全新链条。该哈希链充当加密证书,有助于确保一旦数据块被添加到区块链,就不能被替换或删除。

这是主要的困难任务。现在,我们可以创造我们的区块链了!在我们的例子中,区块链本身是一个简单的Python列表。列表的第一个元素是创建块。当然,我们需要添加后续块。由于SnakeCoin是最小的区块链,我们将只添加20个新块。我们可以用for循环来实现。

测试一下我们目前为止的工作成效吧!

别担心,会涨到20的。

漂亮!我们的区块链是成功的。如果您想在控制台中看到更多信息,您可以编辑完整的源文件来打印每个块的时间戳或数据。

.

如果你想继续阅读,请移步到我们的人工智能学习社区:http://www.gair.link/page/TextTranslation/835.

更多精彩内容在AI研究社。

不同领域包括计算机视觉语音语义、区块链、自动驾驶、数据挖掘、智能控制、编程语言等日常更新。

雷锋网(微信官方账号:雷锋网)

版权声明:区块链浏览器 发表于 2022-03-27 18:03:21。
转载请注明:一起写最简单的区块链 | 零零洞洞

暂无评论

暂无评论...