用大白話解釋區塊鏈分類賬本Hyperledger Fabric
Hyperledger Fabric是一個分散式區塊鏈網路,其中多個元件自己保留的共享分類帳複製副本,即所有交易的歷史記錄。當新交易發生時,它們必須透過網路釋出,使分類帳的所有複製副本同步到一致的資料。
在較高的層次上,該流程如下所示:
1. 新的交易被提交給排序者(orderer,也稱排序服務)。
2. 排序者在區塊鏈上建立一個新區塊(包含新的交易)。
3. 排序者將新塊釋出交給某個對等節點peer。
最後一步,提交是採取goosip協議。即使在成員相對較少的區塊鏈網路中,仍然可能有大量的對等節點peer。例如,大量使用IoT(物聯網)裝置的網路可能需要許多對等節點將裝置連線到網路。此外,有時有些對等節點可能具有間歇性連線 - 某些對等節點可能無法一直從排序者那裡獲得訪問。對於排序者來說,必須向每個對等節點提交新塊資料會增加不必要的壓力,在某些情況下甚至可能無法完成。
在Hyperledger Fabric中實際發生的情況是,排序者只向組織中的某個對等節點遞交新塊 - 也就是leader peer領導對等節點。透過一個稱為goosip的過程,對等節點之間自己完成了複製副本的傳播:
1. 一個對等節點有需要分發給所有其他對等體的訊息。例如,領導對等節點有區塊鏈的新塊。
2.該對等節點將訊息傳送到預定數量的(隨機選擇的)其他對等體。
3. 這些對等體中的每一個將訊息轉發給預定數量的其他對等體。
4. 依此類推,直到每個同伴都收到了訊息。
上面的過程稱為廣播,Fabric的gossip系統使用這種策略來向所有對等體分發多種訊息。
Goosip會員
Goosip協議的關鍵組成部分是:每個對等體將訊息轉發給網路中其他對等體時是隨機選擇的。這意味著每個對等體都知道網路中的哪些對等體,因此可以在它們中進行選擇。
在Fabric中,每個對等體定期廣播一條訊息,表示它仍處於活動狀態並連線著網路。每個對等體都維護著自己的網路中所有對等體的列表 - 那些“活著”的對等體和那些“死”的對等體。
1. 當對等體A收到來自對等體B的“活著”的訊息時,它將對等體B標記為“有效”。對於對等體A來說,對等體B是網路的一部分。
2. 如果過了一段時間,對等體A沒有收到來自對等體B 的“活著”訊息,它將對等體B標記為“死亡”。對於對等體A來說,對等體B不再是網路的一部分。
為了防止對等方B實際上已經死亡,對等體A會定期嘗試連線死的對等體,看看他們是否真的還活著,因為其他問題如網路問題或故障可能會阻止對等體B的“活著”訊息到達對等體A.當對等體A能直接與對等體B聯絡時,它可以再次確認對等體B確實仍然存在。
引導
上述過程僅在這種情況有效:一個對等體有其他對等體的列表時,對等體需要向其它傳送“活著”消有這樣。因此,每個體都有透過這樣一組載入程式到啟動到區塊鏈網路。
拜占庭容錯
對等方都標記其“活著”訊息,這意味著壞人不能透過建立訊息來欺騙網路,它所能做的就是不轉發同伴的“活著”訊息。只要其他同伴仍然轉發“活著”訊息,個別不轉發並不是一個很大的威脅。
資料傳播Goosip
如前所述,資料傳播的基礎很簡單。每個對等體將新資料轉發給它知道的隨機選擇的對等子集。這個過程稱為廣播,它是一種基於推送的方式,透過網路傳輸資訊。
但是,如果對等體與網路斷開連線並在以後重新連線,則它將錯過廣播過程。為了趕上網路的其餘部分,它需要一個基於拉取的機制來請求它丟失的資料。
在Hyperledger Fabric中,對等體定期相互交換成員資格資料(對等體列表,活動和死亡)和分類帳資料(交易塊)。這允許對等體保持最新,即使它們錯過了“活著”訊息或新交易塊的廣播。
結論
Hyperledger Fabric使用對等體之間的Goosip作為容錯和可擴充套件機制,以保持區塊鏈分類賬的所有副本同步。它減少了排序者分發的負擔,只需要為每個組織的某個對等體提供新塊即可,並且它允許對等體在斷開連線後“趕上”當前狀態。
相關文章
- Hyperledger Fabric(分類賬)
- Hyperledger Fabric 超級賬本 java開發區塊鏈環境搭建Java區塊鏈
- Hyperledger Fabric 2.x Java區塊鏈應用Java區塊鏈
- Hyperledger Fabric 2.x Java 區塊鏈應用Java區塊鏈
- 區塊鏈Hyperledger超級賬本的前世與今生區塊鏈
- 區塊鏈開發Hyperledger Fabric入門區塊鏈
- 區塊鏈 2.0:Hyperledger Fabric 介紹(十)區塊鏈
- 2.05 hyperledger fabric賬本儲存
- 區塊鏈組織-超級賬本(Hyperledger)的簡介區塊鏈
- HyperLedger Fabric和區塊鏈是什麼關係?區塊鏈
- Hyperledger Fabric 手動搭建【區塊鏈學習三】區塊鏈
- 區塊鏈分散式賬本Fabric、Corda和以太坊比較區塊鏈分散式
- 利用Hyperledger Fabric開發你的第一個區塊鏈應用區塊鏈
- 區塊鏈100講:Hyperledger Fabric 中的鏈碼(智慧合約)區塊鏈
- 區塊鏈Hyperledger Fabric 2.x 自定義智慧合約區塊鏈
- 1.3 初識區塊鏈:區塊鏈分類區塊鏈
- 基於區塊鏈技術的超級賬本(Hyperledger) - 從理論到實戰區塊鏈
- 1.3 區塊鏈分類區塊鏈
- 區塊鏈的分類區塊鏈
- 聯盟鏈 Hyperledger Fabric 應用場景
- 理解JVM,大白話解釋JVM
- Hyperledger Fabric(Hyperledger Fabric模型)模型
- 2.07 hyperledger fabric鏈碼案例
- Hyperledger Fabric 2.0 Alpha釋出了!
- Hyperledger fabric 鏈碼篇GO(四)Go
- 瑞波加入超級賬本區塊鏈聯盟區塊鏈
- 分散式賬本-區塊鏈核心技術之一分散式區塊鏈
- 區塊鏈開發Hyperledger Sawtooth入門區塊鏈
- 區塊鏈記賬原理區塊鏈
- Hyperledger Fabric系統鏈碼介紹
- AWS推出以太坊和超級賬本區塊鏈模板區塊鏈
- 區塊鏈框架hyperledger Fabric1.2,win10,docker18.6,資產轉移例項區塊鏈框架Win10Docker
- 第7章 區塊鏈開發平臺:超級賬本區塊鏈
- Hyperledger Explorer是區塊鏈的管理工具區塊鏈
- Hyperledger Fabric命令詳解之 up
- 1-Hyperledger Fabric概念詳解
- 區塊鏈是什麼通俗解釋區塊鏈
- Hyperledger Fabric 部署