节点和客户端
上次编辑: , Invalid DateTime
以太坊是一个由计算机组成的分布式网络,这些计算机运行可验证区块和交易数据的软件,称为节点。 软件应用程序(客户端)必须在电脑上运行,将你的电脑变成一个以太坊节点。
注意:现在再也不能仅运行执行客户端了。 合并后,执行客户端和共识客户端必须一起运行,用户才能够访问以太坊网络。
前提条件
在更深入地探索并运行自己的以太坊客户端实例之前,你应该先理解对等网络的概念和以太坊虚拟机基础知识。 查看我们的以太坊简介。
如果你不熟悉节点这一主题,建议先查看便于用户理解的运行以太坊节点简介。
什么是节点和客户端?
“节点”是指任何以太坊客户端软件的实例,它连接到也运行以太坊软件的其他计算机,形成一个网络。 客户端是以太坊的实现,它根据协议规则验证数据并保持网络安全。
合并后的以太坊由两部分组成:执行层和共识层。 这两层网络是由不同的客户端软件运行。 在本页面,我们分别称他们为“执行客户端”和“共识客户端”。
- 执行客户端(也称为执行引擎、EL 客户端或旧称“以太坊 1”客户端)侦听网络中广播的新交易,在以太坊虚拟机中执行它们,并保存所有当前以太坊数据的最新状态和数据库。
- 共识客户端(也称为信标节点、CL 客户端或旧称“以太坊 2”客户端)实现了权益证明共识算法,使网络能够根据来自执行客户端的经过验证的数据达成一致。
在合并之前,共识层和执行层是独立的网络,以太坊上的所有交易和用户活动都发生在现在的执行层。 一个客户端软件为矿工生产的区块提供执行环境和共识验证。 2020 年 12 月后,共识层即信标链一直单独运行。 它引入了权益证明,并根据来自以太坊网络的数据协调验证者网络。
通过合并,以太坊连接这些网络并过渡到权益证明。 执行客户端和共识客户端共同验证以太坊的状态。
各种软件协同工作的模块化设计称为封装复杂性(opens in a new tab)。 这种方法更轻松地实现了顺利合并,并支持各客户端的重用,例如在二层网络生态系统中的重用。
(opens in a new tab)
已连接执行客户端和共识客户端的简化图。
客户端多样性
执行客户端和共识客户端采用各种不同编程语言编写,并由不同团队开发。
多种客户端实现减少了对于单一代码库的依赖,使网络更强大。 理想的目标是实现多样性,即没有任何客户端在网络中占据主导地位,从而排除潜在的单点故障。 语言多样化令开发者社区更加广泛,并允许他们用自己喜欢的语言创建集成。
了解有关客户端多样性的更多信息。
这些实现的共同点是它们都遵循一种规范。 这些规范规定了以太坊网络和区块链如何运作。 规范定义了每个技术细节,并有以下几种形式: