python 간단 한 블록 체인 시 뮬 레이 션 상세 설명

최근 에 python 을 조금 배 웠 으 니 간단 한 프로 그래 밍 연습 을 해 보 세 요.
먼저 이 프로 그래 밍 의 지도 그림 입 니 다.다음 과 같 습 니 다.

맞습니다.간단 한 블록 체인 과 유사 한 시 뮬 레이 션 입 니 다.
코드 는 다음 과 같 습 니 다:

class DaDaBlockCoin:

 #index   ,timestamp    ,data     ,self_hash  hash,last_hash,  hash
 def __init__(self,idex,timestamp,data,last_hash):
  self.idex = idex
  self.timestamp = timestamp
  self.data = data
  self.last_hash = last_hash
  self.self_hash=self.hash_DaDaBlockCoin()


 def hash_DaDaBlockCoin(self):
  sha = 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"))
  return sha.hexdigest()

def create_first_DaDaBlock(): #     

 return DaDaBlockCoin(0, datetime.datetime.now(), "love dadacoin", "0")

# last_block,     
def create_money_DadaBlock(last_block): #    
 this_idex = last_block.idex + 1 #    1
 this_timestamp = datetime.datetime.now()
 this_data = "love dada" + str(this_idex) #       
 this_hash = last_block.self_hash #       hash
 return DaDaBlockCoin(this_idex, this_timestamp, this_data, this_hash)

DaDaBlockCoins = [create_first_DaDaBlock()] #      ,        
nums = 10
head_block = DaDaBlockCoins[0]
print(head_block.idex, head_block.timestamp, head_block.self_hash, head_block.last_hash)
for i in range(nums):
 dadaBlock_add = create_money_DadaBlock(head_block) #           
 DaDaBlockCoins.append(dadaBlock_add)
 head_block = dadaBlock_add
 print(dadaBlock_add.idex, dadaBlock_add.timestamp, dadaBlock_add.self_hash, dadaBlock_add.last_hash)
인쇄 결 과 는 다음 과 같 습 니 다.

시작 하 는 지도 방향 과 완벽 하 게 맞 아 떨 어 졌 다.간단 한 시 뮬 레이 션 이 었 지만.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기