主页 > 如流下载imtoken > 深度解读以太坊节点运行机制和客户端多样性

深度解读以太坊节点运行机制和客户端多样性

如流下载imtoken 2023-10-18 05:13:30

火星独家|不用32 ETH参与以太坊2.0质押?了解这些机构

火星独家 | 牛市引擎启动,深度剖析ETH 2.0六大看点

火星独家 | 为什么以太坊 2.0 是“懒惰验证者的避风港”?

在深入研究和运行以太坊客户端实例之前,应该了解去中心化网络的概念。

1. 什么是节点和客户端?

以太坊的去中心化工作方式需要一个可以验证区块和交易数据的分布式节点网络。 用户需要在设备上有一个应用程序,即所谓的客户端,来运行一个节点。

以太坊是由分散的节点组成的网络架构,这些节点被称为以太坊节点或以太坊客户端。 以太坊客户端可以验证每个区块中的所有交易,维护网络安全和数据准确性。

您可以通过网站查看以太坊网络节点的实时视图(点击查看)。 截至 11 月 18 日,全球约有 139 万个以太坊节点分布。 (最近人数激增)

一文深度解读以太坊节点运作机制和客户端多样性

以太坊客户端以多种语言存在(详见下文),这些客户端的共同点是它们都遵循相同的规则并影响以太坊网络和区块链的功能。

一文深度解读以太坊节点运作机制和客户端多样性

2. 节点类型

如果你想成为一个节点,你应该了解不同种类的数据节点。 事实上,客户端可以运行 3 种不同类型的节点——轻节点、全节点和存档节点。 另外,可以选择不同的同步策略,实现更快的时间同步(同步是指如何快速获取以太坊状态的最新信息)。

(1) 全节点

sitehqz.com 以太坊节点_以太经典和以太坊统一_以太坊轻节点

全节点是拥有完整区块链账本数据的节点,具有独立验证交易有效性的能力。 它主要处理以下四件事:

一种。 存储区块链的完整数据;

b. 参与区块验证,验证所有区块和状态;

C。 所有的状态都可以从一个完整的节点中导出;

d. 向网络提供服务并根据要求提供数据;

(2) 轻节点

顾名思义,轻节点就是轻量级节点。 具体定义是,它不存储或维护区块链的完整副本,仅作为发送或传递交易消息的节点存储最少量的状态。

一种。 存储头链;

b. 可以根据区块头中的状态根来验证数据的有效性;

C。 适用于无法存储千兆字节区块链数据的低容量设备,例如嵌入式设备或手机;

(3)存档节点

存档节点在全节点的基础上,额外存储了每个区块高度的区块状态,包括个人账户和合约账户当前余额等信息,即对每个区块高度的当前状态进行快照存档。

一种。 存储全节点的所有内容,并创建历史状态的存档。

以太坊轻节点_sitehqz.com 以太坊节点_以太经典和以太坊统一

b. 这些数据以 TB 为单位,使得存档节点对普通用户的吸引力降低,但方便了区块浏览器、钱包提供商和链分析等服务。

以存档以外的任何模式同步客户端将导致删除区块链数据。 存档节点可以让你快速回到某个区块高度来查询当前状态。 存档节点保存了区块链上完整的历史记录和数据,以及整个网络在所有区块高度的当前状态。

3. 为什么运行以太坊节点?

运行自己的节点可以以去信任的方式使用以太坊,无需信任网络,并与客户端本身验证数据。 “Don't trust, verify”是一句很流行的区块链口号。 节点根据共识规则验证所有交易和区块,这意味着它们不必依赖网络中的其他节点,也不必完全信任它们。

如果 Dapps 使用自己的节点,它们会更加安全和私密,Metamask、MyEtherWallet 和其他一些钱包可以轻松指向本地节点。

一文深度解读以太坊节点运作机制和客户端多样性

4. 网络效益

多样化的节点集对于以太坊的健康、安全和运营弹性至关重要。 它们为依赖区块链的轻节点提供对区块链数据的访问。 在使用高峰期,需要有足够的全节点来帮助轻节点同步。 轻节点不存储整个区块链,而是通过块头中的状态根来验证数据。 如果需要,可以从块中请求更多信息。

全节点执行工作量证明共识机制,它们不接受不遵守规则的块,这在网络中提供了额外的安全性。 如果所有节点都是轻节点,不做全验证,矿工可能会攻击网络,比如创建奖励更高的区块。

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

5.提供者

运行您自己的节点可能很困难,在这种情况下,您可以使用第三方 API 提供商,例如 Infura、Alchemy 或 QuikNode。 此外,ArchiveNode 是一个社区资助的存档节点,它将以太坊区块链上的存档数据分发给负担不起的独立开发者。

如果有人在社区中运行带有公共 API 的以太坊节点,您可以通过自定义 RPC 将轻钱包(例如 MetaMask)指向社区节点,这比随机信任的第三方更私密。

sitehqz.com 以太坊节点_以太坊轻节点_以太经典和以太坊统一

另一方面,如果你运行一个客户端以太坊轻节点,你可以与你的朋友分享,他们可能需要它。

6.客户

不同的团队使用不同的编程语言开发以太坊客户端,这使得网络更加强大和多样化。 理想的目标是在没有任何客户端主导的情况下实现多样性以太坊轻节点,以减少任何单点故障。

此表总结了正在积极工作、维护和通过客户端测试的不同客户端。

一文深度解读以太坊节点运作机制和客户端多样性

每个客户端都有独特的用例和优势,可以根据自己的喜好进行选择,客户端的多样性可以侧重于不同的功能和用户受众。 您可能希望根据功能、支持、编程语言或许可证来选择客户端。

(1) 盖斯

Go Ethereum(或简称 Geth)是以太坊协议的最初实现之一。 目前是受众最广、用户基数最大的客户端,为用户和开发者提供各种工具。 它是用 Go 语言编写的,完全开源,并在 GNU LGPL v3 下获得许可。

(2) 开放以太坊

OpenEthereum 是一个快速、功能丰富的以太坊客户端,它为需要快速同步和最大正常运行时间的快速可靠服务提供所需的基础设施。 OpenEthereum 的目标是成为最快、最轻、最安全的以太坊客户端。 它提供了一个干净的、模块化的代码库,具有以下优点:

一种。 易于定制

b. 轻度集成到服务或产品中

C。 最小的内存和存储占用空间

以太坊轻节点_sitehqz.com 以太坊节点_以太经典和以太坊统一

OpenEthereum 使用最新的 Rust 编程语言开发,并在 GPLv3 下获得许可。

(3) 冥想

Nethermind 是使用 C# .NET 堆栈创建的以太坊实现,可在包括 ARM 在内的所有主要平台上运行。 它提供了强大的功能,包括:

一种。 性能强大的虚拟机;

b. 状态访问;

C。 网络和丰富的功能,例如 Prometheus/Graphana 仪表板、seq 企业日志支持、JSON RPC 跟踪和分析插件。

(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)共识机制。

七、硬件

每个客户端对硬件的要求不同,但一般都不高,节点只需要保持同步即可。 不要将其与需要更多计算能力的挖矿混淆。 不过,同步时间和性能确实会随着更强大的硬件而提高。 根据需要和要求,以太坊可以运行在计算机、家庭服务器、单板计算机或云中的虚拟专用服务器上。

运行自己的节点的一种简单方法是使用像 DAppNode 这样的“即插即用”盒子。 它提供运行客户端和依赖它的应用程序的硬件,并提​​供简单的用户界面。

八、配置要求

在安装任何客户端之前,请确保计算机有足够的资源来运行。 可以在下面找到最低和推荐的要求,但关键部分是磁盘空间。 同步以太坊区块链在很大程度上与输入/输出有关。 最好有一个固态驱动器(SSD),要在 HDD 上运行以太坊客户端,你需要至少 8GB 的​​ RAM 作为缓存。

sitehqz.com 以太坊节点_以太坊轻节点_以太经典和以太坊统一

(1) 最低配置

最低双核CPU;

最低4GB内存和SSD,硬盘空间8GB以上;

8 MBit/s 带宽;

(2) 推荐配置

4核CPU;

16GB以上内存;

至少500GB可用空间的高速固态硬盘;

25+MBit/s带宽;

根据所使用的软件和同步模式,需要数百 GB 的磁盘空间。 大致数字和增长可以在下面找到。

一文深度解读以太坊节点运作机制和客户端多样性

运行以太坊节点最方便、成本最低的方法是使用基于 ARM 的单板计算机,例如 Raspberry Pi。 Ethereum on ARM 提供 Geth、Parity、Nethermind 和 Besu 客户端的图像。 像这样的小型、经济实惠且高效的设备非常适合在家中运行节点。

参考文章:

节点和客户端