本文介绍了以太坊区块链中三种不同类型的节点:全节点、轻节点和存档节点。全节点维护完整的区块链数据副本,轻节点仅存储块头数据,而存档节点则存储从创世块开始的所有历史状态数据。选择哪种类型的节点取决于具体的用例和资源。
由 Alchemy 编写
由 Brady Werkheiser 审核
发布于 2022 年 8 月 11 日,阅读需要 5 分钟
以太坊区块链是一个全球性的分布式计算机网络,网络中的节点汇集处理能力、资源,并分担区块验证的职责,以便网络能够达成共识(即,就共享状态达成一致)。
这篇文章探讨了以太坊区块链上使用的不同类型的以太坊节点(完整节点、存档节点和轻节点)及其差异。
完整节点保留区块链数据的完整副本,并通过从其他完整节点接收交易和区块、验证它们并将它们转发到其他完整节点来为网络做出贡献。
当执行智能合约交易时,以太坊完整节点会执行智能合约中的所有指令。完整节点共同决定智能合约的执行是否产生所需的结果。但是,运行完整的以太坊节点成本高昂,并且消耗大量电力。
客户端是一个以太坊软件实现,它验证每个区块中的所有交易,确保网络安全且交易数据有效。以太坊完整节点客户端验证每个区块中的所有交易,为网络提供安全性和数据准确性。
每个以太坊客户端都具有自己的一组功能和优势。由于其多样性,可以根据不同的用户群体定制实现。选择以太坊节点客户端时,请考虑功能、支持、web3 编程语言和许可证。
执行层完整节点客户端实现主要有四种类型:
Geth (Go Ethereum) - 使用 Go 编写
Nethermind - 使用 C# 和 .NET 编写
Erigon - 使用 Go 编写
Hyperledger Besu - 使用 Java 编写
合并之后,当以太坊从工作量证明过渡到权益证明时,每个完整节点都需要结合上述执行层客户端之一来运行共识层客户端。
主要有五个共识层客户端:
Prsym - 由 Prysmatic Labs 使用 Go 构建
Teku - 由 Besu 团队使用 Java 构建
Lighthouse - 由 Sigma Prime 构建,使用 Rust 编写
Nimbus - 由 Nimbus 团队使用 Rust 编写
Lodestar - 由 ChainSafe Systems 使用 Typescript 构建
与完整节点一样,轻节点 存储区块头数据,例如前一个区块的哈希值和时间戳,而不是完整的区块数据。轻节点向完整节点发送按需请求,仅验证用户需要的那部分状态。
个人电脑等低容量设备可以从轻节点中受益,因为它们不执行昂贵的数据存储和写入任务。
轻节点的用例示例包括:
检查余额
验证交易是否已由网络确认
检查事件日志
除了个人电脑,轻节点 还可以高效地在手机或 Raspberry Pi 等低容量设备上运行。
存档节点 拥有与完整节点相同的所有数据,以及可追溯到创世区块(即第一个区块)的区块链所有历史状态数据。
虽然完整节点可以重建旧的区块链状态数据,但这种同步过程既耗时又效率低下。根据用例的不同,可能需要快速提供此数据。但是,存档节点可以追溯交易,因为它们拥有自第一个区块以来的历史数据。
存档节点可以存储千兆字节的过去数据,这使得它们对普通用户来说不太理想,但对区块浏览器、钱包和链上分析公司等服务提供商来说很有价值。
以太坊协议的官方 Golang 实现是 Go Ethereum(或 Geth)。Geth 是最受欢迎的以太坊客户端,拥有最多的用户,并为开发人员提供各种基于 Go 的工具,所有这些工具都是开源的,并根据 GNU LGPL v3 获得许可。
Erigon 是 Geth 的一个分支,专注于速度和节省磁盘空间。Erigon 是一个完全重新架构的以太坊节点客户端实现,用 Go 开发,并计划将来移植到其他语言。Erigon 旨在提供一个更模块化、更快和更精简的以太坊实现。
与 Geth 相比,Erigon 的并行开发、平面存储、预处理和分阶段同步,Erigon 实现了更小的存储占用空间、更快的同步速度,并且总体上为需要使用跟踪 API 的开发人员提供了更好的体验。
完整节点和存档节点之间的主要区别在于,存档节点会跟踪链的所有先前状态(即以太坊生态系统的完整图景),而完整节点只需要存储当前状态数据的快照。
简而言之,存档节点包含自第一个区块以来的所有历史数据,而完整节点仅包含验证新交易所需的最重要、最新的数据,同时不必要的区块链数据会被“修剪”。
选择要部署的正确的以太坊节点类型取决于你的用例和资源,因为节点设置和功能差异很大。
你可以通过运行你的节点,以私有、自给自足和无需信任的方式使用以太坊。你无需信任网络,因为可以使用你自己的节点客户端验证数据。
完整节点 的优势在于能够直接与公共区块链上的任何智能合约通信。智能合约现在也可以通过完整节点部署到公共区块链中。
但是,无限的数据使用、存储和直接的智能合约功能不是免费的,并且完整节点可能会占用你机器的硬件和带宽资源。
存档节点 存储完整节点所做的所有信息,并创建区块链状态的历史记录。即使客户端完成同步后,存档节点也会保存先前的数据。
如果你的应用程序需要历史区块链信息,你将需要运行你自己的存档节点或选择一个提供存档节点访问权限的区块链节点提供商。
轻节点 与完整节点类似,但是,它们仅处理少量数据。轻节点保存标头链数据,但仅在请求时接收额外数据。它们可以验证数据有效性,但它们不完全参与区块验证。
Alchemy 是一个 web3 节点基础设施提供商和区块链开发者平台,通过 Supernode 和 Alchemy 的工具套件为 web3 开发者提供增压的可扩展性、稳定性和数据准确性。Supernode 使用专门的分布式系统和专有的协调器服务来提高节点功能的各个方面,以确保实时数据的准确性。
因为节点是通用的,并非设计为高可用性,因此与节点提供商相比,运营自己的节点的应用程序可能会遇到高于平均水平的延迟和停机时间。
Alchemy 的 Supernode 提供了一个可扩展的节点架构,具有 99.99% 的正常运行时间保证,允许 dApp 开发者继续扩展,而不会中断其产品或用户。
Alchemy 的无限可扩展的节点基础设施、无与伦比的可靠性、速度和 数据正确性 被用于为 Polygon 提供支持,这已被证明是采用的催化剂,导致构建在 Polygon 上的 dApp 数量显着增加。
0x 是去中心化交易所的全球支柱,允许数千亿美元的交易流经所有主要区块链,它信任 Alchemy 的可靠节点基础设施。
Alchemy 提供了一个强大的免费层,为 mainnet 和 testnet 提供免费的存档访问。要了解有关 Alchemy 的更多信息并获得免费的存档访问权限,立即注册一个免费帐户。
Supercharged | Alchemy | Substack
获取免费的以太坊 RPC 和开发者工具 获取你的 API 密钥
📚 目录
分享:
\
\
Ethereum\
\
Ethereum 分片:区块链分片简介\
\
什么是区块链分片,它与以太坊有什么关系?
\
\
Ethereum\
\
什么是强化交易?\
\
探索一种新型交易,保证交易被挖掘并针对 Gas 进行了优化
\
\
Ethereum\
\
什么是以太坊承诺级别?\
\
了解安全(有理由)、已完成和最新承诺级别
Alchemy 将最强大的 web3 开发者产品和工具与资源、社区和传奇支持相结合。
- 原文链接: alchemy.com/overviews/fu...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!