IPFS事件:解決Filecoin12月19日鏈停
以下內容源於Filecoin官方《Resolving the Dec 19 Chain Halt: Cause, Impact, & Take Aways》
2020年12月,關注Filecoin市場的目光大部分投向了社區主辦為期一天的存儲市場峰會。但神算礦池同時也有關注到,在2020年12月19日,Filecoin網絡經歷了鏈停,這意味著在一段時間內可以創建新的區塊,但礦工無法就此結果達成共識(每個區塊計算的值不同)。由於社區成員,礦工和開發人員的快速響應,修復程序在4個小時內發布,網絡在7個小時內完全恢復。

01 原因
潛在的問題,是對存儲礦工參與者實現中的對象映射進行潛在的不確定性迭代。參與者在Go中實現。對Go映射的迭代是不確定的,並且參與者在使用迭代之前總是對迭代的結果進行排序(強制執行靜態分析)。不幸的是,用於對兩個這樣的映射進行排序的比較函數中出現了一個錯誤,導致排序無效(參見#1335)。因此,不同的節點處理map條目的順序不同,導致結果和Gas消耗也會有所不同。
02 停機影響
慶幸的是,在中斷期間沒有數據丟失。雖然無法創建新的塊暫時抑制了網絡上的交易,但存儲提供商的所有數據都是安全的,一旦網絡恢復運行就可以隨時使用。此外,值得注意的是,Filecoin協議的規範提供了即使在鏈中斷的情況下也可以數據檢索的功能03 快速反應
03 快速反應
首次發現、識別、修復和部署潛在問題的速度也是值得注意的:
在事件發生後15分鐘內,自動監控觸發了警報。
在30分鐘內,礦工和實施開發人員聚集在一起進行響應。 在4個小時內,開發人員確定並發布了該問題的修復程序。 在7個小時之內,足夠多的節點採用了此修復程序,從而通過了多數共識的功率閾值,使網絡走上了恢復的道路。
這一複蘇只有通過世界各地多個團體的共同努力才能實現。 Filecoin整個生態系統的各方通力合作,實現了這一目標:礦工發現並報告了問題,並讓開發者註意到它;工程團隊進行協調開發,並發布一個同行評審的補丁,同時通過社區渠道溝通修復的狀態;全球各地的網絡參與者都在努力應用補丁,使網絡盡快恢復運行。雖然如此緊急的事件是不需要重複的,但這是一個令人印象深刻的展示Filecoin生態系統內的參與和關注的“機會”。
04 下一步做什麼


