同步時間縮減7倍以上的「同步機制」是什麼樣的?

買賣虛擬貨幣

作為「索引同步」系列的最後一篇文章,本篇「三分鐘入門Neo3」將介紹新索引同步機制的實施邏輯,以及測試的初步結果。

該提議最先由COZ開發者Ixje提出並獲得社羣認可。隨後,核心開發者對於該新同步機制的實施進行了深入的探討。目前的初步實施方案會基於待定節點的執行狀況和安全性機制,將新的同步過程將合併到Neo3程式碼庫中。

同步管理器

同步管理器的建立促進了新的同步邏輯,負責管理與區塊同步有關的任務,例如監測其他節點的區塊高度變化。如果觀察到區塊高度不同,將分配同步任務開啟同步過程。

每個任務最多可以處理50個區塊,包括一個特定的區塊索引標記開始與結束。這些索引將明確那些需請求其他節點的區塊資料。接收到新的區塊資料後,節點會驗證並保留它,並將更改部分告知同步管理器,完成當前的同步任務。

在實施過程中,若監測到無效區塊,區塊索引將通知同步管理器,它可用於確定已傳送無效區塊的節點。此時,同步管理器將建立一個新任務來請求新的區塊資料,故障節點將被替換。

該機制確保了節點不會保留無效區塊,並在網路執行過程中有效地監測了節點的執行狀況。

neo-python維護者Ixje提供了這些屬性的示例,包括根據有效負載大小,計算節點傳送資料所需的時間;協助負載平衡、節點的平均請求時間;以及超時計數器、監測太久無響應的失聯節點。

測試結果

實施新的同步機制後,相比Neo2採用的區塊頭連線方法,NGD上海 高階工程師 楊曉雲分享了新同步機制的測試結果。

在具有21,000以上個區塊的單個共識節點網路中,未安裝StatesDumper外掛的Neo2節點大約花費了23毫秒來同步每個區塊。啟用該外掛後,該外掛會轉儲狀態資料(例如儲存修改)進行除錯,增加到每個區塊約花費36毫秒。

實施了新索引同步的Neo3節點,同步時間明顯減少了。沒有使用StatesDumper外掛的Neo3節點,每個區塊塊同步大約花費4.2毫秒,完成同步的時間不到五分之一。啟用該外掛後,每個區塊大約花費4.7毫秒,與Neo2相比,同步時間減少了7倍以上。

測試結果表明,這些變動可以顯著提升網路效率。透過改進節點執行狀況等指標,有望大大提高Neo3上區塊同步的速度和使用者體驗。

「索引同步」系列正式完結,敬請期待「三分鐘入門Neo3」的下一個新系列。

免責聲明:

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

推荐阅读

;