您好,登錄后才能下訂單哦!
超級賬本Fabric怎么利用Gossip實現區塊的廣播,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Hyperledger Fabric是一個分布式區塊鏈網絡,每個節點都存有共享賬本的一個副本,該副本保存了所有交易的確定性歷史記錄。當新的交易發生時,這些交易必須擴散到整個Hyperledger Fabric網絡中,以便使賬本的所有副本保持一致。本文將介紹Gossip協議機制的原理并說明Hyperledger Fabric如何使用Gossip機制來保證所有peer節點的數據同步。
從大的層面講,在Hyperledger Fabric中整個交易處理流程如下:
新交易被提交給排序節點
排序節點創建新的區塊,其中包含了新產生的交易
排序節點分發區塊給所有的對等節點
最后一步,分發,就是gossip協議發揮作用的環節。即使在一個僅包含少量成員機構的Hyperledger Fabric網絡中,也可能會包含大量的對等節點。例如,一個重度使用IoT設備的Hyperledger Fabric網絡可能就需要很多Peer節點來將這些IoT設備接入區塊鏈網絡。更進一步講,大范圍網絡中的peer節點連接可能是間歇性的,有些peer節點不是總會被排序節點訪問到。另外也沒必要要求排序節點將新區塊 分發給每個peer節點,而且這一要求在有些情況下也是不可能滿足的。
Gossip:閑聊; 八卦; 小道消息;
實際上在Hyperledger Fabric的排序節點分發區塊時,它只會把新區塊分發給每個機構中的主導peer節點,然后經過gossip過程,這些peer節點自己完成新區塊在彼此之間的擴散:
某個peer節點有一個需要散播給其他peer節點的消息。例如,主導的peer節點 有一個新的區塊。
該peer節點將消息發送給(隨機選擇的)預定數量的其他peer節點
收到消息的peer節點再將消息發送給(隨機選擇的)預定數量的其他peer節點
如此不斷反復,直到每個peer節點都收到消息。
上面的過程被稱為廣播,這一過程被應用于Fabric的gossip系統來向全體peer成員分發各種類型的消息。
Gossip協議的一個核心組件,就是每個peer都會轉發消息給網絡中一組隨機選擇的節點。這隱含了每個peer節點都了解網絡中有哪些peer節點因此才可以進行隨機選擇。
在Fabric中,每個peer節點都會周期性的廣播消息來表示自身的存活并且已經接入網絡。每個peer節點都會維護一個清單來記錄網絡上的所有peer節點 - 哪些peer是存活的,哪些peer是死翹翹的。
當Peer A收到來自Peer B的alive消息,它就會將Peer B標注為alive。對于Peer A來說,Peer B就是網絡中的一個成員
如果過了一段時間,Peer SA不在收到來自Peer B的alive消息,它就會 將Peer B標注為dead。對于Peer A來說,Peer B就不再是網絡中的一員了。
假設Peer B并沒有真的死翹翹,Peer A 會周期性地嘗試連接標記為dead的Peer節點以檢查其是否還存活。例如,有可能是因為網絡問題或其他Peer節點的故障導致了Peer B的alive消息無法到達Peer A,因此當Peer A直接聯系Peer B時,它就可以確定Peer B的真實狀態。
上面描述的過程僅當在peer節點有一組可供發送alive消息的peer節點清單時才可以正常工作。因此每個peer節點在啟動引導時都有一個啟動引導節點集來提供初始的peer節點清單。
每個peer節點會簽名其發送的alive消息,這意味著一個壞家伙不能偽造消息來愚弄其他網絡成員。這個壞家伙能做的也就是不轉發alive消息。只要其他peer節點繼續轉發alive消息,這就不是什么大問題。
正如前面所描述的,在Hyperledger Fabric網絡中數據擴散的基本原理很簡單。每個peer節點只需將新的數據轉發給一組隨機選擇的peer節點,最終就可以完成新數據在整個網絡中的擴散。這一過程被稱為廣播,以一種基于推送的信息傳遞方案。
然而,如果一個peer節點從網絡斷開并在稍后重連,它可能就會錯過廣播過程。為了跟上網絡中其他成員的數據進度,這個節點需要一種基于拉取的機制來請求 其缺失的數據。在Hyperledger Fabric中,peer節點間會周期性地交換網絡成員數據和賬本數據,這是的peer節點可以保持更新狀態,即使其錯過某個廣播過程。
Hyperledger Fabric在peer節點之間使用Gossip作為一種可伸縮的容錯機制來保證所有peer節點上的賬本副本保持同步。使用gossip有效降低了排序節點的壓力,因為排序節點只需要將區塊分發給每個機構中的主導節點,同時這也讓peer節點即使在斷線重連的情況下也能跟得上整個網絡的狀態更新。
關于超級賬本Fabric怎么利用Gossip實現區塊的廣播問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。