03.08 区块链泡沫什么时候会破?Python教你做区块链

“炒币就是赌博,而且是在被高度控盘的赌场赌博。”昨天(3月7日)下午,从国贸到机场的路上,金沙江创投董事总经理朱啸虎接受了《中国企业家》的独家专访。在区块链泡沫日趋膨胀的今天,朱啸虎以“古典互联网”的姿态再次站在风口浪尖,但是对于时下热议的问题,他都并未回避。

对于“古典互联网”的标签,朱啸虎并不反感,“古典互联网至少有两个事不做,违法的事情不做,收割弱者的事情不做。如果把这两件事情定义为古典互联网,我很高兴能够坚持做古典互联网。”

在他看来,“区块链的泡沫今年肯定会破。任何一个技术浪潮都需要经历一个S曲线,从疯狂、增长到泡沫期,然后走过一个死亡谷,再慢慢起来。真正做事情的人,应该在死亡谷右侧再去投资和创业。”

那么什么是区块链呢?

本文要求读者对Python有基本的理解,能读写基本的Python,并且需要对HTTP请求有基本的了解。

区块链是由区块的记录构成的不可变、有序的链结构,记录可以是交易、文件或任何你想要的数据,重要的是它们是通过哈希值(hashes)链接起来的。

在更一般的术语中,它是一个公共数据库,新数据存储在一个名为块的容器中,并被添加到一个不可变链(后来的区块链)中添加了过去的数据。在比特币和其他加密货币的情况下,这些数据是一组交易记录。当然,数据可以是任何类型的。

区块链技术已经催生了新的、完全数字化的货币,如比特币和莱特币,这些货币并不是由中央政府发行或管理的。因此为那些认为今天的银行系统是骗局或终将失败的人带来了新的自由。区块链所包含的以太坊技术对分布式计算进行了变革创新,它引入了一些有趣的概念,比如智能合约。

相信你和我一样对数字货币的崛起感到新奇,并且想知道其背后的技术——区块链是怎样实现的。

但是理解区块链并非易事,至少对于我来说是如此。晦涩难懂的视频、漏洞百出的教程以及示例的匮乏令我倍受挫折。

我喜欢在实践中学习,通过写代码来学习技术会掌握得更牢固。如果你也这样做,那么读完本文,你将获得一个可用的区块链以及对区块链的深刻理解。

第一步:定义区块

我们首先定义我们的区块将是什么样子。在区块链中,每个块都存储有时间戳和可选的索引。我们将同时存储两者。并且为了帮助确保整个块链的完整性,每个块将具有自识别哈希值的功能。像比特币一样,每个区块将包括作为区块的索引的哈希值,时间戳,数据以及前一个块的哈希值。当然,数据可以是任何你想要的。

区块链泡沫什么时候会破?Python教你做区块链

好了~现在我们已经有了块结构了,但是我们正在创建一个区块链。我们需要开始向实际的链条添加区块。如前所述,每个块都需要上一个块的信息。但是这就出现了一个问题:块区中的第一个区块怎么来的?那么,第一个区块,或起创世区块,是一个特殊的块。在许多情况下,它是手动添加的或具有允许添加的唯一逻辑。

第二步:简化创建函数

为了简化,我们将创建一个函数,只需返回一个创世区块,该区块的索引为0,它在“previous hash”参数中具有任意数据值和任意值。

区块链泡沫什么时候会破?Python教你做区块链

现在我们创建了一个创世区块,我们需要一个函数来生成区块链中的后续区块。该函数将将链中的前一个区块作为参数,创建要生成的区块的数据,并返回具有其相应数据的新块。新产生的区块会存储先前区块中的哈希值,区块链的完整性随着每个新的区块而增加。如果我们没有这样做,其他人会很容易篡改历史记录,并用自己的全新数据替代我们的链条。这个哈希链作为加密证明,有助于确保一旦新区块被添加到区块链中,它不能被替换或删除。

区块链泡沫什么时候会破?Python教你做区块链

第三步:创建区块链

这是本次任务的重心。现在我们可以创建我们的区块链!在我们的例子中,区块链本身就是一个简单的Python列表。列表的第一个元素是创世区块。当然,我们需要添加后续的区块。因为SnakeCoin是最小的区块链,所以我们只添加了20个新的块。我们可以用for循环来做到这一点。

区块链泡沫什么时候会破?Python教你做区块链

第四步:测试成果

我们来测试一下已有成果。

区块链泡沫什么时候会破?Python教你做区块链


分享到:


相關文章: