作家
登录

用不到50行的Python代码,构建最小的区块链

作者: 来源: 2017-11-24 09:32:04 阅读 我要评论

  •                str(self.timestamp) + 
  •                str(self.data) + 
  •                str(self.previous_hash)) 
  •     return sha.hexdigest() 
  • 这一步后有块构造,但如今是创建区块链,所以须要向实际的链中添加块。如前所述,每个块都须要上一个块的信息。然则按照这个说法就有一个问题,区块链的第一个区块是若何达到那边的呢?不得不说,第一个块,或者说是来源块,它是一个特别的块。在很多情况下,它是手动添加的,或者有独特的逻辑许可添加。

    下面将创建一个函数简单地返回一个来源块以便产生第一个区块。这个块是索引0,它具有随便率性的数据值和“前一个哈希”参数中的随便率性值。

    1. import datetime as date 
    2.   
    3. def create_genesis_block(): 
    4.   # Manually construct a block with 
    5.   # index zero and arbitrary previous hash 
    6.   return Block(0, date.datetime.now(), "Genesis Block""0"

    下面来测试一下今朝产生的区块链。

    如今已经创建好潦攀来源块,接下来须要一个函数,以便在区块链中生成后续的块。这个函数将把链中的前一个块作为参数,创建要生成的块的数据,并应用恰当的数据返回新块。当新的块哈希信息来自前面的块时,区块链的完全性会跟着每个新块而增长。如不雅不如许做,外部组织就更轻易“改变以前”,用全新的方法代替已有的链条。这一系列的散列可以作为加密的证据,有助于确保一旦将块添加到区块链,它就不克不及被调换或删除。

    1. def next_block(last_block): 
    2.   this_index = last_block.index + 1 
    3.   this_timestamp = date.datetime.now() 
    4.   this_data = "Hey! I'm block " + str(this_index) 
    5.   this_hash = last_block.hash 
    6.   return Block(this_index, this_timestamp, this_data, this_hash) 

    大年夜部分的工作已经完成,如今可以创建区块链了。在此次的示例中,区块链本身是一个简单的Python列表。列表的第一个元素是来源块。当然,还须要添加后续的块,因为SnakeCoin是最小的区块链,这里只添加20个新的块。可以用for轮回来生成新块。

    看到了吧,这就是区块链。如不雅欲望在控制台中查看更多信息,可以编辑完全的源文件并打印每个块的时光戳或数据。

    这就是SnakeCoin要供给的所有器械。为了使SnakeCoin范围达到今天临盆区块链的范围,必须添加更多的功能,比如办事器层,以跟踪多台机械上的链变更,以及在给定的时光段内限制添加的块数量的工作算法。

    【编辑推荐】

    1. 不到500行Python代码,你能编出什么?这些Github大年夜神太牛了!
    2. 2017年最棒的七个Python图形应用GUI开辟框架
    3. 经由过程构建一个简单的掷骰子游戏去进修怎么竽暌姑Python编程
    4. IT技巧风行度大年夜比拼,Python不及React,持续5月屈居第二!
    5. Python 语法速览与拭魅战清单
    【义务编辑:庞桂玉 TEL:(010)68476606】

      推荐阅读

      浅谈云计算和物联网的关系 其中挑战是什么?

    Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 物联网与云计算都是基于互联>>>详细阅读


    本文标题:用不到50行的Python代码,构建最小的区块链

    地址:http://www.17bianji.com/lsqh/39207.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)