优惠论坛

标题: 深度了解 :以太坊节点和客户端的多样性 | Tokenview [打印本页]

作者: 金色财经小编    时间: 2022-7-12 11:17

什么是以太坊节点和客户端

节点是运行以太坊客户端软件的计算机。也就是说用户需要在设备上有一个应用程序,即所谓的客户端,来运行节点。以太坊客户端可以验证每个区块中的所有交易,保持网络安全和数据准确。在以太坊合并之前,运行一个全节点需要一个软件(或两个运行一个挖矿节点)。在以太坊合并之后,需要两个客户端软件来运行一个全节点(三个来运行一个验证节点)。一个来处理和传输交易(执行客户端),一个来处理区块传输和分叉选择(共识客户端)以及一个可选的验证客户端,用于处理区块生产和对从同类型节点接收到的区块进行“投票”。

许多以太坊执行客户端和共识客户端存在于多种编程语言中,例如 Go、Rust、JavaScript、Typescript、Python、C#.NET、Nim 和 Java。这些客户端共同点是都遵循同一个规则,并影响以太坊网络和区块链功能运行方式。

以太坊节点与客户端

节点类型

事实上,客户端可以运行 3 种不同类型的节点——全节点(full)、轻节点(light)、和归档节点(archive)。

全节点

全节点是拥有完整区块链帐本资料的节点,具备独立验证的能力来确认交易之有效性。主要在处理下列四件事:

轻节点

轻节点不是下载每个区块,而是下载区块头(block headers)。这些标头仅包含有关区块内容的概括信息。以太坊目前还不支持大量的轻节点,但轻节点支持是一个有望在不久的将来快速发展的领域。

归档节点

归档节点是在全节点的基础之上,额外储存了每个区块高度的区块状态,包括个人帐户与合约帐户之当时余额等信息,即针对每个区块高度当下的状态进行快照并存档。

总之,要想获得链上数据,就需要建立全节点、轻节点以及归档节点。Tokenview就建立了这样的节点集群。作为以太坊生态的节点之一,Tokenview也是以太坊节点的服务提供商。截止目前,已为10000+家企业提供了以太坊数据 API服务及节点搭建服务。通过稳定、快速的数据接口实时调取区块链数据,可免除自建节点、同步区块、空间占用、运维等成本。

为什么要运行以太坊节点?

对个人的好处

运行自己的节点能够以真正私有、自给自足和去信任的方式使用以太坊。无需信任网络,自行通过客户端验证数据。“Don't trust, verify”就是一个非常受欢迎的流行区块链口号。

以太坊节点与客户端

对网络的好处

多样化的节点对以太坊的健康、安全和运行弹性非常重要。

如果运行全节点,整个以太坊网络都会从中受益。

执行客户端(原ETH1客户端)

以太坊社区维护着多个开源执行客户端(以前称为“Eth1 客户端”,或简称为“以太坊客户端”),由不同团队使用不同的编程语言开发。这使得网络更强大和多样化。理想的目标是在没有任何客户端主导的情况下实现多样性,以减少任何单点故障。

(1)Go Ethereum(简称Geth)是以太坊协议的原始实现之一。目前,它是受众最广泛的客户端,拥有最大用户群,为用户和开发者提供各种工具。它是用Go语言编写,完全开源,并采用GNU LGPL v3授权。

(2)OpenEthereum是一个快速、功能丰富的以太坊客户端,提供快速可靠的服务所需基础架构,这些服务需要快速同步和最大限度的运行时间。注意:OpenEthereum已被弃用,不再进行维护。最好切换到另一个客户端实现。

(3)Nethermind是基于C#.NET技术栈创建的以太坊实现,可在包括ARM在内的所有主流平台上运行。它提供了强大的性能:

Nethermind也拥有详细的文档,强大的开发支持,在线社区以及为高级用户提供全天候支持。

(4)Hyperledger Besu是一个用于公共网络和许可网络的企业级以太坊客户端。它运行所有以太坊主网功能,从追踪到GraphQL,具有广泛的监控,并由ConsenSys支持,无论是在开放的社区渠道还是通过企业的商业SLA。它是用Java编写的,并获得Apache 2.0许可。Hyperledger Besu是一个以Apache 2.0许可开发并以Java编写的开源以太坊客户端。它运行在以太坊公共网络,专用网络以及测试网络(如Rinkeby,Ropsten和Grli)上。Besu实施工作量证明(Ethash)和权限证明(IBFT 2.0和Clique)共识机制。

(5)Erigon(原Turbo‐Geth)是Go以太坊的一个分叉,以速度和磁盘空间效率为目标。Erigon是一个完全重新架构的以太坊实现,目前用Go编写,但计划用其他语言实现。Erigon的目标是提供更快、更模块化、更优化的以太坊实现。它可以在3天内使用不到2TB的磁盘空间执行完全归档节点同步。

共识客户端(原ETH2客户端)

有多个共识客户端(以前称为“ETH2”客户端)来支持共识升级。它们正在运行Beacon Chain,并将在合并后向执行客户端提供权益证明共识机制。

以太坊节点与客户端

参考文章:

https://ethereum.org/en/developers/docs/nodes-and-clients/

来源:金色财经






欢迎光临 优惠论坛 (http://tcelue.co/) Powered by Discuz! X3.1