当前位置:首页 > 知识 >

快速入门:最简单的区块链编写教程

雷锋网按:本文是AI研习社编译的技术博客,原文标题为"Let's Build the Tiniest Blockchain",作者是Gerald Nash。

尽管有些人认为区块链是解决问题的方法,但毫无疑问,这种新技术应用是计算出来的惊喜。但是,区块链到底是什么?

区块链是一个公共数据,记录了以比特币或其他数字货币开展的交易并公布的数据账簿。一般来说,它是一个公共数据,在其中新数据存储在称为区块的容器中,并加入了已经加入信息的不可变链(因此称为区块链)中。在比特币和其他数字货币的情况下,这些信息是交易信息,但数据可以是任何类型。

区块链技术出现了新的全虚拟货币,如比特币和以太币,这些货币不是由中央机构发行或监管的。这为那些认为银行业务是骗局或无法成功的人提供了新的选择。区块链还用类似于以太币的技术改变了分布式存储,并加入了智能合约等有趣的定义。

在这篇文章中,我将用不到50行Python2代码建立一个简单的区块链,称为SnakeCoin。

首先我们需要定义区块。在区块链中,每个区块存储时间戳和可选的数据库索引。在SnakeCoin中,我们要同时存储这两个部分。为了更好地协助保证整个区块链的一致性,每个区块都有自己的鉴别哈希值。像比特币一样,每个区块的哈希是由区块的数据库索引,时间戳,数据信息的哈希和前一个区块的哈希哈希散列加密而得来的。数据信息可以是任何需要的东西。

好了,现在我们有了区块的构造,接下来是建立区块链。我们必须逐步向链中添加区块。正如我之前所提到的,每个区块都必须源自前一个区块的信息。但是出现了一个问题:如何创建第一个区块呢?第一个区块,也称为创世区块,是一个独特的块。在许多情况下,它是手动添加的,或者具有允许添加的特殊逻辑。

我们将创建一个函数,它只返回一个用于优化实际操作的创建块的公式。该块的数据库索引为0,并且其主要参数为前一个哈希的随机值。

既然我们可以创建创世块,我们必须创建一个可以在区块链中创建后续块的函数公式。该函数将前一个块并为要创建的块创建数据信息,并适当返回新块的信息。当新块的哈希源自前一个块的信息时,随着每个新块的出现,区块链的一致性得到提升。如果我们不这样做,那么外部将更容易地"修改过去",并使用他们自己的全新升级链替换我们的链。该哈希链作为数据加密证实,有助于确保一旦块添加到区块链中,就无法更改或删除。

这也是关键的工作。现在,我们可以创建自己的区块链!在我们的示例中,区块链本身也是一个简单的Python列表。列表的第一个元素是创世块。当然,我们必须添加后续块。由于SnakeCoin是最小的区块链,我们只会添加20个新块。我们可以使用for循环来保证这一点。

让我们来检查一下我们到目前为止所取得的工作成果!

不用担心,它会增加到20

好的!我们的区块链成功了。如果您想在控制台中看到更多信息,您可以编写详细的源代码来打印出每个块的时间戳或数据信息。

……

要想继续阅读,请前往我们的AI研习社社区:http://www.gair.link/page/TextTranslation/835。

更多精彩详细内容尽在AI研习社。

不同的行业包括机器视觉,视频语音理解,区块链,无人驾驶汽车,大数据挖掘,智能控制系统,计算机语言等都在不断发展。

猜你喜欢

微信二维码

微信