繼續(xù)HyperLeger Fabric中文文檔的學(xué)習(xí)。
分布式賬本
區(qū)塊鏈賬本通常被定義為去中心化,這是因為在整個網(wǎng)絡(luò)中,每個參與者都保存著一個區(qū)塊鏈賬本的副本,所有參與者通過協(xié)作共同維護著賬本。
個人理解:因為賬本是共同維護的了,所以,不會存在銀行間或行業(yè)間的對賬服務(wù)了。將驗證進行前置,在記賬的時候進行驗證。
區(qū)塊鏈的不同點
不同于目前的系統(tǒng)——參與者使用私有的程序?qū)λ接械馁~本進行更新,而區(qū)塊鏈系統(tǒng)使用共享的程序?qū)蚕淼馁~本進行更新。
個人理解:賬本本身和記賬過程透明,從而增強了信任。
Hyperledger Fabric是什么?
Hyperledger Fabric與其他區(qū)塊鏈系統(tǒng)最大的不同體現(xiàn)在私有和許可。與開放無需許可的網(wǎng)絡(luò)系統(tǒng)允許未知身份的參與者加入網(wǎng)絡(luò)不同(需要通過工作量證明協(xié)議來保證交易有效并維護網(wǎng)絡(luò)的安全),Hyperledger Fabric通過Membership Service Provider(MSP)來登記所有的成員。
本質(zhì)上說,公鏈是無需許可鏈;而HyperLeger Fabric是許可鏈;節(jié)點的進入需要通過協(xié)議或標準來獲取許可加入到鏈中的。
共享賬本
Hyperledger Fabric包含一個賬本子系統(tǒng),這個子系統(tǒng)包含兩個組件:世界狀態(tài)(world state)和交易記錄。在Hyperledger Fabric網(wǎng)絡(luò)中的每一個參與者都擁有一個賬本的副本。
世界狀態(tài)組件描述了賬本在特定時間點的狀態(tài),它是賬本的數(shù)據(jù)庫。交易記錄組件記錄了產(chǎn)生世界狀態(tài)當前值的所有交易,它是世界狀態(tài)的更新歷史。那么,賬本則是世界狀態(tài)數(shù)據(jù)庫和交易歷史記錄的集合。
這個描述有點繞。[疑問] 賬本特定時間點的狀態(tài),都包含哪些狀態(tài)?交易記錄有事世界狀態(tài)的所有交易,可以理解為對世界狀態(tài)的修改的所有歷史。
賬本的世界狀態(tài)存儲數(shù)據(jù)庫是可更換的。默認配置下,這是一個key-value存儲數(shù)據(jù)庫。交易記錄模塊不需要被接入。只需要記錄在區(qū)塊鏈網(wǎng)絡(luò)中賬本數(shù)據(jù)庫被使用時之前和之后的值就可以了。
[疑問] 為什么世界狀態(tài)存儲數(shù)據(jù)庫可以更換?在節(jié)點運行起來之后也是可以更換嗎?還是說世界狀態(tài)不是區(qū)塊鏈中的區(qū)塊,鏈中最重要的部分?
智能合約
大多數(shù)情況下,chaincode只會訪問賬本的數(shù)據(jù)庫組件和世界狀態(tài)(world state)(比如查詢),但不會查詢交易記錄。
[疑問] 賬本的數(shù)據(jù)庫組件又是什么?前面不是說賬本有世界狀態(tài)和交易記錄兩部分嘛。