本文參考
區塊鏈(blockchain)是位元幣等流行的加密貨幣背後的技術。區塊鏈的主要概念是去中心化,提供分布式賬本。本文會為你展示如何在 ios/macos 中使用 swift 語言建立最基本的區塊鏈。
注意:本文不涉及節點(nodes/peers)、驗證和獎勵等。
我會用 macos playground 來演示,快且方便,還有一些實用的函式可以用來生成 sha 雜湊值。
第一步是實現區塊(block)類,用來表示區塊鏈中的乙個區塊。實現如下:
class block
}init(data: string)
}複製**
區塊類詳解:
區塊鏈(blockchain)類需要用乙個區塊的例項來初始化自己。這個區塊也被稱為創世區塊(genesis block),正因為它是區塊鏈的第乙個區塊。區塊鏈類實現如下:
class blockchain
func addblock(_ block: block) else
displayblock(block)
}private func getpreviousblock() -> block
private func displayblock(_ block: block)
private func generatehash(for block: block) -> string
return
hash
}}複製**
addblock函式用於給區塊鏈增加區塊。下乙個區塊則基於前乙個區塊的雜湊值以及其它屬性來計算 key。
generatehash函式負責生成唯一的雜湊值並賦值給區塊。但並不使用完全隨機的雜湊,而是需要以「00」開頭的特定雜湊。這個概念叫做「工作量證明系統」。在實際中工作量證明系統的解法會更複雜,解決的人也會獲得獎勵(可能是額外的位元幣)。
下面實際看看我們的區塊鏈。
python 區塊鏈 區塊鏈Python實現
區塊鏈是如同鍊錶的一組記錄。每個區塊含有一些資訊以及與其他區塊關聯的方法。每個區塊有前乙個區塊的雜湊值 時間戳 資料。class block def init self,timestamp,data,previous hash self.timestamp timestamp self.data d...
PHP實現區塊鏈
簡單的php區塊鏈 namespace common library block 區塊結構 class block public function get name private function hash block 創世區塊 return common library block block ...
區塊鏈在中國(3) 區塊鏈場景漫談
也許我們不是從未來飛來的人,無法 未來一年或者幾年內,當下的哪種新興趨勢和技術可以成為顛覆的主流。有人之前認為3d電視會顛覆人類生活,可惜並沒有 有人期待vr能夠顛覆人類的時空觀,但這仍有待時間的檢驗 再往前,網際網路剛出現的時候,極其簡陋,如今的支付和o2o都無法想象,那時候有人放棄甚至唾棄,但有...