国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現(xiàn)類似比特幣的加密貨幣區(qū)塊鏈的創(chuàng)建與交易實例

2020-02-22 23:30:36
字體:
供稿:網(wǎng)友

雖然有些人認為區(qū)塊鏈是一個早晚會出現(xiàn)問題的解決方案,但是毫無疑問,這個創(chuàng)新技術(shù)是一個計算機技術(shù)上的奇跡。那么,究竟什么是區(qū)塊鏈呢?

區(qū)塊鏈

以比特幣(Bitcoin)或其它加密貨幣按時間順序公開地記錄交易的數(shù)字賬本。

更通俗的說,它是一個公開的數(shù)據(jù)庫,新的數(shù)據(jù)存儲在被稱之為區(qū)塊(block)的容器中,并被添加到一個不可變的鏈(chain)中(因此被稱為區(qū)塊鏈(blockchain)),之前添加的數(shù)據(jù)也在該鏈中。對于比特幣或其它加密貨幣來說,這些數(shù)據(jù)就是一組組交易,不過,也可以是其它任何類型的數(shù)據(jù)。

區(qū)塊鏈技術(shù)帶來了全新的、完全數(shù)字化的貨幣,如比特幣和萊特幣(Litecoin),它們并不由任何中心機構(gòu)管理。這給那些認為當今的銀行系統(tǒng)是騙局并將最終走向失敗的人帶來了自由。區(qū)塊鏈也革命性地改變了分布式計算的技術(shù)形式,如以太坊(Ethereum)就引入了一種有趣的概念:智能合約(smart contract)。

在這篇文章中,我將用不到 50 行的 Python 2.x 代碼實現(xiàn)一個簡單的區(qū)塊鏈,我把它叫做 SnakeCoin。

不到 50 行代碼的區(qū)塊鏈

我們首先將從定義我們的區(qū)塊是什么開始。在區(qū)塊鏈中,每個區(qū)塊隨同時間戳及可選的索引一同存儲。在 SnakeCoin 中,我們會存儲這兩者。為了確保整個區(qū)塊鏈的完整性,每個區(qū)塊都會有一個自識別的哈希值。如在比特幣中,每個區(qū)塊的哈希是該塊的索引、時間戳、數(shù)據(jù)和前一個區(qū)塊的哈希值等數(shù)據(jù)的加密哈希值。這里提及的“數(shù)據(jù)”可以是任何你想要的數(shù)據(jù)。

import hashlib as hasherclass 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()  sha.update(str(self.index) +         str(self.timestamp) +         str(self.data) +         str(self.previous_hash))  return sha.hexdigest()import hashlib as hasher 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()  sha.update(str(self.index) +         str(self.timestamp) +         str(self.data) +         str(self.previous_hash))  return sha.hexdigest()

現(xiàn)在我們有了區(qū)塊的結(jié)構(gòu)了,不過我們需要創(chuàng)建的是一個區(qū)塊鏈。我們需要把區(qū)塊添加到一個實際的鏈中。如我們之前提到過的,每個區(qū)塊都需要前一個區(qū)塊的信息。但問題是,該區(qū)塊鏈中的第一個區(qū)塊在哪里?好吧,這個第一個區(qū)塊,也稱之為創(chuàng)世區(qū)塊,是一個特別的區(qū)塊。在很多情況下,它是手工添加的,或通過獨特的邏輯添加的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 隆回县| 富蕴县| 兰溪市| 青川县| 肇源县| 曲水县| 左贡县| 朝阳区| 同德县| 河东区| 罗城| 望都县| 高邑县| 潜江市| 织金县| 舞阳县| 玉田县| 吉安市| 元氏县| 惠安县| 察雅县| 五家渠市| 伊通| 砀山县| 监利县| 大厂| 扶风县| 富源县| 清涧县| 新乡县| 微山县| 吴江市| 邯郸市| 连江县| 东乌珠穆沁旗| 绥滨县| 乐都县| 宣城市| 盱眙县| 宣化县| 敦煌市|