加入收藏 | 设为首页 | 会员中心 | 我要投稿 滨州站长网 (https://www.0543zz.cn/)- CDN、边缘计算、物联网、云计算、运营!
当前位置: 首页 > 站长资讯 > 动态 > 正文

用Python搭建区块链

发布时间:2021-03-31 14:24:02 所属栏目:动态 来源:互联网
导读:代码从一个模块传输到另一个模块的修改。如果没有datetime导入,我的区块链将无法处理时间戳,或者如果没有hashlib导入,则无法创建哈希。 区块链包含两个类:Block类和Blockchain类。使用Block类,添加到区块链的每个块都具有相同的模型。 积木类 该块必须

代码从一个模块传输到另一个模块的修改。如果没有datetime导入,我的区块链将无法处理时间戳,或者如果没有hashlib导入,则无法创建哈希。

区块链包含两个类:Block类和Blockchain类。使用Block类,添加到区块链的每个块都具有相同的模型。

积木类

该块必须包含以下属性:

  • 块的编号,其设置为0,因为它是链中的第一个块,称为Genesis块数据,设置为无
  • 接下来,设置为无。这充当指向下一个块的指针,该块继续保持链接的趋势。
  • 哈希,设置为无。区块的哈希至关重要,因为它是加密技术的一部分,使区块链变得如此安全和不可变。
  • 随机数,设置为0。随机数是一遍又一遍地迭代直到找到“ Golden Nonce”的随机整数。在工作量证明中,矿工竞相首先找到合适的哈希。随机数变化多次,直到它有助于生成正确的哈希。这样就完成了对块的验证,并且可以将块添加到链中。
  • 前一个哈希,设置为0x0。存储前一个区块的哈希值会使区块链不可变,因为更改一个区块的哈希值会影响所有后续区块。
  • 时间或时间戳记,描述了交易发生并用于同步网络中所有块的时间。

现时的数据,在前面的哈希的时间戳和块编号放入一个字符串,并运行通过SHA-256的功能。SHA-256是通常用于区块链的密码哈希算法。“ h ”是使用SHA-256的变量。因为我在代码的开头导入了hashlib,所以可以使用SHA-256。散列函数中所有组件的总和将创建块的散列,当创建新块时,该散列将添加到散列字段中。

图片的最后一行告诉你将在输出中显示的内容或打印的内容。在这种情况下,输出将显示块的哈希值和块编号。

区块链类

下一步是创建代码的第二个类:Blockchain类。区块链类包括:

  • 难度设置为20。通过增加难度,我们有效地减小了目标范围。减小目标范围将使挖掘区块变得更加困难,这在处理具有许多节点来查找可接受的哈希的网络时非常有用。

(编辑:滨州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读