Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

什么是 Avalanche 归档节点,何时应该使用?

摘要

Avalanche 归档节点存储 C 链、X 链和 P 链的完整历史状态,能够回答修剪节点无法回答的查询。本文解释了归档节点、修剪节点和状态同步节点之间的区别,并帮助您决定是自己运行节点还是使用托管的 RPC 提供商。

快速建议:归档 vs 修剪 vs 托管

在配置硬件或注册服务之前,请确定您的工作负载实际需要哪种数据保留模式。AvalancheGo 支持三种模式:归档、修剪和状态同步。下表总结了各自的权衡。

模式保留的数据最适合典型磁盘占用
归档完整的历史状态和区块审计、分析、回测、完整重放非常大(TB 级)
修剪最近的状态和区块验证者、轻量 dApp、当前余额查询中等(数百 GB)
状态同步仅最新状态新节点快速追赶小(数十 GB)

如果您只需要当前余额、交易收据或最近几天的日志,修剪节点或状态同步节点就足够了。如果您需要查询任意过去区块的历史状态,或为了分析而重放交易,则需要归档节点。

自己运行归档节点意味着管理多 TB 的存储、持续同步和备份。对于许多团队来说,提供 Avalanche 归档端点的托管 RPC 提供商是更快的路径。OnFinality 提供对 Avalanche 网络的专用和共享 RPC 访问;请查看支持的 RPC 网络页面以了解当前的可用性。

什么是 Avalanche 归档节点?

Avalanche 归档节点是配置为保留其跟踪链的完整历史的 AvalancheGo 节点。与丢弃旧状态以节省磁盘空间的修剪节点不同,归档节点保留每个历史状态,允许您查询任何地址或合约在任何时间点的状态。

Avalanche 主网由三个内置区块链组成:C 链(兼容以太坊)、X 链(资产转移)和 P 链(平台和验证者)。每条链可以有自己的数据保留模式。例如,您可能以归档模式运行 C 链以进行历史以太坊风格查询,同时保持 X 链和 P 链为修剪模式。

归档节点对于以下场景至关重要:

  • 审计和合规:证明账户或合约在过去区块的状态。
  • 分析和索引:为仪表板、DeFi 分析或 The Graph 子图构建历史数据集。
  • 回测交易策略:重放历史市场条件。
  • 调试:追踪交易的完整执行路径。

Avalanche 归档节点与修剪节点和状态同步节点的区别

AvalancheGo 的数据保留是按链配置的。三种模式是:

  • 归档:保留所有历史状态和区块。支持如 eth_getBalance 在旧区块号查询,或 eth_getLogs 在广泛的历史范围内查询。
  • 修剪:仅保留最近的状态和区块。旧状态在一段时间后被删除。这减少了磁盘使用,但限制了历史查询。
  • 状态同步:下载状态摘要并仅同步最新状态,跳过历史区块。这是让节点运行的最快方式,但提供的历史数据最少。

您可以跨链混合模式。例如,一个节点可能对 P 链和 X 链使用状态同步,但对 C 链使用归档。

何时运行自己的 Avalanche 归档节点

运行自己的归档节点让您完全控制数据、访问和成本——如果您有运营能力。考虑此路径如果:

  • 您需要频繁查询历史状态,并且工作负载可预测且高容量。
  • 您需要数据主权或希望避免第三方依赖。
  • 您拥有管理多 TB 数据库、处理备份和监控同步健康的基础设施专业知识。

关键运营考虑因素:

  • 存储:归档节点需要大量磁盘。规划 TB 级存储,并为数据库使用快速 SSD。
  • 同步时间:初始同步可能需要数天或数周,具体取决于网络速度和硬件。状态同步可以加快追赶,但您需要从一开始就启用归档模式以保留历史。
  • 备份:定期备份至关重要。AvalancheGo 的备份和恢复文档涵盖了备份节点 ID 和数据库。
  • 监控:跟踪同步状态、磁盘使用和 API 响应时间。设置异常警报。

何时使用托管的 Avalanche 归档 RPC 提供商

大多数团队不需要运行自己的归档节点。托管的 RPC 提供商处理基础设施、扩展和维护,让您专注于构建。考虑托管服务如果:

  • 您希望快速开始查询历史数据,而无需等待多日同步。
  • 您需要高可用性和故障转移,而无需管理自己的集群。
  • 您更喜欢可预测的定价,而不是硬件和运营成本。

OnFinality 为 Avalanche 和许多其他网络提供 RPC 服务。您可以获取 API 密钥并在几分钟内开始发出请求。有关计划详情,请参阅 RPC 定价 和 支持的网络 页面以了解 Avalanche 端点可用性。

如何配置 Avalanche 归档节点

如果您决定运行自己的节点,这里是一个高级配置方法。AvalancheGo 使用每个链的 JSON 配置文件。对于 C 链,在 configs/chains/C/config.json 创建配置文件,内容如下:

{
  "pruning-enabled": false
}

将 pruning-enabled 设置为 false 会禁用修剪并保留完整的归档数据。对于 X 链和 P 链,如果您也想为这些链启用归档模式,可以创建类似的配置文件。

启动 AvalancheGo 时,使用 --chain-config-dir 标志指向您的配置目录。一个最小的 systemd 服务文件可能如下所示:

[Unit]
Description=Avalanche Node
After=network.target

[Service]
User=avalanche
WorkingDirectory=/opt/avalanche
ExecStart=/opt/avalanche/build/avalanchego \
  --chain-config-dir=/opt/avalanche/configs/chains \
  --db-dir=/var/lib/avalanche/db \
  --http-host=0.0.0.0 \
  --http-port=9650 \
  --network-id=mainnet
Restart=on-failure
LimitNOFILE=1000000

[Install]
WantedBy=multi-user.target

启动节点后,您可以通过 JSON-RPC 查询它。例如,要获取 C 链上的最新区块号:

curl -X POST http://localhost:9650/ext/bc/C/rpc \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

运行归档节点时的常见陷阱

  • 低估磁盘空间:归档节点增长迅速。监控磁盘使用并规划扩展。
  • 配置路径错误:确保正确指定链配置目录。一个常见错误是将配置文件放在错误的位置。
  • 忘记备份:丢失归档节点意味着丢失历史数据。设置自动备份。
  • 不监控同步健康:落后的节点可能提供过时数据。使用指标和警报。
  • 忽略网络要求:归档节点需要稳定、高带宽的连接。检查防火墙和带宽。

如何在 Avalanche 归档节点上查询历史数据

使用归档节点,您可以在 C 链上使用标准的以太坊 JSON-RPC 方法查询历史状态。例如,要获取特定区块的地址余额:

curl -X POST https://your-endpoint \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x...", "0x123456"],"id":1}'

第二个参数是十六进制区块号。您还可以使用 eth_getLogs 查询区块范围内的历史事件日志。

对于使用 ethers.js 的 JavaScript 开发者:

const { ethers } = require("ethers");

const provider = new ethers.JsonRpcProvider("https://your-endpoint");

async function getHistoricalBalance(address, blockNumber) {
  const balance = await provider.getBalance(address, blockNumber);
  console.log(`Balance at block ${blockNumber}: ${ethers.formatEther(balance)} AVAX`);
}

关键要点

  • Avalanche 归档节点存储完整的历史状态,能够回答修剪节点无法回答的查询。
  • 仅在需要历史数据时选择归档模式;否则,修剪或状态同步更具成本效益。
  • 运行自己的归档节点需要大量的存储、同步时间和运营工作。
  • 像 OnFinality 这样的托管 RPC 提供商提供 Avalanche 归档端点,减少基础设施开销。
  • 始终监控磁盘使用、同步健康和备份,以避免数据丢失。

常见问题

Avalanche 上的归档节点和修剪节点有什么区别?

归档节点保留所有历史状态和区块,而修剪节点删除旧数据以节省磁盘空间。归档节点允许在任何过去的区块进行查询,而修剪节点仅提供最近的数据。

Avalanche 归档节点需要多少存储空间?

存储要求因链和网络活动而异。C 链归档可能需要数 TB。规划大型快速 SSD 并监控增长。

我可以仅为 C 链运行归档节点吗?

可以。AvalancheGo 允许按链配置。您可以将 C 链的 pruning-enabled 设置为 false,同时保持其他链为修剪模式。

运行自己的归档节点还是使用托管提供商更便宜?

这取决于您的工作负载。运行自己的节点涉及硬件、电力和维护。托管提供商提供可预测的定价和较低的前期工作。根据您的查询量比较成本。

OnFinality 是否提供 Avalanche 归档节点?

OnFinality 为 Avalanche 网络提供 RPC 服务。请查看支持的网络页面以了解当前的归档端点可用性,以及定价页面了解计划详情。

RPC 知识库

相关 RPC 内容

网络 RPCBNB Chain

BSC JSON-RPC 端点:链设置、钱包配置和调试

BNB Smart Chain (BSC) JSON-RPC 端点是您的应用指向以读取链状态和提交交易的 HTTP 或 WebSocket URL。对于主网,您需要链 ID 56、BNB 原生货币和可靠的 RPC URL;对于测试网,您使用链 ID 97 和 tBNB。本页涵盖确切的链设置、钱包和代...

网络 RPCBNB Chain

什么是 BNBChain 列表,BNB Smart Chain 和应用侧链如何协同工作?

BNBChain 列表是对 BNB Chain 生态系统的引用,其中包括作为 EVM 兼容执行层的 BNB Smart Chain (BSC) 以及围绕它构建的一组应用侧链和 Layer 2 网络。开发者使用此列表在连接钱包、索引器或后端服务之前查找链 ID、RPC 端点、浏览器和桥接详情。 本页解...

网络 RPCSORA

什么是 SORA API?如何在 dApp 中使用它?

SORA API 指的是允许应用程序在 SORA 网络上读写数据的 RPC 端点和 JSON-RPC 方法。本文解释了什么是 SORA API、如何连接到它,以及如何为生产工作负载选择公共端点或专用端点。...

RPC 提供商选择

如何评估 Alchemy 作为 Web3 项目的 RPC 提供商

本文提供了一个结构化框架,用于评估 Alchemy 作为 RPC 提供商,涵盖功能集、定价模型、性能考虑和开发者体验等关键标准。它帮助开发者和基础设施采购者通过将 Alchemy 的产品与常见生产需求进行比较,做出明智的决策。...

网络 RPCKlaytn

什么是 Kaia API,如何连接它?

Kaia API 是 Kaia 区块链的 JSON-RPC 接口,Kaia 是一个兼容 EVM 的 Layer 1 网络。它允许你使用熟悉的以太坊风格方法读取链上数据、发送交易以及与智能合约交互。本指南介绍了 API 命名空间、如何通过公共或托管端点连接,以及如何为你的 dApp 选择合适的基础设施...

区块链基础设施

Blockchain Node as a Service: Key Criteria for Choosing a Provider

Blockchain node as a service (also called node-as-a-service or NaaS) lets developers access blockchain nodes without running, syncing, or maintaining ...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始