Filecoin網路已升級至 v12,可提升網路同步效能

買賣虛擬貨幣

​2021 年 4 月 29 日,Filecoin 網路升級到了 v12 版本。此次升級引入了第 4 版的 spec-actors,specs-actors 實現是指定 Filecoin 協議規則的一組內建 actors。新版本的 specs-actors 被設計為具有更高的效能,從而加快了塊驗證時間。

來自 lotus、venus 和 forest 的 Filecoin 核心開發者聚集在一起,在短短几周內實現併發布了這次升級——全球各地的節點運營人員展示了他們響應升級的時間,迅速將這些效能改進帶到整個網路。

升級動機

對於所有區塊鏈專案來說,確保驗證一個塊所需的時間小於生成塊的頻率是很重要的。在 Filecoin 網路中,每 30 秒就會產生一個區塊,所以每個塊的驗證時間小於 30 秒是非常重要的。

當然,區塊驗證取決於各種因素:節點的硬體規格、鏈資料庫的大小、節點上執行的其他程序等等。

在 v12 升級之前,質量中等的節點執行平穩,區塊驗證遠低於 30 秒。然而,速度較慢的節點,以及保留完整鏈歷史的節點(因此擁有非常大的資料庫),驗證時間更長,從而使它們有在速度下降的情況下不同步的風險。

儘管大多數擁有快速硬體和較小鏈資料庫的礦工沒有受到影響,但生態系統的其他重要成員,包括交易所和存檔節點,會遇到一些減速和偶爾同步問題,會對整個網路產生負面影響。

同步速度緩慢的原因之一是扇區程式碼在處理新建立的節點時效率低下。在過去的幾個月裡,該網路經歷了一些垃圾資訊浪潮,從而在鏈上建立了礦工,產生了過多的空礦工條目。

這為顯著提高效能提供了一個簡單的機會,因為減少處理空礦工所花費的時間可以大大加快塊驗證時間。在 v12 網路升級中推出這一改進還可以主動阻止未來的 CreateMiner 垃圾資訊從討厭變成速度較慢節點的攻擊向量。

效能提升

為了理解 v12 中引入的效能改進,我們需要了解系統的一些細節。Filecoin cron actor(地址為f03)是網路在每個時代執行的系統 actor。它的存在是為了執行狀態轉換,以保持 Filecoin 網路平穩、正確地執行。

Cron actor 每 60 個區塊高度(30分鐘)處理一次礦工 actor,以驗證礦工對要檢查的部分扇區是否有正確的儲存證明。正是透過 cron actor 的處理,Filecoin 協議才能確保其核心理念:網路作為一個整體,每 24 小時檢查 Filecoin 上的整個儲存,並自動檢測和懲罰任何丟失或損壞的資料。

在網路 v12 之前,cron actor 將為每個單獨的礦工 actor 執行此處理。Filecoin v12 更改了cron actor,只對需要它的礦工 actor 執行此處理。如果一個礦工 actor 正在積極地證明儲存,則需要 cron 工作。

具體來說,這些條件中的任何一個都要求每 60 個區塊高度需要一個 cron 工作:

  • 具有活躍的 PreCommit
  • 具有活躍的扇區
  • 有質押的獎勵

不滿足這些條件的礦工扇區在 cron 工作期間沒有必要的工作要做,可以安全地跳過。特別是,新建立的礦工節點不會立即請求 cron 工作,它只有在第一次開始向網路保證儲存時才會得到一個。

在這一最佳化開始生效後,Filecoin 網路已從每 60 個區塊高度處理約 375000 個礦工到現在的 2000 多個區塊高度。這使得平均區塊同步時間快了一倍左右,每天的狀態快照大小減少了 20 多 GB,幾乎提高了 2 倍!

節點執行商已經看到了平均和最大區塊同步時間的顯著減少,並且幾乎完全消除了不同步的大型存檔節點例項。

v12 升級後減少了同步時間:

v12 升級後減少了不同步的例項:

執行 v12

網路 v12 升級(引入了v4 actor),在 Lotus v1.8.0 和 venus v0.9.5 中釋出。Lotus 團隊在較短的時間內釋出了這個版本,從釋出到網路升級階段只有大約 48 小時,這是所有節點運營商必須完成升級的最後期限。

對於 Filecoin 社羣來說,能夠執行快速升級是很重要的,因為關鍵的安全問題可能需要在短時間內修復。為應對此類事件,在 2020 年 9 月的太空競賽中,網路經歷了各種“war game”場景,就在主網升空前不久。

社羣在 48 小時內輕鬆地升級到 v12,證明其在未來需要時能夠採用快速升級的能力。這樣的快速週轉依賴於實現 Filecoin 協議的團隊和各種節點運營商(包括儲存礦工、儲存客戶端和交易所)之間的有效溝通通道。

為了讓每個人都瞭解情況,Filecoin 社羣工程師在社羣論壇上宣佈了升級細節,並透過多個平臺通知來更新 Filecoin 網路狀態頁面。開發團隊隨後提供了相應支援,以確保每個人在多個支援渠道(包括論壇、Slack渠道等)上順利及時地升級他們的節點。

在較短的時間內更新版本,需要嚴格的測試和釋出過程。Lotus 團隊可以使用過去幾個月開發的新版本檢查表來實現這一點。此外,為了響應社羣的反饋,Lotus 團隊謹慎地確保在這樣一個強制性的版本中未經測試的可選功能。

相反,網路升級更改是在 Lotus v1.6.0 之上釋出的,Lotus v1.6.0 是最新的穩定且經過良好測試的版本。對於那些想獲得最新功能的冒險者來說,提供了一個候選版本 Lotus v1.9.0-rc1,它包含了網路升級的變化和較新的功能。

感謝大家

實現快速升級並提供顯著的效能改進並不容易!這要歸功於我們收到的反饋和我們的努力。正是由於在過去幾個月裡收到的反饋和改進,核心開發人員才能夠實施、測試和釋出高質量的程式碼,改善 Filecoin 網路。

此外,Filecoin 社羣中各種節點運營商的持續參與、專門支援和快速響應確保了網路在需要時能夠快速升級。

End

非常感謝您對 IPFS&Filecoin 專案的持續支援。我們很高興繼續與您一起,為人類資訊建立一個強大的,去中心化和高效的基礎。

FilCloud 幫你迅速瞭解 IPFS 領域的熱點技術和應用公眾號:filcloud

免責聲明:

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

推荐阅读

;