媒体资讯

媒体资讯

干货 | 一文速览Eth2.0的7大客户端进展

2020-07-07 18:43:22

以太坊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 相关链接

网站: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 团队编写的、支持 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。无数的开发者、研究者、修补人员和领导者正在努力使一切成为可能。感谢所有人。