header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

Witti 測試網的幕後故事

閱讀本文需 12 分鐘
Schlesi 測試網被發現有接近 50 個時段沒有取得確定性,最終導致該鏈不穩定,出現了幾個臨時的分叉

原文作者:Somer Esat

原文來源:以太坊愛好者

原文翻譯:阿劍

原文標題:《通告 | Schlesi 測試網落幕,Witti 升起!》


Schlesi 是以太坊 2.0 的一個多客戶端測試網,如今它已完成了它的歷史使命,要停止運行了。

不誇張地說,Schlesi 完成了以太坊 2.0 路線圖上的一個重要里程碑:成功地啓動了一個公開的多客戶端測試網。本文中我準備談談 Schlesi 測試網及其繼任者 Witti 測試網。

一些重要的定義

我們先溝通一下一些術語的含義。

什麼是測試網絡?


測試網絡是用於測試的備用網絡,希望儘可能模擬目標網絡的生產環境來測試軟件和協議的實際能力。計劃使用目標網絡用於生產的用戶可通過測試網來測試客戶端的能力,以保證不會遇到 bug。測試網很重要,因爲它能幫助大家在實際投入生產之前發現 bug。

什麼是以太坊 2.0 測試網?


以太坊 2.0 的第一個階段,Phase 0,要退出信標鏈(Beacon Chain)。關於什麼是信標鏈,Bed Edgington 在 2018 年 10 月給出了一個很好的解讀:

「信標鏈的核心功能是爲自身及分片鏈而管理權益證明協議的運行。這種管理包括:管理驗證者及其出塊權重;爲每個時隙處的每個分片安排區塊提議者;組織驗證者、劃分成委員會,參與對被提議區塊的投票;執行共識規則,發放獎勵和施加懲罰;成爲各分片登記自身狀態的錨點,以協助跨分片交易。」

爲了給信標鏈做測試,我們需要讓一個乃至多個客戶端共同組成一個網絡。所謂「以太坊 2.0 測試網」,就是在一個測試環境中運行 Phase 0 信標鏈實例。當前仍在運行的一個單客戶端測試網是 Prysmatic Labs 發起的 Topaz 測試網。

什麼是多客戶端測試網?

多客戶端測試網就是由多個不同開發團隊開發的客戶端共同聯網組成的測試網絡。Schlesi 和 Witti 都是多客戶端測試網。多客戶端測試網的挑戰性更大,因爲不同的客戶端各有各的特點,也各有各的 bug,配置也不盡相同。大多數客戶端在參與多客戶端測試網之前都會運行私有的測試網。Afri Schoedon 說得好:

「在主網啓動以前,我們需要啓動儘可能模擬主網條件的測試網。這就要求我們有穩定、長期、持久的測試網絡,而且僅僅得到一種客戶端的支持是不夠,要得到多種客戶端的支持,甚至所有客戶端都能參與,才行。」(來源)

以太坊 2.0 測試網怎麼會分叉?


信標鏈是靠權益證明協議來支撐的。當 2/3 的驗證者都見證了某些區塊的有效性時,就會有一批區塊得到確認。這就是所謂的「達成確定性」,達成之後,此前的區塊就永遠不能再更改了。當區塊鏈不能達成確定性的時候,它就會變得不穩定,也有可能發生分叉。當不同的驗證者支持相互競爭的區塊時,分叉就出現了。這就是 Schlesi 測試網上出現的情況。

多客戶端測試網歷史

Schlesi 實際上並不是第一個多客戶端測試網。還有一個更早的叫做「multinet」的測試網,是在 2019 年 10 月 24 號啓動的(GitHub),也是多客戶端共同參與的:Nimbus、Trinity、Lighthouse、Prysm、Lodestar 以及 Artemis(也就是現在的 Teku 客戶端)。不過,它更像一個模擬的多客戶端測試網。Afri Schoedon 解釋道:

「Eth2.0 Multinet 是一系列用於模擬多客戶端測試網的腳本集合,它可以調整多種參數來模擬測試效果,比如驗證者數量。Multinet 所用的是最小化的 Eth2.0 規範。」(來源)

到了 2020 年 3 月,在一次開發者電話會議中,以太坊基金會研究院 Danny Ryan 表達了希望「啓動多客戶端測試網」的意願。然後,就出現了 Schlesi 測試網。

這個名字來自德國柏林的 Schlesisches Tor 火車站。Schlesi 多客戶端測試網在 2020 年 4 月 27 日啓動。

在其運作期間,Schlesi 測試網的目標是測試以太坊 2.0 v0.11.1 和 v0.11.2 版的規範。以往那些以 v0.10 爲目標的測試網就因爲不穩定而停止了。

Schlesi 啓動之時,成功地讓兩批運行不同以太坊 2.0 客戶端(Lighthouse 和 Prysm)的驗證者能互聯,後來 Teku 也成功加入了。Nimbus 和 Lodestar 進度上稍微落後,但也正迎頭趕上。

然後,5 月 17 日,Afri Schoedon 宣佈測試網上出現了分叉。




儘管存在的時間較短,Schlesi 催生了組織文檔、編寫配置和引導啓動的機會,並且讓多種客戶端能同時加入;大家可以公開地部署節點、與測試區塊鏈同步,並質押 Goerli 測試網 ETH 來成爲驗證者;開發人員也驚喜地發現,Schlesi 居然運行了這麼久,而各客戶端團隊都因爲快速修復了其軟件實現中的問題而得到大家的認可。總的來說是個皆大歡喜的結果。

那麼,到底什麼原因導致 Schlesi 測試網最終停止了呢?Prysmatic Labs 團隊的 Ivan Martinez 在他們的更新日誌中總結了問題根源:

「協調世界時 5 月 15 日上午 11 時許,Schlesi 測試網被發現有接近 50 個時段沒有取得確定性……最終導致該鏈不穩定,出現了幾個臨時的分叉。

在超過 300 個時段無法取得確定性之後,Prysm 客戶端和 Lighthouse 客戶端在時段 150496 時隙處形成了分叉。一個區塊在提交時罰沒了一名見證者,但不同客戶端在給被罰沒驗證者計算獎勵和懲罰時出現了不一致。這就暴露出了 Prysm 客戶端在懲罰計算上的兩個不同的 bug!此次鏈分叉之後,我們覺得最好的辦法就是重新開始。雖然那時候 Schlesi 可以從這個錯誤中恢復,但我們覺得最好是立即吸取我們從這次事件中得到的教訓,並啓動一個新的多客戶端測試網。」

然後,Schlesi 落幕了。Witti 即將升起!

Witti 多客戶端測試網

Witti 是最新的多客戶端測試網。它的保證金合約都是 5 月 25 號才部署的,部署在 Goerli 測試網上。

就像 Schlesi 一樣,Witti 的名字也來源於柏林的一個地鐵站(Wittenberglatz)。根據其 GitHub 頁,Witti 會支持 3 個以太坊 2.0 客戶端:Lighthouse、Prysm 和 Teku。Nimbus 和 Lodestar 則還在開發中。

以太坊 2.0 v0.11.3 版技術規範是 Witti 的測試目標,因爲大多數客戶端都已經或接近於實現了這一版規範的功能。雖然最近放出了 v0.12,我們可以合理的認爲,Witti 和日後的測試網能夠吸收這些變更。

Witti 測試網已於 5 月 27 日啓動,可在區塊瀏覽器 https://witti.beaconcha.in/ 上看到它的情況。

結語

總結一下,我們很快會迎來一個全新的以太坊 2.0 多客戶端測試網,叫做 Witti;其前身「Schelesi」將不再運行,雖然它扮演了一個重要的抉擇。

就我個人來說,我非常興奮能部署一個節點採納與 Witti。除了幫助開發者做測試,我自己也有不少的樂趣。我覺得大家都應該動手試試。我寫了一份用 Prysm 客戶端來參與 Topaz 測試網的指南,等 Witti 啓動以後我也會相應寫一個指南。

最後,我想表達我對所有開發者的感激之情。以太坊生態系統和社區裏都是雄心壯志的人,都在爲一個共同的目標以太坊 2.0 而奮鬥。不計其數的開發者、研究員、思考者乃至社區領袖的不懈奮鬥,讓這一切成爲可能。謝謝你們!



歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交