移除區塊頭,能最佳化網路嗎?| 三分鐘入門Neo3

買賣虛擬貨幣

「狀態根」系列已正式完結。今天的「三分鐘入門Neo3」將開啟「區塊同步」系列,深入「網路最佳化」主題,介紹 Neo3 中最佳化區塊同步的實施思路。

區塊同步

區塊同步是指全節點從區塊鏈網路中請求並接收區塊資料的過程。由於全節點只有在完全同步後才能驗證並與網路進行互動,因此這種機制往往能夠決定全節點執行方對該鏈的初體驗。

與大多數區塊鏈一樣,當前 Neo 網路上的節點使用區塊頭優先的方法同步新區塊。即在請求任何區塊資料之前,節點可以透過共享區塊頭資訊獲取關於所請求區塊的同一頁資訊。區塊頭儲存著有用資訊,如版本資訊、區塊索引、上一個區塊的雜湊以及共識節點公鑰資訊等。

區塊頭優先同步模式

通常,大多數區塊鏈網路都依賴於工作量證明機制(PoW)或者權益證明機制(PoS)。該機制在任何時候都可能發生區塊鏈的多個版本(即分叉)。判斷哪一條分叉鏈是正確的或者真實的,通常取決於區塊的高度——最長鏈勝利原則。

區塊頭優先同步模式對這些可能分叉的區塊鏈上節點是非常有利的,因為它們可以使用區塊頭中的資訊來確定最長的區塊鏈,由此確定要獲取哪些區塊資料。如果沒有這一步,他們可能會浪費時間在處理分叉上,而這條分叉鏈可能在網路共識後成為一條孤鏈。

由於 Neo 不會發生分叉,這一優勢也就沒有用武之地了。在 Neo 核心開發者張錚文提出的「取消區塊頭優先同步」提案中,指出了移除該方案的潛在好處:

Neo 所使用的的 dBFT 共識機制,保證了其不會發生分叉。即意味著區塊頭優先同步模式的優勢也將無法顯現。如果取消這一方案,用於區塊頭同步的網路開銷將減少許多。

移除區塊頭

取消「區塊頭優先同步」提案還建議完全移除區塊頭。由於共識節點的公鑰等重要資訊可以從前一個區塊狀態中計算得出,NGD 開發工程師 張濤指出移除區塊頭可以顯著減少區塊鏈的大小。

目前有 7 個共識節點,因此每個區塊會有7個公鑰資訊,也就是 7*33=231 位元組。如果我們把共識節點增加到 100 個,那麼每個區塊的公鑰資訊大小就可達 100*33=3300 位元組。

儘管有這些好處,但在「移除區塊頭」的測試中還是產生了不確定的結果。結果指出區塊頭對於跨鏈互動以及簡單支付驗證還是非常有用的,如對公鑰進行聚合簽名等。

基於這些測試和討論的結果,決定暫時擱置「移除區塊頭」提案,但最佳化區塊同步的相關研究仍在繼續。

在下一篇「三分鐘入門Neo3」文章中,將介紹 Neo3 開發中的另一種最佳化方案:索引同步。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;