來源 | 以太坊愛好者
作者 | yorickdowne責編 | 晉兆雨頭圖 | CSDN 下載視覺中國
Medalla 測試網在 2020 年 10 月 17 號出現了變故(編者注:實際上,自 2020 年 10 月 14 號以來,Medalla 測試網便一直沒有敲定區塊)。那到底發生了什麼事?這裡有一份 5 歲小孩也能懂得解釋。(可能 5 歲不行,要 10 歲,但反正說是這麼說。)
1)一堆驗證者停機了(也許是因為參與 zinken 測試網,也許是因為覺得厭煩了,誰知道呢)
2)Medalla 測試網進入了無法敲定區塊的狀態。
3)Prysm 客戶端和 Nimbus 客戶端開始浮現一些同步方法上的 bug
4)因為這個 bug,我們失去了更多驗證者,有一些從此再無音信
5)網路沒有終局性,加大了節點的記憶體和 CPU 負擔,又使我們試去了許多驗證者,因為他們的節點沒有辦法處理那麼大的負擔
6-1)要麼大批驗證者重新上線,讓網路重新獲得終局性;要麼
6-2)他們不上線,然後這些離線的驗證者一直一直、越來越快地喪失押金,直至我們重新獲得終局性。在這個過程中,可能某些驗證者還會因為餘額太低而被踢出隊伍
7)你可以盯著 beaconcha.in 瞭解最新的網路參與率。其他網站基本上沒能追上最新的情況
8)這種情況如果在主網上發生,不會持續那麼久,因為如果燒掉的是真正的 ETH,人們不會這樣無動於衷
9)整個網路正像它設計的那樣,在大規模分裂的場景中自我修復
10)如果是 6-2) 這種情況,我不確定網路多快能恢復正常,最快可能要到 10 月 25 號,最晚可能是(25 號)再晚 5 天
11)如果你已經離線,但不想回去重新運營驗證者,這裡有個工具可以幫助你有序退出驗證者隊伍:https://github.com/eth2-educators/medalla-exit
更為技術性的細節:
非啟用狀態(inactive)的驗證者不會被懲罰。一個驗證者可能因為還待在待啟用佇列中,或者其押金還未得到處理,而停留在這種非活躍的狀態中 —— 當網路重新獲得終局性時,這些驗證者就會被啟用。另外,如果一個啟用狀態的驗證者傳送了主動退出的訊息,也會變成非啟用狀態,也就不會被懲罰。
啟用狀態且線上的驗證者將保持不賺不虧的狀態,如果他們的見證訊息的打包距離都是完美的 1 的話(即在上一個 slot 發出的見證訊息,在這一個 slot 就被打包)。但這是不可能的,所以他們會被輕微地懲罰。以太坊基金會的 djrwto(即 Danny Ryan)已經宣告他們正在尋找一種辦法來安全地降低對這部分 “盡忠職守” 的驗證者的懲罰,因為這種懲罰,總的來說,體驗不好。
啟用狀態且不線上的驗證者會被懲罰,而且懲罰會呈平方級上升,也就是說,每個 epoch 處的懲罰都會不斷提高。
當一個驗證者在一個 epoch 內都沒有被打包見證訊息,它就會被認定是離線了。當然,如果一個驗證者所連線的信標鏈節點與網路失去同步,或者驗證者客戶端本身無法工作,也會出現這種無法提交見證訊息的情況。可以查詢的原因包括客戶端的 bug 和 記憶體/CPU 的資源使用。你也可以乘機學學如果從原始碼編譯客戶端,然後檢查一下自己的節點的資源用量。
我們在美國東部時間的 10 月 12 號早上就已經陷入無法敲定區塊的狀態了。(這種狀態的定義是連續 4 個 epoch 無法敲定。)
從那時候開始,“平方型懲罰” 就開始啟動。離線的驗證者的懲罰力度會隨著無終局性狀態的持續而不斷提高。公式是 懲罰 = 有效餘額 * 無終局性持續時間(Epochs-Since-Finality,即當前 epoch 高度減去上一次獲得終局性的 epoch 高度)/(2^25)。在數學上可以這麼說:單個 epoch 對這些離線驗證者的懲罰會隨著無終局狀態的推移而線性增加,因此總懲罰(懲罰的總和)是平方型上升的(謝謝 torfbolt 指出)。
很難估計網路重新獲得終局性的時間,因為驗證者參與率會受到客戶端故障的影響而不斷波動。
如果一個驗證者的 “有效餘額” 低於 16ETH(超不多是在賬戶餘額還剩 16.75 ETH 的時候),它會被踢出驗證者隊伍。
即使驗證者還未被踢出,不斷下降的餘額也意味著他們在共識過程中的權重會不斷降低。我已經看到一份估計,認為我們會在約 13 天以後重新獲得終局性。因此最早就是 10 月 25 號,附近。一些驗證者自 8 月份啟用以來就沒發出過一條見證訊息,這些驗證者的存在也會加速這個過程。
一個驗證者的餘額要降到 60.6% 需要大概 18 天,這也就是耗時的上限。
再經過三個連續的時段之後,終局性就將得以重建。離線驗證者的懲罰會回覆到常規的、不那麼嚴厲的預設值上。
原文連結:
https://www.reddit.com/r/ethereum/comments/jcuigo/eli10_what_is_happening_with_medalla/?utm_source=share&utm_medium=ios_app