最近学习了一点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)
打印结果如下:
与开头的指导思路完美契合,虽然只是很简单的模拟。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。