宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > Gateio > 正文

国外大牛教你 如何用Python开发一个简单的区块链数据结构| 建议收藏

作者:

时间:1900/1/1 0:00:00

来源|Medium作者|arjunaskykok整理/Aholiab出品|区块链大本营

根据IEEE此前的一项调查,Python已成为最受开发者欢迎的语言之一。由于其对于技术小白天然友好的特性,以及不断更新的新功能。Python越来越受到国内外开发者的喜爱。越来越多被用于独立、大型项目的开发开始使用Python。

20世纪90年代初荷兰人GuidovanRossum为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

之所以选中Python作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》。

对于区块链开发者来说,Python也是十分实用的语言之一。今天,我们就Python开发一个简单的区块链数据结构。

法国外贸银行:美联储或欧洲央行不会突然退出扩张性货币政策:12月23日消息,法国外贸银行表示,美联储或欧洲央行不会突然退出扩张性货币政策欧洲央行不可能突然转向收紧货币政策。尽管一些观察人士辩称,由于通胀高企,美联储可能会退出刺激性政策,但我们认为,考虑到目前的债务比率和资产价格水平,美联储也不可能突然转向更具限制性的货币政策。核心场景仍然是美联储谨慎调整货币政策,导致长期利率缓慢上升,实际长期利率继续为负。 (金十)[2021/12/23 7:59:08]

在这篇文章中,一方面我们会对区块链数据结构的基本概念进行讲解,例如哈希的工作原理,另一方面,也会以实际代码来构建一个区块链基本的数据结构,让你对区块链和Python的基础有个基本的理解。

说不多说,下面就进入正题!

从哈希函数说起

动态 | EOS 节点内讧:7 个节点被同一中国节点控制,国外节点已发起取消资格投票:EOS 的节点 EOS New York 发现有 6 个 EOS 节点为同一团体控制,已经提案请求撤销 6 个节点的节点资格。据 EOS New York 提供的信息显示,stargalaxybp、 validatoreos、eoszeusiobp1、 eosunioniobp、eosathenabp1,以及 eosrainbowbp 这 6 个节点注册邮箱均为 eoshenzhen@gmail.com,疑似此 6 个节点的控制人均为目前节点排名第 52 位的 EOShenzhen 节点。

浏览器显示,上述 6 个节点排名均在 50 名与 70 名之间,均为备选节点,其中 5 个节点每天共可领到约 547 个 EOS 奖励。若 EOS New York 的信息无误,则作为 7 个节点控制人的 EOShenzhen 每天可以领到约 662 个 EOS 奖励,约 1.2 万人民币。

目前EOS New York 已经发起了撤销6个节点资格的提案,按照要求,需要超过15个出块节点同意提案才能生效,暂时还没有出块节点投票。

EOS 的节点规定是一个节点只能拥有一个账号,不允许创建多个节点账号,但这并不是 EOS 节点第一次出现多个节点拥有同一控制人。金色此前报道,节点 starteos 公开表示过创建了 starteos 与 games.eos 两个账号。

EOS New York 是 EOS 网络中的老牌节点,目前排名 36 位,每天收到的奖励约 176 个 EOS,约人民币 3100 元。[2019/11/28]

在区块链中,数据结构是十分重要的基本组成部分,尤其是比特币。虽然单一的数据结构无法构建成加密数字货币,但理解数据结构对于理解区块链的基本原理是非常有益处的。

动态 | 国外一男子冒充警察 要求受害者使用加密货币汇款:据thenextweb消息,最近,美国加利福尼亚州一名妇女接到一个自称是伯克利警察局(BPD)“警官Neil Matthew”的人的电话。对方要求该女子使用加密货币将所有钱汇给他,声称她正在接受“贩和欺诈活动”的调查。随后该女子接到了多个来自不同号码的电话 ,包括911。 BPD表示,警局并没有该名称的警官,犯可以用官方电话掩盖他们自己的电话号码,目前尚不清楚者的目标是否针对加利福尼亚州以外的人。[2019/4/25]

但在讲数字结构之前,我们还是先从哈希讲起,以比特币的SHA-256哈希函数为例,讲讲如何利用Python去实现哈希的运算。

哈希函数,又称散列算法,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。

动态 | 英国外汇交易所旗下加密交易所获得直布罗陀DLT许可证:据Finance Magnates消息,英国外汇交易所LMAX Exchange子公司LMAX Digital宣布,其已获得直布罗陀金融服务委员会(GFSC)颁发的分布式分类账技术(DLT)提供商许可证。据悉,LMAX Digital于2018年年中推出,是首个由受监管的外汇交易所运营商建立的加密货币交易所。[2019/4/17]

对于任意长度的消息,SHA256都会产生一个256bit长的哈希值,称作消息摘要。

这个摘要相当于是个长度为32个字节的数组,通常用一个长度为64的十六进制字符串来表示。

来看一个例子:

这句话,经过哈希函数SHA256后得到的哈希值为:

说回SHA-256,说白了,它就是一个哈希函数。那么我们如何用Python来实现呢?下面代码展示了用Python实现「helloworld」的过程:

声音 | 美国联邦储备理事会理事:国外政府背书的加密货币不会对美国全球金融体系造成威胁:据washingtonexaminer报道,美国联邦储备理事会理事Lael Brainard在周三接受采访时淡化国外政府背书的加密货币不会对美国全球金融体系造成大的威胁,并称,美元作为世界储备货币的作用非常重要,有许多因素将继续使美元成为重要的储备货币,真正为全世界服务。[2018/10/4]

看到这里你可能会问,SHA-256中的「256」究竟是什么意思?哈希算法是一个将任意文本转换为一个256位随机二进制字符串的过程。在上面的例子中,「helloworld」是一个11位的字符,经过哈希运算以后,变成了这样的一串字符:

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

同样,即使我的文本长度不是11位,生成的字符数也是一样的。例如:

在上面例子中,「Iamthebestpresident.Ever.」,哈希运算之后的字符串一样为64位。就算输入的文本是100位,哈希运算后的字符位数也是64位。

之所以这样,是因为字符是16进制的,如果我们把这样的字符串转换为2进制,那么就会得到一个256位的2进制字符串。如下图所示:

这就是SHA-256中,256这个数字的由来。

接下来我们就来看看哈希算法有哪些特征。哈希的特征之一就是「无冲突原则」。这个原则是指要得到一个256位的2进制字符串,显然有不止一个输入可以做到。

因为256位的输出长度是固定的,但输入的长度却没有限制,所以输入的范围要远大于输出,只要能够穷尽输入,就有可能得到2个一样的256位的输出。

话虽如此,不过要找到这样两个输入的难度却很大。即使是输入上改动了一点,输出的结果都会完全不同。如下图所示:

所以,想要找到2中一样的输出的唯一方法,是穷尽所有的字幕、数字组合,这几乎无法做到。几率为2的256次方。

这是个多大的数字?展开来就是酱婶儿的:

115792089237316195423570985008687907853269984665640564039457584007913129639936

几乎相当于10的77次方。这是个什么概念?在460亿光年的宇宙内,可见的原子数量也只有10的78次方。这个数字几乎相当于宇宙内的原子数量!

要运算这个数字需要多长时间?以英伟达Geforce1080Ti显卡,浮点运算11.3的算力来运算,每个哈希需要运算3000次,以每秒钟3766666666个哈希的速度来运算,找到两个相同的哈希运算结果,需要计算2的128次方个哈希。地球上所有的人一起计算,需要的时间如下:

这比地球存在的实时间都要长。

用Python创建第一个区块

了解了什么是哈希,我们接着就来说说什么是区块。实际上,区块链就是一个互相连接的序列。我们接下来创建第一个区块,也称为「创世区块」。代码如下所示:

区块链中会包含交易,交易很好理解,就是谁转了多少钱给谁。我们把区块进行序列,这样它就可以进行哈希运算:

这样,我们就得到了另一个区块,我们姑且称它为「区块2」:

再对区块2进行哈希运算:

得到了「区块3」。

再对区块3进行哈希运算,得到了「区块4」。

这样一来,想要确定区块上的数据没有被篡改,我只需要检查最后一个区块的哈希就行了。而不是从创世区块开始检查。这一原理也杜绝了区块链上数据被攒该的可能。

通过以上代码,可以得到下面结果:

这样,用Python实现简单的区块链开发的演示就结束了。Python是一门强大的语言,区块链是一个强大的信用工具,这两者结合,势必能创造出新的可能性。

怎么样,今天的内容你都学会了吗?还想看哪些技术教程,欢迎留言告诉营长!

参考链接:

https://medium.com/coinmonks/building-a-simple-blockchain-data-structure-with-python-e7ebd448647a

https://blog.csdn.net/u011583927/article/details/80905740

标签:EOSYTHHON区块链leostokenYTH币HONK区块链工程专业学什么

Gateio热门资讯
比特币价格走廊与幂律法则:走向何方?

前言:关于比特币未来价格有很多预测的模型,本文主要通过幂律法则对比特币的价格进行建模,它对未来乐观,但同时时间上也拉到相对长的尺度。本文作者是HaroldChristopherBurger,由“蓝狐笔记”社群的“SIEN”翻译.

1900/1/1 0:00:00
NEW将于9月6日登陆GGBTC万有引力交易所

GGBTC交易所将于2019年9月6日上线牛顿,届时将开放NEW充值和交易服务,具体如下:开放交易开始时间:2019年9月6日14:00开放充值时间:2019年9月6日14:00开放提现时间:2019年9月6日14:00届时开通:NE.

1900/1/1 0:00:00
CoinTiger币虎将延迟上线UDOONEW/ETH交易对

尊敬的用户: 应Howdoo项目方要求,CoinTiger币虎将延迟上线UDOONEW/ETH交易对,具体上线时间为新加坡时间2019年9月4日17:00。给您造成不便,敬请谅解.

1900/1/1 0:00:00
我国数字资产财产继承的三重门:比特币可以继承吗?

导读:随着互联网技术的快速发展,人们正在进入一个数字化生存时代,越来越多的互联网服务绑定了用户的个人身份信息、资金账户等更为隐私和具有财产性质的信息内容.

1900/1/1 0:00:00
全球首个跨链去中心化交易平台 BigDEX 即将上线

在各种创新如雨后春笋般冒头的2019年,DeFi无疑是最耀眼的那颗星,尤其是在监管层接连一系列动作后,DeFi更是成为市场关注的焦点.

1900/1/1 0:00:00
Gate.io永续合约交易王者每日赛9月2日、9月3日中奖结果公布-最高单日收益率526.80%

Gate.io永续合约是全球最活跃的区块链资产合约市场之一,目前合约交易日交易量超过1亿美金,最高达到4亿美金。拥有超过1000BTC的保险基金自动为用户提供穿仓补偿.

1900/1/1 0:00:00