想学习区块链吗?然后用Python构建一个

想学习区块链吗?然后用Python构建一个

编译自:https://hacker noon.com/learn-区块链-by-building-one-117428612f46

尼尔范弗莱明

译者:qhwdw

理解区块链如何运作的最快方法就是建造一个。

你读这篇文章,是因为你和我一样,对加密货币的流行感到兴奋。并且想知道区块链是如何工作的——他们背后的技术基础是什么。

但是理解区块链并不容易。至少对我来说是——。我在各种高难度视频中徘徊,因为例子太少而深感挫败。

喜欢边做边学。这将允许我在代码级别处理主要问题,这将允许我坚持到底。如果你也这样做,在本指南结束时,你将有一个正常工作的区块链,并真正理解它是如何工作的。

00-1010记住,区块链是一串不可更改的有序记录(称为块)。它们可以包括事务文件或您想要任何真实数据最重要的是,它们通过使用哈希链接在一起。

如果你不知道hash是什么,这里有一个解释。

这本指南的目标读者是谁?您应该能够轻松地读写一些基本的Python代码,并理解HTTP请求是如何工作的,因为我们正在讨论的区块链将基于HTTP。

我要做什么呢?确保安装了Python 3.6(和pip),还需要安装Flask和非常易于使用的请求库:

pip安装烧瓶==0.12.2请求==2.18.4

当然,你还需要一个HTTP客户端,像Postman或者cURL。谁都行。

在哪里可以找到的最终代码?源代码在这里

开始之前 …

打开您最喜欢文本编辑器或IDE。我个人喜欢PyCharm。创建一个名为blockchain.py的新文件,我只使用一个文件。如果你有困惑,可以参考源代码。

00-1010我们将创建一个区块链类,它的构造函数将初始化一个空列表(用来存储我们的区块链)和另一个保存交易的列表。这是我们的课程计划

类区块链(对象):

def __init__(self):

self.chain=[]

self.current_transactions=[]

def new_block(自身):

#创建一个新块并将其添加到链中

及格

def new_transaction(自身):

#将新事务添加到事务列表中

及格

@静态方法

定义哈希(块):

#散列一个块

及格

@属性

def last_block(自身):

#返回链中的最后一个块

及格

我们区块链类的原型

我们的区块链类负责管理链。它将存储事务,并有一些辅助方法来添加新的块到链中。现在让我们开始丰富一些类方法。

00-1010每个块都有一个索引、一个时间戳(Unix时间)、一个事务列表、一个证书(后面会详细解释)以及前一个块的散列。

单个块的示例应该如下所示:

block={

索引\' : 1,

时间戳\' : 1506057125.900785,

交易\' : [

{

发件人\' : \' 8527147 fe1f 5426 f9dd 545 de 4b 27 ee 00 \',

收件人\' : \' a 77 F5 cdfa 2934 df 3954 a5 C7 c 7 da 5d f1f \':

金额\' : 5,

}

],

证明\' : 324984774000,

previous _ hash \' : \' 2 cf 24 DBA 5 FB 0 a 30 e 26 e 83 B2 AC 5b 9 e 29 E1 e 1b 161 E5 C1 fa 7425 e 73043362938 b 9824 \'

}

区块链街区的例子

这时,链条的概念应该非常明显了。3354每个新块包含它自己的信息和前一个区域的散列。这是非常重要的,因为这就是区块链不能被改变的原因:如果

版权声明:区块链游戏 发表于 2022-04-26 18:03:52。
转载请注明:想学习区块链吗?然后用Python构建一个 | 零零洞洞

暂无评论

暂无评论...