什么是节点和客户端
节点是运行以太坊客户端软件的计算机。也就是说用户需要在设备上有一个应用程序,即所谓的客户端,来运行节点。以太坊客户端可以验证每个区块中的所有交易,保持网络安全和数据准确。在合并之前,运行一个全节点需要一个软件(或两个来运行一个挖矿节点)。在合并之后,需要两个客户端软件来运行一个全节点(三个来运行一个验证节点)。一个来处理和传输交易(执行客户端),一个来处理区块传输和分叉选择(共识客户端)以及一个可选的验证客户端,用于处理区块生产和对从同类型节点接收到的区块进行“投票”。
许多以太坊执行客户端和共识客户端存在于多种编程语言中,例如 Go、Rust、JavaScript、Typescript、Python、C#.NET、Nim 和 Java。这些客户端共同点是都遵循同一个规则,并影响以太坊网络和区块链功能运行方式。
节点类型
事实上,客户端可以运行 3 种不同类型的节点——轻节点(light)、全节点(full)和归档节点(archive)。
全节点
全节点是拥有完整区块链帐本资料的节点,具备独立验证的能力来确认交易之有效性。主要在处理下列四件事:
-
存储完整的区块链数据。
-
参与区块验证,验证所有区块和状态。
-
所有状态都可以从全节点导出。
-
提供网络服务,并根据请求提供数据。
轻节点
轻节点不是下载每个区块,而是下载区块头(block headers)。这些标头仅包含有关区块内容的概括信息。以太坊目前还不支持大量的轻节点,但轻节点支持是一个有望在不久的将来快速发展的领域。
-
轻节点所需的任何其他信息都从全节点请求。
-
轻节点可以根据区块头中的状态根独立验证数据的有效性。
-
轻节点使用户能够参与以太坊网络,而无需强大的硬件或运行全节点所需的高带宽。
-
轻节点可能会在手机或嵌入式设备上运行。轻节点不参与共识(即它们不能是矿