撰文:Somer Esat
翻譯:Unitimes_Charles
以太坊2.0升級預計將於今年晚些時候釋出,起初將推出階段0。階段0包括上線信標鏈,信標鏈負責管理 PoS 協議。為了與信標鏈互動,需要透過實現了以太坊2.0規範的客戶端。
本文中,作者將對目前正在積極開發中的7個以太坊2.0客戶端進行了簡要介紹,提供關於每個客戶端的來源資訊,包括供讀者深入瞭解的相關連結。
為何需要這麼多的客戶端?
你可能想知道,為什麼有這麼多客戶端?為什麼不集中精力搭建一個很棒的“超級客戶端”一勞永逸呢?
嗯,有很多原因可以說明擁有多個客戶端是一件好事。以下是我認為最突出的兩點原因:
擁有多個客戶端意味著獨立的開發者們處於友好的競爭中,透過不同的解決方案和特性來相互激勵。競爭推動創新。
擁有多個客戶端意味著穩健性,當某個客戶端出現問題時提供更多其他選擇。例如,假設我們只有一個“超級客戶端”,如果這個客戶端出現 bug 或漏洞,那該怎麼辦?這可能會導致整個 Eth2 網路癱瘓。
由於這些 (以及更多的) 原因,支援一個均衡的以太坊2.0多客戶端生態系統是很重要的。以太坊核心開發者 Danny Ryan 對此表示:
在 (信標鏈) 釋出之前的這段時間,我希望你們可以走出舒適圈去嘗試使用不同的客戶端。這些客戶端之間有許多的權衡,你需要親自使用才能找到哪個客戶端最適合你...以太坊以多客戶端的模式執行,為了獲得這種方式帶來的益處,我們需要使用者執行各種不同的客戶端(從而使所有型別的客戶端健康地分佈在網路中)。
7大客戶端
迴歸正題,我們開始深入瞭解以太坊的7大客戶端。這些客戶端按名稱字母順序排列如下:
Cortex(Nethermind)
Lighthouse(Sigma Prime)
Lodestar(ChainSafe Systems)
Nimbus(Status)
Prysm(Prysmatic Labs)
Teku(PegaSys)
Trinity(以太坊基金會)
本文將從成熟度、技術、功能和支援等方面對各個客戶端進行描述。
隨著最新的以太坊2.0規範版本 (v0.12.1) 在最近釋出,且規範可能仍在經歷變化,所有客戶端都處於積極開發中。
以下資訊基於本文釋出之日公開的線上資訊來源。
致各個客戶端團隊:如果文中有任何不準確之處,還望指正。
01. Cortex (Nethermind)
開源的 Cortex 客戶端是唯一基於 .NET的處於開發中的以太坊2.0客戶端。其開發公司 Nethermind 成立於 2017 年,位於英國倫敦。
雖然自去年12月份以來,Cortex 的 Github 庫中就沒有出現新的活動,但有證據表明,該團隊正在 Nethermind (Eth2客戶端) 庫中開發對 Eth2.0 的支援。目前尚不清楚這是否意味著 Cortex 客戶端已被淘汰,而青睞於功能更全面的 Nethermind 客戶端,或者 Nethermind 最終將變成 Cortex。
產品概覽 (基於 Nethermind,而非 Cortex)
技術:Microsoft .NET Core 3.0
平臺:Linux、MacOS、Windows
許可證:GNU Lesser General Public License
倉庫:GitHub。30名貢獻者 (提交)。最近的提交在幾天內。
指標:Prometheus
測試網:尚未上線 Altona 測試網
文件
Eth2 Nethermind 客戶端有大量的文件。我沒能找到有關 Eth2 Cortex 客戶端的任何文件。可能目前正在開發中。
當前狀態
當前致力於存款 (deposit) 的處理和信標鏈節點實現。
尚未實現最終性 (finalizing)
值得注意
Nethermind的Github 頁面列出了在未來 6 個月內建立對 Eth2 多客戶端測試網的支援。
Links 相關連結
網站:https://nethermind.io/
Twitter:https://twitter.com/nethermindeth
Gitter:https://gitter.im/nethermindeth/nethermind
Gitcoin:https://gitcoin.co/grants/142/nethermind
GitHub:https://github.com/NethermindEth/nethermind
文件:https://nethermind.readthedocs.io/en/latest/index.html
02. Lighthouse (Sigma Prime)
Lighthouse 是由 Sigma Prime 團隊使用Rust編寫的開源客戶端。該客戶端的開發始於 2018 年,該公司位於澳大利亞悉尼。
產品概覽
技術:Rust
平臺:Linux、MacOS、Windows
許可證:Apache 2.0
倉庫:GitHub。57名貢獻者 (提交)。最近的提交在幾天內。
指標:Prometheus
測試網:Altona (創世時期)
文件
Lighthouse 團隊在提供該專案的文件方面做得非常棒。一些文件包括:
關於客戶端安裝和配置的使用者指南
活躍的 Discord 社羣
定期更新的開發者部落格
自動生成的原始碼文件
貢獻者指南,用於對該專案進行貢獻
當前狀態
團隊正專注於實現 v0.12.1 規範;
參與了最新的多客戶端測試網 Altona 的啟動;
正在敲定驗證者私鑰管理;
正在執行外部安全審計;
正在進行效能改進;
正在致力於一種保護驗證者免受 slashing (罰沒) 的方案。
值得注意
Sigma Prime網站有一個令人印象深刻的“sand on water”互動模擬,玩起來非常有趣,值得一試。
相關連結
網站:https://sigmaprime.io/
部落格:https://lighthouse.sigmaprime.io/
Twitter:https://twitter.com/sigp_io
Gitter:https://gitter.im/sigp/lighthouse
Discord:https://discord.gg/cyAszAh
GitHub:https://github.com/sigp/lighthouse
文件:https://lighthouse-book.sigmaprime.io/
貢獻者指南:https://lighthouse-book.sigmaprime.io/contributing.html
03. Lodestar (ChainSafe Systems)
Lodestar 客戶端是由 ChainSafe Systems 團隊使用 TypeScript 編寫的開源客戶端。它由加拿大多倫多的一群開發者開發。除了這個客戶端之外,該團隊還開發了許多支援以太坊2.0的實用程式包和庫。
產品概覽
技術:TypeScript
平臺:Linux、MacOS、Windows
許可證:GNU Lesser General Public License v3.0
倉庫:GitHub。30名貢獻者 (提交)。最近的提交在幾天內。
指標:HTTP 伺服器
測試網:尚未上線 Altona 測試網
文件
Loadestar 團隊採用開放式交流,可以閱讀他們團隊的會議記錄。有關安裝該軟體的使用者指南很少 (基本上就是:克隆、安裝依賴項、搭建、執行),但該團隊計劃增加更多相關文件。
關於客戶端安裝和配置的最小使用者指南;
活躍的 Discord 社羣;
定期更新開發者會議筆記和計劃;
貢獻者指南,用於對該專案進行貢獻。
當前狀態
正在應用 v0.12.1 規範更新,並鎖定上線 Altona 多客戶端測試網;
中期目標是能夠在一個合適的測試網 (Altona 或者之後推出的測試網) 上可靠地執行一個信標節點和驗證者客戶端,並更新相關文件。
值得注意
該團隊已經實現了一個僅為教育目的的網站 bls-keygen.com,允許使用者使用 Lodestar 的 BLS 庫實現來生成驗證者金鑰。他們還有另一個網站 simpleserialize.com,該網站實現了以太坊規範 v0.11.2 共識型別以及將序列化值 (serialized values) 進行反序列化的功能。
相關連結
網站:https://chainsafe.io/
Twitter:https://twitter.com/chainsafeth
Discord:https://discord.gg/yjyvFRP
GitHub:https://github.com/ChainSafe/lodestar
文件:https://chainsafe.github.io/lodestar/
貢獻者指南:https://chainsafe.github.io/lodestar/contributing/
04. Nimbus (Status)
Nimbus 是一個研究專案,也是以太坊2.0的開源客戶端實現,其目標是在嵌入式系統和個人移動裝置上執行,包括硬體資源受限的老式智慧手機。
Status 團隊已經透過他們的訊息傳遞產品 Status 在移動技術方面擁有豐富的經驗。他們將自己的經驗應用於搭建一個以太坊客戶端,該客戶端可以在個人移動裝置上執行存檔節點 (archival node) 和相關的 Eth2 軟體。
產品概覽
技術:Nim
平臺:Android、Linux、MacOS、Windows (試驗)
許可:Apache License 2.0或MIT
倉庫:GitHub。24名貢獻者。最近的提交在幾天內。
指標:HTTP 伺服器
測試網:Altona (創世時期)、Onyx
文件
提供最近更新的、簡明但切中要點的文件集,涵蓋了啟動和執行該客戶端所需的大部分資訊。
關於客戶端安裝和配置的使用者指南;
活躍的 Discord 和 Status 聊天社羣;
開發者指南,用於對該專案做出貢獻。
當前的狀態
實現了最新的 Eth2.0 規範版本 v0.12.1;
參與了最新的多客戶端測試網 Altona 的啟動;
當前僅支援從原始碼構建;
正在進行效能改進和安全性審計。
值得注意
Nimbus 是當前唯一針對移動平臺的以太坊2.0客戶端。Nimbus 基於Nim語言執行,Nim 是一種高效和通用的系統程式語言,具有類似於 Python 的語法,可以編譯成 C 語言。
該團隊最近將區塊和證明訊息 (attestation) 的處理效能提高了大約 10-50 倍,客戶端的啟動提升了 20-100 倍。
相關連結
網站:https://nimbus.team/
部落格:https://our.status.im/tag/nimbus/
Twitter:https://twitter.com/ethnimbus
Gitter:https://gitter.im/status-im/nimbus
Discord:https://t.co/CYjHgi6wFI?amp=1
Status:https://join.status.im/chat/public/nimbus-general
GitHub:https://github.com/status-im/nim-beacon-chain
文件:https://status-im.github.io/nim-beacon-chain/
05. Prysm (Prysmatic Labs)
Prysm 客戶端是由 Prysmatic Labs (成立於2018年1月) 開發的功能齊全、文件良好的開源以太坊2.0客戶端。
Prysm 是一個相當成熟的客戶端,擁有一個非常活躍的開發團隊。他們在與他們的軟體和測試網的使用者進行互動和支援方面做得很棒,他們最知名的測試網就是 Topaz (已棄用) 和 Onyx。
產品概覽
技術:Go
平臺:Linux、MacOS、Windows
許可證:GNU General Public License 3.0
倉庫:GitHub。48名貢獻者 (提交)。最近的提交在幾天內。
指標:Prometheus
測試網:Altona (創世時期)、Onyx
文件
Prysm 的使用者、程式碼和問題文件都非常詳盡,並得到了很好的維護。Prysmatic Labs 團隊在保持部落格更新方面也做得很棒,對於想要跟進 Prysm 客戶端進展的人來說值得一讀。
當前狀態
該客戶端已更新至最新的 v0.12.1 規範;
參與了最新的多客戶端測試網 Altona 的啟動;
最近進行了安全審計,正在處理審計反饋;
該團隊正在進行各種最佳化;
正在進行驗證者賬戶重構。
值得注意
Prysm 客戶端有兩個獨立的二進位制檔案,一個用於信標鏈,另一個用於驗證者。該客戶端還能夠執行一種 Slasher 演算法以進一步幫助保護信標鏈並獲取額外的收益。
Prysmatic Labs 團隊擁有自己的穩定測試網Onyx,該測試網正執行 50,000 驗證者。他們之前的測試網 Topaz 的使用情況也很好。
相關連結
網站:https://prysmaticlabs.com/
部落格:https://medium.com/prysmatic-labs
Twitter:https://twitter.com/prylabs
Gitter:https://gitter.im/prysmaticlabs/
Discord:https://discord.gg/KSA7rPr
Gitcoin:https://gitcoin.co/grants/24/prysm-by-prysmatic-labs
GitHub:https://github.com/prysmaticlabs/prysm
文件:https://docs.prylabs.network/docs/
貢獻者指南:https://github.com/prysmaticlabs/
06. Teku (PegaSys)
Teku 客戶端是一個企業級以太坊2.0開源客戶端。該客戶的正在由 PegaSys (ConsenSys 孵化的一個專案) 進行搭建。
值得注意的是,ConsenSys Codefi 最新宣佈的機構級Staking 試點專案正在 Teku 上進行搭建。
產品概覽
技術:Java
平臺:Linux、MacOS、Windows
許可證:Apache License 2.0
倉庫:GitHub。38名貢獻者 (提交)。最近的提交在幾天內。
指標:Prometheus
測試網:Altona (啟動時期)、Onyx
文件
提供最近更新的、簡明但切中要點的文件集,涵蓋啟動和執行客戶端所需的大部分資訊。
關於客戶端安裝和配置的使用者指南;
開發者指南,用於對該專案做出貢獻。
當前的狀態
已更新至最新的規範 v.0.12.1;
參與了最新的多客戶端測試網 Altona 的啟動;
正在進行效能最佳化;
最近增加了向 Prometheus 揭露 RocksDB 指標的支援。
值得注意
雖然 Teku 是作為企業級客戶端被搭建,但個人使用者也可以自由使用。
Teku 在日語裡 (テク) 是“技術”的意思。
相關連結
網站:https://pegasys.tech/teku/
部落格:https://pegasys.tech/blog/
Twitter:https://twitter.com/PegaSysEng
Gitter:https://gitter.im/PegaSysEng/teku
Discord:https://discord.gg/7hPv2T6
GitHub:https://github.com/PegaSysEng/teku
文件:https://docs.teku.pegasys.tech/en/latest/
貢獻者指南:https://github.com/PegaSysEng/teku/blob/master/CONTRIBUTING.md
07. Trinity (以太坊基金會)
Trinity 是由以太坊基金會的 Python 團隊編寫的、支援 Eth2.0 和 Eth2.0的開源以太坊客戶端。其開發自2019年初開始。
產品概覽
技術:Python
Platform:Linux、MacOS、Windows (不支援)
許可證:MIT
倉庫:GitHub。75名貢獻者 (提交)。最近的提交在幾天內。
指標:InfluxDB
測試網:尚未上線 Altona
文件
該團隊提供了一組合理的更新文件集,包括客戶端快速啟動指南以及安全和執行該軟體的說明。
該客戶端的開發者提供了一個“Cookbook”文件,對如何使用該客戶端實現一些實用和有趣的事情提供了建議,比如訪問內建的效能分析工具。
當前的狀態
實現了信標鏈規範 v0.11.1,當前正在致力於實現 v0.12.1;
正在解決效能問題;
最近增加了透過 InfluxDB 追蹤指標。
相關連結
網站:https://trinity.ethereum.org/
Twitter:https://twitter.com/trinity_client
Gitter:https://gitter.im/ethereum/trinity
GitHub:https://github.com/ethereum/trinity/tree/eth2/v0.12.1
文件:https://trinity-client.readthedocs.io/en/latest/
貢獻者指南:https://trinity-client.readthedocs.io/en/latest/contributing.html
寫在最後
現在你瞭解了這七個客戶端!你喜歡哪個?如果可能的話,我建議你都試試。一旦這些客戶端都能成功地將同一個測試網 (如果不是 Altona,那就是之後推出的測試網) 作為目標,那麼對你來說執行起來就更加容易了。
我不確定以太坊2.0主網的啟動需要至少多少個客戶端準備好,但很明顯其中一些客戶端的進度要更快。這將如何影響階段0的啟動時間,還有待觀察。
最後,我想對所有以太坊開發者們表示感謝。以太坊的生態系統和社羣充滿了富有激情的人們,他們正朝著一個共同的目標努力:以太坊2.0。無數的開發者、研究者、修補人員和領導者正在努力使一切成為可能。感謝所有人。
免責宣告
作者與本文中提到的公司/開發人員沒有直接關係。文中內容僅代表作者觀點。文中資訊基於作者對公開可用資訊的研究。本文不作為任何建議或背書,也不保證資訊的準確性和完整性。