<cite id="1ndtl"></cite>
<ruby id="1ndtl"></ruby>
<strike id="1ndtl"></strike>
<span id="1ndtl"><dl id="1ndtl"></dl></span><span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike>
<strike id="1ndtl"><dl id="1ndtl"><del id="1ndtl"></del></dl></strike>
<span id="1ndtl"></span>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike>
<strike id="1ndtl"></strike><span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike><strike id="1ndtl"></strike>
<strike id="1ndtl"></strike>
<span id="1ndtl"></span>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
<th id="1ndtl"><noframes id="1ndtl"><span id="1ndtl"><video id="1ndtl"><strike id="1ndtl"></strike></video></span> <strike id="1ndtl"></strike>
<strike id="1ndtl"></strike>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
  1. 首頁
  2. eth2.0(ETH2.0測試網出現BUG?對于以太坊只是小風小浪)

eth2.0(ETH2.0測試網出現BUG?對于以太坊只是小風小浪)

作者 | 秦曉峰

編輯 |Mandy王夢蝶

出品 |Odaily星球日報

過去的這個周末,以太坊 2.0 測試網又出幺蛾子了。

北京時間 8 月 15 日凌晨,Eth2.0 客戶端執行團隊 Prysmatic Labs(旗下客戶端是 Prysm )聯合創始人 Preston Vanloon 表示:Eth2.0 測試網 Medalla 上出現時鐘 Bug,導致對所有節點造成影響,Prysm 客戶端出現了長達近 90 分鐘的時鐘偏斜(clock skew),驗證器也陸續收到超前 Slot (時隙)區塊和證明。

簡單來說,這次測試網出現的根源,主要在于 Prysm 客戶端的時間服務器 Roughtime 中斷,出現時鐘偏斜,導致驗證者與區塊頭無法同步,最終影響了測試網 Medalla 正常運行。

(1)事故回溯

所謂時鐘偏斜,即區塊時間與正常時間出現的偏差。

時間對 Eth2.0 至關重要,每一個區塊中都包含時間戳;時間一旦不同步,網絡就無法正常運行。

為了防止系統時間不夠精準,Prysm 采用了美國 Cloudflare 公司的時間服務器 Roughtime 來校正。并且,為了防止單體機器故障,還選擇了 6 臺。

然而,問題還是發生了。北京時間 8 月 15 日凌晨,Roughtime 出現故障,這也導致 Prysm 被波及。

根據事后的一份診斷報告:“ Cloudflare 的 Roughtime 服務器都返回了錯誤的信息,Prysm 節點沒有從這種情況適當退避。雖然他們使用 6 臺時間服務器,但似乎還不夠,因為它們都返回了錯誤的時間。”

最終的結果是,Prysm 客戶端上「時鐘偏斜」超過 2 秒的時間長達 90 分鐘;并且整個客戶端時間也比標準時間提前了 4 個小時。根據 Preston Vanloon 的推文,時鐘偏斜發生在北京時間的 15 日凌晨 1 點半-3 點種之間。如下所示:

(時鐘偏斜)

事故發生后, Prysm 客戶端第一時間停止了 Roughtime 服務器的使用,并號召用戶切換到其他客戶端。

“我們決定默認情況下禁用「 Roughtime」同步。Roughtime 計算中肯定存在一些錯誤,我們希望盡快發現它。無論調查結果如何,我們認為都應該選擇自動調整時鐘或完全取消。”Preston Vanloon 表示。

幾個小時后,開發人員完成調查并發布了修復程序。

不過,名為 PR 6898 的修復程序卻存在嚴重缺陷。

開發人員 Raul Jordan 表示:“在修復此錯誤時,我們無意中刪除了Prysm節點起作用的所有關鍵功能,這使問題變得更加嚴重。”

(2)后果

由于時間不同步,通過 Prysm 客戶端進行驗證的“幾乎沒有人同步到鏈頭”。這也意味著,他們的數據是無效的,也就不能參與驗證、獲得質押獎勵等。

雖然目前Eth2.0 仍然是測試網階段,這些獎勵也不是真實的——包括用戶參與驗證質押的ETH也是測試網版的,不具有真實流通性。

但這次事故,還是對整個 Medalla 測試網造成了沖擊。

由于 prysm 客戶端占據 全網 64% 以上的份額,在事件發生后,Medalla 測試網中主動投票的驗證者數量與總驗證者數量的比值從 75% 左右一度降至 5 %以下。這也意味著,剩余驗證者無法達成全網共識,網絡無法正常運行。

(網絡參與率)

外媒《Trustnodes》報導稱,此次事故也造成以太坊網絡一度停止:大約 30% 的驗證流程失敗時,內存問題就開始出現;大約 50% 之后,問題就變得更大;最后在 70% 之后,網絡顯然就停止了。

因此,在過去兩天,Prysm 客戶端修繕了自己的客戶端,想要盡快啟動測試網。

今天下午,星火礦池發出號召,所有運行 Prysm 客戶端參與 Medalla 測試網的朋友,請檢查自己的客戶端是否升級到了 alpha.22 版本。如果尚未升級,請盡快升級,以支援 Medalla 測試網從同步障礙中恢復。

(3)思考

這次事故也反映了多客戶端的重要性。

某個客戶端使用占比過高,一旦出現問題,最中可能導致整個網絡運行受到影響。

但從現實情況來看,Prysm 客戶端能夠獲得青睞也是有原因的。

目前,Eth2.0 上線了 5 個客戶端,但 Prysm 提供的教學無疑是最好上手的,所以絕大多數驗證者仍使用 Prysm。

因此,對整個以太坊生態來說,要想平衡各個客戶端的力量,必須提升其他客戶端易用性,而這是一條任重而道遠的漫長之路。

最后,我想說這次事故對 Eth2.0 來說也是一次歷練。所有的問題在測試網階段充分暴露,才能保證 Eth2.0 未來的可用性和安全性。

從以太坊過去 5 年的發展來看,相比于 The DAO 攻擊、分叉等一系列挑戰,這次測試網發生的事故只是小問題。

對于以太坊來說,只會愈挫愈勇。

相關文章
美女网站色