原文標題:《一文速覽 Eth2.0 的 7 大客戶端進展》
原文作者: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 (Eth1 客戶端) 庫中開發對 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 測試網
文檔
Eth1 Nethermind 客戶端有大量的文檔。我沒能找到有關 Eth2 Cortex 客戶端的任何文檔。可能目前正在開發中。
當前狀態
當前致力於存款 (deposit) 的處理和信標鏈節點實現。
尚未實現最終性 (finalizing)
值得注意
Nethermind 的 Github 頁面列出了在未來 6 個月內建立對 Eth2 多客戶端測試網的支持。
Links 相關鏈接
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://lighthouse.sigmaprime.io/
Twitter:https://twitter.com/sigp_io
Gitter:https://gitter.im/sigp/lighthouse
Discord:
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) 進行反序列化的功能。
相關鏈接
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://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://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 在日語裏 (テク) 是「技術」的意思。
相關鏈接
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 團隊編寫的、支持 Eth1.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。無數的開發者、研究者、修補人員和領導者正在努力使一切成爲可能。感謝所有人。
歡迎加入律動 BlockBeats 官方社群:
Telegram 訂閱群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方帳號:https://twitter.com/BlockBeatsAsia