1. 程式人生 > >ChainDesk:認識Gossip

ChainDesk:認識Gossip

作者:ChainDesk韓小東

ChainDesk官網:http://www.chaindesk.cn/?20190109csdnmeiti

目標

1.Gossip 協議的概念

2.Gossip 協議的資料傳輸方式

任務實現

在分散式網路中,網路節點是否具有高擴充套件性,節點的可用性,資料如何進行傳播,且在一個不穩定的分散式網路環境中,如何保證資料的實時同步,是所有開發人員都需要關注並解決的問題。

8.1.1 認識 Gossip協議(Gossip Protocol)

Gossip由來

Gossip 協議取自人類的"八卦"概念,兩個人只要願意,可以隨時互相交換資訊。Gossip 協議最初是在 1987 年由 Alan Demers 發明的,他當時是 Xerox 的 Palo Alto 研究中心的研究員,專門研究在不可信網路環境中路由資訊的方式。

Gossip作用

Gossip是一種去中心化的分散式協議,用於實現節點或者程序之間的資訊交換,通常被用在大型的無中心化網路環境中,並且假設網路環境不太穩定,是分散式系統中被廣泛使用的一種最終一致性協議。

Gossip協議是在網路中的某個節點將指定的資料傳送到網路內的一組其他節點。資料通過節點像病毒一樣逐個傳播。最終,資料傳播到系統中的每個節點。從而實現在大型分散式系統中可靠地進行資料的傳播。

簡單的理解,Gossip是一種網路通訊協議, 這種協議類似於人類中的謠言傳播。一個人A第一次聽到謠言,然後打電話給某人B以分享謠言。一旦他們掛了電話,B打電話給第三個人C,A與B分享謠言的同時,也在聯絡D分享謠言。這個過程一直持續到每個人都知道這個謠言。這種方式可方便地在一個網路中的所有節點之間快速傳播資料。

Gossip協議所具備的特徵如下:

  • Gossip 協議本質上是概率性的,節點選擇其網路內隨機通訊的目標節點。
  • 擴充套件性高:傳送方節點向固定數量的接收方節點發送訊息,與網路中的總節點數量無關。
  • 低延遲:如果確認資訊未到達接收節點,傳送節點不會等待確認。
  • 不需要故障檢測或特定恢復操作,因為節點沒有特定的角色,接收資訊失敗的節點不會阻止其他節點繼續傳送訊息。
  • 實現容錯:因為節點從其它不同的節點接收訊息的副本。

Gossip協議型別:

  • 傳播協議/謠言協議(Dissemination Protocols / Rumor-Mongering Protocols):

通過網路中的泛洪代理來工作,節點收到廣播的資料後直接轉發給所有的鄰居節點;此方式可以提高網路的健壯性,但是容易造成廣播風暴。

  • 反熵協議(Anti-Entropy Protocols):用於修復複製資料,通過比較複製和協調差異進行操作;Hyperledger Fabric中的資料同步就是使用此方式實現。
  • 計算聚合的協議(Protocols that Compute Aggregates):通過對網路中節點的資訊進行取樣,並將這些值組合起來得到系統範圍內的值,從而計算出網路範圍內的集合 ;之後將建立一種全面的資訊流模式。

8.1.2 Gossip資料傳輸(Gossip Messaging)

Gossip 協議最終的目的是將資料分發到網路中的每一個節點,那麼在不同的具體應用場景中如何保證網路中的每一個節點都能夠接收到對應的資料且在不穩定的網路環境中保持資料的實時同步,Gossip資料分發協議實現了兩種資料傳輸方式:

1.推送方式(Push-based):

1.1 網路中的某個節點隨機選擇N個節點作為資料接收物件

1.2 該節點向其選中的N個節點傳輸相應的資訊

1.3 接收到資訊的節點處理它接收到的資料

1.4 接收到資料的節點再從第一步開始重複執行

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk” ​

1.拉取方式(Pull-based):

2.1 某個節點週期性地選擇隨機N個節點詢問有沒有最新的資訊

2.2 收到請求的節點回復請求節點其最近未收到的資訊

 

未經授權禁止轉載、改編,轉載請註明出處!

本文地址: https://www.chaindesk.cn/witbook/11/169

ChainDesk——全球區塊鏈技術生態超級社群

以區塊鏈技術為入口,搭建全球區塊鏈技術生態超級社群,社群將服務於公鏈生態建設、DAPP專案研發、技術諮詢、課程體系研發、區塊鏈書籍編寫,區塊鏈課程製作、講師培訓、區塊鏈職業教育、區塊鏈線上教育、去中心化技術評測一體化的區塊鏈技術超級社群。

免費·原創·專業·高效·系統