以太坊全节点 vs. 存档节点

  • QuickNode
  • 发布于 2024-06-10 19:12
  • 阅读 23

文章详细介绍了以太坊全节点和存档节点的区别、硬件要求以及运行节点的好处,还介绍了以太坊的客户端软件和选择硬件时的建议。

概述

更喜欢视频?跟随 Radek 在 8 分钟内了解以太坊全节点和存档节点的区别。

以太坊全节点 vs. 存档节点 - YouTube

以太坊全节点 vs. 存档节点

以太坊运行在一个由计算机(也称为节点)组成的网络上,这些节点根据共识协议和账本验证交易,构成了区块链。在本指南中,你将了解更多关于节点的信息、节点的类型,并探索运行它们所需的要求。

你将需要什么

  • 对以太坊的基本了解

你将做什么

  • 了解以太坊上的节点

  • 了解全节点

  • 了解存档节点

  • 探索不同的以太坊客户端

  • 了解推荐的硬件要求

什么是以太坊中的节点?

节点是运行以太坊客户端软件并连接到网络上其他节点的计算机。这些节点共同工作以验证交易并验证称为账本的公共区块链数据库。有不同类型的节点和客户端软件程序,它们具有不同的功能和目的,我们稍后将深入探讨。

请注意,以太坊的共识协议将在 The Merge(预计 2022 年 9 月 16 日)后从 PoW 更改为 PoS。这一变化将影响运行节点的用户,因为他们现在需要运行两种不同类型的以太坊客户端(执行客户端和共识客户端)以支持网络。因此,本指南的上下文将围绕新的 PoS 基础设施展开。

以下是关于以太坊全节点和存档节点的关键要点:

  • 全节点:在磁盘上存储和维护最近的区块数据(即最后 128 个区块)。它根据请求提供区块链数据,并通过参与区块验证和验证所有区块和状态来支持网络。所有状态都可以从全节点派生。
  • 存档节点:继承与全节点相同的功能,并构建历史状态的存档。当查询无法在全节点上访问的历史区块链数据时,这种类型的节点非常有用。存档节点不需要参与区块验证,并且可以通过从创世块重放区块从头开始构建。

什么是以太坊全节点?

在以太坊的 PoW 共识机制下,全节点仅由一个客户端软件组成。在新的以太坊状态(即 ETH2 与权益证明)中,全节点将由两个不同的客户端软件组成,一个用于共识层,另一个用于执行层。这些客户端共同工作以验证以太坊的状态,并将信息传递给传入的 JSON RPC 请求和共识层验证者。

运行全节点的推荐硬件要求:

  • 具有 4+ 核心的快速 CPU

  • 16 GB+ 内存

  • 具有至少 1 TB 空间的快速 SSD 驱动器(存储容量将随着时间的推移而增长)

  • 25 MBit/s 带宽

幸运的是,运行全节点不需要太多计算能力。但是,建议你使用 SSD 进行存储,并注意区块链的大小将随着时间的推移而增长。

什么是以太坊存档节点?

存档节点继承了与全节点相同的功能,并构建了历史状态的存档。当查询无法在全节点上访问的历史区块链数据时,这种类型的节点非常有用。例如,如果你需要最后 128 个区块之前的区块数据,你将希望访问存档节点。此外,存档节点不需要参与区块验证,理论上可以通过从创世块重放区块从头开始构建。

运行存档节点所需的存储容量更高,因为你存储了历史状态的存档。目前,运行存档节点所需的存储空间在 Geth 上约为 ~12 TB,在 Erigon 上约为 ~2 TB(随着时间的推移会增长)。此外,请记住,数据库大小和同步速度将因每个客户端及其配置而异。

运行全存档节点的推荐硬件要求:

  • 具有 4+ 核心的快速 CPU

  • 16 GB+ 内存

  • 存储将根据客户端软件的不同而有所不同(截至 2023 年 3 月,Geth 的存档模式需要 ~13.5 TB,Erigon 需要 ~2 TB(建议 3 TB))。

  • 25 MBit/s 带宽

运行节点的好处

运行节点(即全节点)有助于保持网络的多样性和去中心化。它还允许你直接与以太坊交互,而无需依赖其他节点。

或者,如果你不想管理运行节点的硬件和软件要求,你可以轻松地通过 QuickNode 免费获得优化的以太坊端点访问权限!QuickNode 提供对 18 多个区块链的访问,并且还在不断增加!QuickNode 还具有一组增强的 API,可以轻松查询聚合的区块链数据(例如,ERC-721、ERC-20 数据)。只需免费创建一个账户,然后点击 创建端点 按钮并选择以太坊主网链。一旦你的端点准备就绪,复制 HTTP 提供者 URL 以读取和写入以太坊区块链。

请注意,QuickNode 上的存档请求包含在所有计划中,并使用 API 积分。但是,如果你在 2022 年 7 月 25 日之前创建了 QuickNode 账户,则需要一个附加组件。

以太坊软件客户端

除了以太坊区块链是开源的之外,你还可以选择多个开源客户端。你可以在最常见的操作系统上运行这些客户端。请务必保持软件的最新状态,以防止任何安全漏洞。如前所述,以太坊正在转向 PoS 共识机制,需要运行两种不同的以太坊客户端才能作为节点参与。让我们深入了解每个客户端。

执行客户端

对于每个执行客户端软件,你应该预期会有差异,因为每个客户端都试图吸引不同的用户群体并提供不同的功能。查看每个客户端软件的 GitHub 存储库以获取更多信息。请注意,这些执行客户端可以在全模式和存档模式下运行。

以太坊主网和测试网(如 Sepolia 和 Goerli)最受欢迎的执行客户端库包括:

  • Geth:用 Go 编写;支持大多数操作系统和网络
  • Nethermind:用 C#、.NET 编写;支持大多数操作系统和网络
  • Erigon:用 Go 编写;支持大多数操作系统和网络
  • Besu:用 Java 编写,支持大多数操作系统和网络

共识客户端

共识客户端随着共识机制(PoS)更新而引入。它们支持信标链,并为执行客户端提供共识层。共识客户端也可以在全模式和存档模式下运行。

最受欢迎的共识客户端包括:

  • Prysm:用 Go 编写;支持大多数操作系统和网络(例如,信标链、Gnosis、Goerli、Pyrmont、Sepolia)
  • Teku:用 Java 编写;支持大多数操作系统和网络(例如,信标链、Gnosis、Goerli、Sepolia)
  • Lighthouse:用 Rust 编写;支持大多数操作系统和网络(例如,信标链、Goerli、Pyrmont、Sepolia)

每种类型的客户端都有不同的同步设置,但本指南不会深入探讨这些细节(你可以在每个以太坊客户端的 GitHub 上找到更多相关信息)。

选择硬件运行节点时的建议

在处理以太坊虚拟机(EVM)内的交易或与 EVM 交互的 JSON-RPC 调用时,例如同步新区块、调用智能合约或跟踪交易数据,你必须记住的是,EVM 并不适合并行处理。这意味着你的 CPU 的“单核”性能在节点性能中起着重要作用。现代处理器,尤其是在服务器端,通常倾向于高核心数而不是时钟速度和每时钟指令(IPC)性能。这通常会导致在花费大量资金购买“快速”服务器后性能不佳。在选择硬件时请尽可能记住这一点。

另一个需要考虑的是 RAM——消费级硬件最大的限制之一通常是它们的存储性能。即使是现代的 PCIe Gen 4 NVMe SSD 也无法与 DRAM 的延迟性能相媲美。这意味着你的系统中的 RAM 越多,你的节点可以缓存的数据就越多。更多的 RAM 几乎总是更好,并且可以减少存储的磨损。大多数以太坊客户端都非常擅长缓存尽可能多的数据,并减少需要从磁盘读取或写入数据的频率。显然,超过一定点后会有递减的回报,但区块链状态目前正在不断增长。不要吝啬。

最后,在考虑存储时,你通常希望在不超出预算的情况下购买最快的存储。NVMe 通常会比 SATA SSD 提供性能提升。避免使用 QLC 和 PLC 闪存,因为这些闪存在“持续写入”期间往往会遭受显著的性能下降,并尽可能避免使用网络附加存储。网络存储增加的额外延迟通常对节点性能非常不利。

最后的思考

恭喜!你现在对以太坊全节点和存档节点有了更好的理解。查看我们的其他以太坊指南这里

有想法、问题或想展示你所学到的内容?在 Discord 上告诉我们或通过 Twitter 联系我们。

我们 ❤️ 反馈!

让我们知道 如果你有任何反馈或新主题的请求。我们很乐意听取你的意见。

  • 原文链接: quicknode.com/guides/inf...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。