一個簡單的區塊鏈程式碼實現
import hashlib as hasherimport datetime as date#定義區塊鏈是什麼樣子,比如每個鏈的索引位置,時間資料,以及雜湊值class Block: def __init__(self, index, timestamp, data, previous_hash): self.index = index self.timestamp = timestamp self.data = data self.previous_hash = previous_hash self.hash = self.hash_block() # 初始化引數 def hash_block(self): sha = hasher.sha256()#使用sha256進行加密 sha.update( bytes( str(self.index) + str(self.timestamp) + str(self.data) + str( self.previous_hash), 'utf-8'))#更新資料,返回給我們一個16進位制的加密結果 return sha.hexdigest()#建立一個起源塊def create_genesis_block(): # 起源塊後續的塊鏈都會以一種方式建立 return Block(0, date.datetime.now(), "Genesis Block", "0")#起源塊後續的塊鏈都會以一種方式建立def next_block(last_block): this_index = last_block.index + 1 this_timestamp = date.datetime.now() this_data = "你好,我是塊鏈 " + str(this_index) this_hash = last_block.hash return Block(this_index, this_timestamp, this_data, this_hash)def main(): # 起源塊後續的塊鏈都會以一種方式建立 blockchain = [create_genesis_block()] previous_block = blockchain[0] # 手動構造塊鏈,索引為0的任意先前塊鏈,起源塊之後的追加塊鏈 num_of_blocks_to_add = 100 # 新增到鏈上 for i in range(0, num_of_blocks_to_add): block_to_add = next_block(previous_block) blockchain.append(block_to_add) previous_block = block_to_add print("Block #{} has been added to the" "blockchain!".format(block_to_add.index)) print("Hash: {}\n".format(block_to_add.hash))if __name__ == "__main__": main()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70019421/viewspace-2906360/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 300行ABAP程式碼實現一個最簡單的區塊鏈原型區塊鏈原型
- 用java實現一個簡單的區塊鏈Java區塊鏈
- 一個簡單的區塊鏈貨幣,python實現區塊鏈Python
- 一個簡單的區塊鏈區塊鏈
- 使用ABAP實現一個最簡單的區塊鏈原型區塊鏈原型
- 300行Kotlin程式碼實現的區塊鏈Kotlin區塊鏈
- 簡單的實現一個原型鏈原型
- [譯] 用 Java 程式碼實現區塊鏈Java區塊鏈
- NodeJS實現簡易區塊鏈NodeJS區塊鏈
- 61行程式碼構建最簡單區塊鏈行程區塊鏈
- 簡單說區塊鏈區塊鏈
- 用Java程式碼實現區塊鏈技術Java區塊鏈
- 什麼是區塊鏈,簡單瞭解區塊鏈區塊鏈
- 50行ruby程式碼開發一個區塊鏈區塊鏈
- 用Java程式碼實現一個簡單的聊天室功能Java
- Promise 原始碼:實現一個簡單的 PromisePromise原始碼
- JavaScript實現區塊鏈JavaScript區塊鏈
- 區塊鏈-NFT 的實現原理區塊鏈
- go開發一個自己的區塊鏈只需180行程式碼Go區塊鏈行程
- 區塊鏈知識,區塊鏈簡史區塊鏈
- 窺探原理:實現一個簡單的前端程式碼打包器 Roid前端
- java實現一個簡單的爬蟲小程式Java爬蟲
- 雲+區塊鏈 實現區塊鏈技術的普惠應用區塊鏈
- 比特幣和區塊鏈(2):比特幣中區塊鏈的實現比特幣區塊鏈
- 實現一個簡單的TomcatTomcat
- (二)區塊鏈的共識演算法:PoS 及其 例子 程式碼 實現區塊鏈演算法
- 實現簡單的`Blazor`低程式碼Blazor
- 200行golang 實現的區塊鏈Golang區塊鏈
- 實現一個簡單版本的Vue及原始碼解析(一)Vue原始碼
- 打造一個最小區塊鏈區塊鏈
- 區塊鏈簡介區塊鏈
- 實現一個簡單的 RESTful APIRESTAPI
- 實現一個簡單的MVVM(Compile)MVVMCompile
- php實現一個簡單的socketPHP
- 使用Javascript實現小型區塊鏈JavaScript區塊鏈
- .Net Core實現區塊鏈初探區塊鏈
- 區塊鏈應用|CryptoKitties效應:一個與區塊鏈有關的事故區塊鏈
- 通過7個函式解密區塊鏈(附程式碼)函式解密區塊鏈