跳至内容
0%

自建节点的利弊

Alchemy team headshot

作者 Alchemy

发布于 2023年3月26日1 分钟阅读

运行一个节点意味着在一台机器上安装"客户端"软件,该软件会下载、验证新区块并在区块链网络中传播这些区块。

目前有两种类型的节点客户端软件:执行客户端和共识客户端。执行层客户端负责管理区块链的整体状态并完成交易,共识层客户端负责验证交易。

为了在网络中传播交易,节点使用一系列 P2P 网络协议来发现新节点、建立安全连接,并同步状态、区块和待处理交易池。

应该自建节点,还是使用托管集群?

自建节点让你完全掌控节点软件、配置和硬件,但这是一项持续性的运维承诺。维护、时间和可靠性都成为你团队的工作(权衡取舍详见下文)。另一种选择是托管集群:由提供商为你运行的单租户节点,让你获得自建节点的大部分控制权,而不必承担运维负担,例如 Alchemy 的 Dedicated Clusters。

当你需要任何提供商都不开放的系统级控制时,选择自建节点。当你希望获得单租户隔离、在特定区域部署,或使用自定义 tracer,而又不想组建基础设施团队时,使用托管集群。若要并排比较两者,请参阅我们关于如何在共享与专属基础设施之间做选择的指南。

什么是 Ethereum 节点?

Ethereum 节点是运行在 Ethereum 区块链上的节点,共有三种主要类型:轻节点、全节点和归档节点。

1. 全节点

全节点客户端会验证每个新区块中的所有交易,有助于确保网络的安全性以及交易数据的有效性。

2. 轻节点

轻节点存储区块头数据,例如前一个区块的哈希值和时间戳,而不是像全节点那样存储完整的区块数据。

轻节点向全节点发送按需请求,只验证其用户所需要的那部分状态。

3. 归档节点

归档节点保存与全节点相同的所有数据,此外还保存追溯到创世区块(即第一个区块)的完整区块链历史状态数据。

为什么要运行 Ethereum RPC 节点?

Web3 开发者可能会选择运行 Ethereum RPC 节点来对区块链进行读写操作。一些开发者选择运行自己的节点,以便自定义节点配置、提升安全性,并进行使用 RPC 提供商的共享节点或专用节点所无法实现的系统级优化。

运行自己的 Ethereum 节点有哪些好处?

运行 Ethereum 节点主要有四个好处:隐私与安全、抗审查性、去中心化,以及自主性。

1. 隐私与安全

使用共享节点时,你的交易与其他公司共用同一硬件,这对你的具体产品来说可能存在合规或安全风险。

有些团队更倾向于使用专用节点,方式是运行自己的节点以确保完全隔离和自主,或者使用提供专用节点服务的节点提供商。

2. 抗审查性

维护自己的节点可以让你在任何时候都能保证将交易广播到网络中的其他节点。如果使用第三方节点,提供商可能会屏蔽来自你特定 IP 地址的交易,或屏蔽发往特定智能合约地址的交易。

3. 去中心化

运行自己的节点意味着你不依赖某个中心化的基础设施提供商来运行节点。不过,仍有其他一些中心化因素需要考虑,例如你所选择的云服务商(如 AWS、GCP 等),或者如果你采用裸机配置,还需考虑服务器所在的地理位置(如 Virginia、Germany 等)。

一旦你所在的数据中心或云服务商出现故障,自行管理节点的 web3 开发者应评估其提供商,构建具备容错能力的架构,并制定业务连续性计划文档。

4. 自主性

开发者运行自己的节点,可以完全自主地选择自己偏好的节点软件客户端、这些节点客户端的配置方式、硬件的数量和型号,以及其他与硬件相关的决策。

这种灵活性对某些特定的 web3 应用场景来说,可能意味着更好的性能——因为 RPC 节点提供商无法提供同等粒度的硬件和软件配置选择。

自建节点 vs. 使用节点服务商
展示自建节点与使用 Alchemy 这类节点服务商之间区别的示意图。

运行自己的节点有哪些权衡取舍?

与使用 RPC 节点提供商相比,自行运行节点主要存在三方面的权衡取舍:维护成本、时间成本和可靠性成本。

1. 维护成本

运行自己的全节点需要专用硬件(如 RAM、存储等)来下载、验证和存储交易信息。维护硬件以支持不断变化的产品使用水平,对于在不超支的情况下为客户平衡容量与容错能力十分重要。

运行节点的维护成本很大程度上取决于你是否使用像 Amazon Web Services 这样的提供商、是否运行裸机服务器、所投入的工程时间,以及你的特定应用所需的硬件和带宽资源量。

2. 时间成本

运行和维护区块链节点可能涉及许多技术问题,对初学者来说可能既困难又耗时。

对于资金和工程时间有限的 web3 初创公司来说,将相当一部分工程资源投入到自行管理基础设施上,意味着无法专注于构建产品的核心功能。

此外,随着你的 web3 产品规模扩大,你的工程资源也需要相应扩展,以维护一支可靠的自管节点队伍,确保正常运行时间和容量以支持更多用户。

3. 可靠性成本

考虑自行运行节点的初创公司会面临诸多可靠性问题,例如软件更新中的缺陷、CPU 峰值、内存泄漏、磁盘问题、节点互联不一致,以及跨节点队伍的数据准确性问题。

不可靠的节点不仅会占用工程师本可用于构建产品核心功能的时间,还会直接影响用户体验。

当节点宕机时,用户将无法使用你的产品,这可能带来许多潜在的下游影响,例如用户流失到其他替代产品。

Alchemy 在节点基础设施方面为 Web3 开发者提供的 4 种帮助

Alchemy 是领先的 web3 开发者平台,为 Ethereum、Polygon、Optimism、Arbitrum 等链上的顶级去中心化应用提供支持。

以下是 Alchemy 构建的一系列工具,旨在确保开发者能够获得可靠的节点基础设施和一流的开发者工具。

Alchemy 的 Cortex 引擎

Alchemy 的 Cortex 引擎驱动着我们的节点基础设施,用一支开发者可通过单一端点交互的节点队伍,取代了自托管的区块链节点。

Cortex 提供以下关键优势:

  • 99.9% 的可靠性
  • 动态可扩展性
  • 数据正确性
  • 无需设置或同步时间
  • 测试网
  • 增强型 API
Alchemy Cortex 架构的简化示意图。
Alchemy Cortex 架构的简化示意图。

‍

Alchemy Build

Alchemy 还提供一整套内部开发的工具,帮助开发者捕捉错误、更快地完成产品上线。借助 Alchemy Build,开发者可以即时搜索数百万条请求、查看实时的 mempool 交易、直接从浏览器发出 JSON-RPC 调用等等。

Alchemy Build 的开发者工具套件包括:

  • Composer - 在简单的在线界面中实时测试 API 调用
  • Explorer - 搜索历史请求以调试交易
  • Mempool Visualizer - 查看 mempool 中交易的实时状态
开发者控制台中的 Alchemy Build。
开发者控制台中的 Alchemy Build。

Alchemy Monitor

Alchemy 通过一个功能强大的指挥中心帮助你监控应用的健康状况,让你可以即时查看响应时间、使用情况分析、洞察信息和警报,并配有每日报告,使你始终掌握应用动态。

Alchemy 的监控工具为开发者提供:

  • 应用监控与警报
  • 包含应用层详细信息的仪表盘
  • 地理可视化,帮助了解用户所在的位置
  • 使用量统计,帮助了解应用的使用情况

‍Alchemy 支持

Alchemy 提供专业的一对一支持,并维护着 Alchemy Status Page,让用户随时了解我们 API 的运行状态。

  • 98% 的客户满意度(CSAT)评分
  • 可接触到 Customer Product Engineers
  • 与行业内其他人士建立联系的机会

如有紧急请求,请发送支持工单至 support@alchemy.com!

Background gradient

构建区块链应用

Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。