尽管有些人认为区块链是解决问题的方法,但毫无疑问,这种新技术应用是计算出来的惊喜。但是,区块链到底是什么?
区块链是一个公共数据,记录了以比特币或其他数字货币开展的交易并公布的数据账簿。一般来说,它是一个公共数据,在其中新数据存储在称为区块的容器中,并加入了已经加入信息的不可变链(因此称为区块链)中。在比特币和其他数字货币的情况下,这些信息是交易信息,但数据可以是任何类型。
区块链技术出现了新的全虚拟货币,如比特币和以太币,这些货币不是由中央机构发行或监管的。这为那些认为银行业务是骗局或无法成功的人提供了新的选择。区块链还用类似于以太币的技术改变了分布式存储,并加入了智能合约等有趣的定义。
在这篇文章中,我将用不到50行Python2代码建立一个简单的区块链,称为SnakeCoin。
首先我们需要定义区块。在区块链中,每个区块存储时间戳和可选的数据库索引。在SnakeCoin中,我们要同时存储这两个部分。为了更好地协助保证整个区块链的一致性,每个区块都有自己的鉴别哈希值。像比特币一样,每个区块的哈希是由区块的数据库索引,时间戳,数据信息的哈希和前一个区块的哈希哈希散列加密而得来的。数据信息可以是任何需要的东西。
好了,现在我们有了区块的构造,接下来是建立区块链。我们必须逐步向链中添加区块。正如我之前所提到的,每个区块都必须源自前一个区块的信息。但是出现了一个问题:如何创建第一个区块呢?第一个区块,也称为创世区块,是一个独特的块。在许多情况下,它是手动添加的,或者具有允许添加的特殊逻辑。
我们将创建一个函数,它只返回一个用于优化实际操作的创建块的公式。该块的数据库索引为0,并且其主要参数为前一个哈希的随机值。
既然我们可以创建创世块,我们必须创建一个可以在区块链中创建后续块的函数公式。该函数将前一个块并为要创建的块创建数据信息,并适当返回新块的信息。当新块的哈希源自前一个块的信息时,随着每个新块的出现,区块链的一致性得到提升。如果我们不这样做,那么外部将更容易地"修改过去",并使用他们自己的全新升级链替换我们的链。该哈希链作为数据加密证实,有助于确保一旦块添加到区块链中,就无法更改或删除。
这也是关键的工作。现在,我们可以创建自己的区块链!在我们的示例中,区块链本身也是一个简单的Python列表。列表的第一个元素是创世块。当然,我们必须添加后续块。由于SnakeCoin是最小的区块链,我们只会添加20个新块。我们可以使用for循环来保证这一点。
让我们来检查一下我们到目前为止所取得的工作成果!
不用担心,它会增加到20
好的!我们的区块链成功了。如果您想在控制台中看到更多信息,您可以编写详细的源代码来打印出每个块的时间戳或数据信息。
……
要想继续阅读,请前往我们的AI研习社社区:http://www.gair.link/page/TextTranslation/835。
更多精彩详细内容尽在AI研习社。
不同的行业包括机器视觉,视频语音理解,区块链,无人驾驶汽车,大数据挖掘,智能控制系统,计算机语言等都在不断发展。
社交一直以来都是所有人的核心需求之一,也是互联网领域最引人注目的发展方向之一。事实上区块链社交有很多种,那些你听过但没听过的聊天软件、游戏、即时社区、图文分享等等,这些都不在这里列举,它们有的在挣扎生存,有的在潜移...
区块链应用落地N种方式区块链作为一种分布式应用,必须与其他系统结构结合,包括其他分布式结构,甚至集中结构,从产业逻辑的角度,而不仅仅是从技术逻辑的角度,面对真实的业务场景需要构建信息系统结构,相互学习,匹配行业和业务逻辑...
近日,智贵科技正式推出软硬件一体化区块链解决方案——自主研发区块链一体机!旨在降低政府和企业用户使用区块链的难度,轻松部署高可靠、高可用的区块链网络。基于政府和企业用户的业务特点,智能技术开发的区块链一体机以自主开发的区...
区块链作为一种新的颠覆性技术,是国内外活跃的研究领域和毕业设计课题的方向。本文列出了最新一组区块链论文,希望对选择区块链毕业设计的学生有所帮助。这是汇智编辑的区块链毕业设计系列论文的第二篇。1、未来智能电网区块链:综合调...