分享百科

以太坊客户端

什么是以太坊客户端?

以太坊客户端是实现以太坊规范,并通过对等网络与其他以太坊客户端进行通信的软件应用程序。运行客户端的实例(称为节点)会形成一个网络。 在 POS 升级之后。 一个节点需要运行两种客户端软件:共识客户端执行客户端

  • 执行客户端(也称为执行引擎、EL 客户端或旧称“以太坊 1”客户端)侦听网络中广播的新交易,并在以太坊虚拟机中执行它们,并保存所有当前以太坊数据的最新状态和数据库。对应的以太坊协议的执行层。
  • 共识客户端(也称为信标节点、CL 客户端或旧称“以太坊 2”客户端)实现共识层权益证明共识算法,使网络能够根据来自执行客户端的经验证数据达成一致。 此外还有名为“验证者”的第三种软件,它们可被添加到共识客户端中,使节点能参与保护网络安全。

两个客户端软件相互协作(如下图),以追踪以太坊的链头,并允许用户与以太坊网络进行交互。

关联执行和共识客户端

图源:https://ethereum.org/zh/developers/docs/nodes-and-clients/

虽然这些不同的客户端由不同的团队和不同的编程语言实现,但他们都“说”相同的协议并遵循相同的规则。

不同的以太坊客户端如果符合参考规范和标准化通信协议,就可以互操作。

客户端多样性

不同团队开发的各种编程语言中都有执行客户端共识客户端多种客户端是以太坊独有的优势,客户端多样性使网络对攻击和漏洞更具恢复能力。从而排除潜在的单点故障。

这些实现的共同点是它们都遵循同一套规范。 这些规范规定了以太坊网络和区块链如何运作。 此外,它们还定义了每项技术细节,你可以在以下内容中了解这些规范:

执行客户端

有多种开源的执行客户端,它们由不同的团队使用不同的编程语言开发。 这使得网络更强大、更多样化。 它的理想目标是实现多样性,即没有任何客户端占据主导地位,从而减少任何单点故障。

下表汇总了不同的客户端:

客户端 语言 操作系统: 网络 同步策略 状态缓冲
Geth Go Linux、Windows、macOS 主网、Sepolia、Goerli 快照、完全 Archive、Pruned
Nethermind C#、.NET Linux、Windows、macOS 主网、Sepolia、Goerli 及其他 快照(不提供服务)、快速、完全 Archive、Pruned
Besu Java Linux、Windows、macOS Mainnet, Sepolia, Goerli, 以及更多 快照、快速、完全 Archive、Pruned
Erigon Go Linux、Windows、macOS Mainnet, Sepolia, Goerli, 以及更多 完全 Archive、Pruned
Reth Rust语言 Linux、Windows、macOS 主网、Sepolia、Goerli 及其他 完全 Archive、Pruned

有关受支持网络的更多信息,请仔细阅读以太坊网络

每种客户端都有独特的用例和优势,所以你应该根据自己的偏好来选择。

共识客户端

共识客户端负责所有共识相关的逻辑,包括分叉选择算法、处理认证与管理权益证明奖励及惩罚。


节选文章:

https://ethereum.org/zh/developers/docs/nodes-and-clients/client-diversity/

✍️更新/纠错
登链社区