python简单区块链模拟详解

  

最近学习了一点python,那就试着做一做简单的编程练习。
  

  

首先是这个编程的指导图,如下:

  

 python简单区块链模拟详解

  

对的,类似一个简单区块链的模拟。
  

  

代码如下:

        类DaDaBlockCoin:      #指数索引,时间戳时间戳,数据交易记录,self_hash交易散列,last_hash,上个散列   def __init__(自我,国际防务展,时间戳、数据last_hash):   自我。国际防务展=国际防务展   自我。时间戳=时间戳   自我。data=https://www.yisu.com/zixun/data   自我。last_hash=last_hash   self.self_hash=self.hash_DaDaBlockCoin ()         def hash_DaDaBlockCoin(自我):   沙=hashlib.md5() #加密算法,这里可以选择sha256, sha512,为了打印方便,所以选了md5   #对数据整体加密   datastr=str (self.idex) + str (self.timestamp) + str (self.data) + str (self.last_hash)   sha.update (datastr.encode (“utf - 8”))   返回sha.hexdigest ()      def create_first_DaDaBlock(): #创世区块      返回DaDaBlockCoin (0, datetime.datetime.now(),“爱dadacoin”、“0”)      # last_block,上一个区块   def create_money_DadaBlock (last_block): #其它块   this_idex=last_block。国际防务展+ 1 #索引加1   this_timestamp=datetime.datetime.now ()   this_data=" https://www.yisu.com/zixun/love达达”+ str (this_idex) #模拟交易数据   this_hash=last_block。self_hash #取得上一块的散列   返回DaDaBlockCoin (this_idex this_timestamp、this_data this_hash)      DaDaBlockCoins=[create_first_DaDaBlock()] #区块链列表,只有一个创世区块   num=10   head_block=DaDaBlockCoins [0]   打印(head_block。国际防务展,head_block。时间戳,head_block。self_hash head_block.last_hash)   因为我在范围(num):   dadaBlock_add=create_money_DadaBlock (head_block) #创建一个区块链的节点   DaDaBlockCoins.append (dadaBlock_add)   head_block=dadaBlock_add   打印(dadaBlock_add。国际防务展,dadaBlock_add。时间戳,dadaBlock_add。self_hash dadaBlock_add.last_hash)      

打印结果如下:

  

 python简单区块链模拟详解

  

与开头的指导思路完美契合,虽然只是很简单的模拟。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

python简单区块链模拟详解