2017-07-02 28 views
1

在像比特幣這樣的區塊鏈系統中,每個對等點(參與節點)都保留分類賬的完整副本。對等方在接收並驗證新到達的塊時更新其分類帳副本。然而,這些同行分散在全球各地,這些同行之間的網絡延遲差異很大。因此,區塊鏈系統如何保證在區塊傳播後,所有同行完成更新分類賬副本?區塊鏈系統中不同同級之間的分類賬如何保持一致

回答

2

比特幣並不能保證所有的分類帳的同時變得更新,以下比特幣blockchain爲您提供一致的總賬:

  1. 驗證的工作削減新的塊與集交易
  2. 最長連鎖規則

以上擔保如果不超過51%由一個組控制的網絡,您最終將看到一致的分類帳,例如考慮到您的分類帳在塊序列號1001意味着網絡中的所有節點將看到相同的鏈塊,直到1001.

對於您的問題比特幣使用隨機覆蓋網絡來分發新塊(非常類似於八卦算法)。


UPDATE

見節B.傳播法here

爲了更新並同步總賬 副本僅交易( TX )的目的,並且塊( 塊 )消息是 相關。這些消息比在網絡上發送的任何其他消息更爲常見,並且可能會增長到相當大的 大小。爲了避免將事務和阻止消息 發送給已經從其他節點接收到它們的節點,它們是 而不是直接轉發。取而代之的是,當 事務或塊已被完全驗證後,通過向鄰居發送 inv 消息來向鄰居宣佈其可用性爲 。 inv 消息包含發送方已收到的一組事務散列和塊散列 ,現在可用 進行請求。一個節點,接收一個 交易或其本地尚未擁有的交易的inv消息,將發出 a getdata 消息給包含 所需信息的散列的inv消息的發件人。塊或交易的實際傳輸是通過單個塊或tx 消息完成的。圖2顯示了廣播中單跳 的協議流。

+0

謝謝@Artem Barger。所以我的理解是(1)對於同伴來說,爲了驗證新收到的交易或塊,它不需要引用區塊鏈中的任何信息。驗證只是爲了驗證交易或塊中的簽名。(2)如果對等分類賬中的當前塊頭(B)高度爲H,但該對等體接收到高度爲H + 10的新塊(B'),則對等體將主動詢問其鄰居之間的所有塊B和B',然後再將B'加入其分類帳。正確? –

+0

由於最長的鏈規則,一般建議等待6個下一個塊,以確保您選擇了正確的鏈,並且是的序列號爲H + 10的塊不會應用於當前高度爲H的分類帳(同時不確定主動提問部分)。 –

+0

如果一個塊在對等體上丟失了,該對等體將如何響應? –

相關問題