ERPC 在所有地区提供完整 Solana RPC 历史数据,并通过 Old Faithful 实现无缺口检索

由 ELSOUL LABO B.V.(总部:荷兰阿姆斯特丹,CEO:Fumitake Kawasaki)与 Validators DAO 运营的 ERPC 宣布正式提供 Solana RPC 历史数据访问。
在
edge.erpc.global 端点上,ERPC 的 Solana RPC 通过 History Access 提供历史数据。使用 Free 方案、拥有其他免费额度或使用付费方案的用户,通过在 edge.erpc.global URL 上添加 history=true,为较早的区块和交易请求 History Access。此增强功能通过将 Old Faithful——一种专为 Solana 归档和历史数据分发设计的开源技术——整合到 ERPC 的 RPC 基础设施中实现。
Solana RPC 历史数据访问的结构性挑战
在 Solana 上,每个 epoch 大约生成 500 GB 数据,而一个 epoch 通常持续一到两天。这一数据量逐年增长,对 RPC 节点的存储容量和 I/O 性能提出了巨大需求。
为保持性能和运营稳定性,大多数标准 RPC 节点仅保留有限数量的最近 epoch。在许多情况下,约 4 TB 存储的配置只能保存三到四个 epoch 的数据,相当于大约一周的历史。因此,尝试检索较早的区块、交易或账户状态时经常会导致缺失或不完整的响应。
这些限制长期以来对依赖历史数据的用例构成了实际挑战,包括链上分析、长期行为分析、回测、审计和研究。
传统归档方法的实际局限性
传统上,运行归档节点被视为访问完整 Solana 账本历史的主要方法。然而,这种方法需要大量数据复制、漫长的初始同步和持续的高运营成本。
特别是基于 Google Cloud Bigtable 的归档配置,在部署时涉及大量数据迁移成本,并在运营期间继续产生可观费用。对于许多开发者和组织来说,这使得此类解决方案不切实际。此外,对单一云提供商的强依赖也从去中心化的角度引起了担忧——而去中心化是区块链系统的基本原则。
Old Faithful 实现的历史数据分发模型
Old Faithful 是一个开源归档基础设施,旨在解决 Solana 生态系统中的这些挑战。它从 Solana 仓库节点产生的 RocksDB 归档中生成并提供内容寻址归档(CAR)格式的历史归档。
在 CAR 格式中,每个 epoch、区块、交易和 shred 通过内容哈希唯一标识。这实现了可验证的完整性检查,即使数据来自不可信的分发源,用户也能确认所检索的数据未遭篡改。
Old Faithful 旨在处理从创世到现在的完整 Solana 账本历史,并支持广泛的分发方法,包括 HTTP、CDN 和分布式存储系统。
ERPC 中的 Old Faithful 整合
通过将 Old Faithful 整合到其 Solana RPC 基础设施中,ERPC 通过现有的 Solana RPC 接口实现了历史数据访问。历史数据来自与近期数据相同的
edge.erpc.global 端点和相同的 Solana RPC 方法;请求通过在端点 URL 上添加 history=true 来要求 History Access。此升级已统一应用于所有 ERPC 地区,确保无论地理位置如何都有一致的历史数据可用性。即使在全球分布式部署中,用户也可以依赖跨地区相同的历史数据覆盖。
性能特征和持续研发
由于历史数据固有的大数据量,某些查询可能比最新数据的查询需要更长的完成时间。此行为反映了历史数据访问的结构特征,并不表示系统故障或性能降级。
ERPC 继续进行旨在改善历史数据检索响应时间的研发,包括对使用下一代大容量 NVMe 存储的配置进行评估。ERPC 将根据实际运行中获得的见解逐步引入优化。
支持用例范围的扩展
通过本次升级,ERPC 的 Solana RPC 现在支持超越实时应用的更广泛用例。长期分析、历史验证、研究、审计和应用行为分析现在可以在不需要额外基础设施的情况下进行。
将历史数据访问作为标准 RPC 使用的自然延伸提供,显著扩展了 ERPC Solana RPC 服务的实际适用性。
使用方式
要读取较早的区块和交易,请在 HTTP 请求的
edge.erpc.global 端点 URL 上添加 history=true。除 getTransactionsForAddress 外,不带 history=true 的请求会从每个节点保留的最近范围内得到响应。HTTP 请求可以在 URL 中携带 API key:
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>&history=truehttps://edge.erpc.global?api-key=<YOUR_API_KEY>&history=true或者将 API key 放在 Authorization 请求头中,并在 URL 中保留
history=true:text
https://edge.erpc.global?history=truehttps://edge.erpc.global?history=true请求头为
Authorization: Bearer <YOUR_API_KEY>。ERPC RPC 文档: https://erpc.global/zh/doc/rpc/general/
除
getTransactionsForAddress 的 "full" 模式外,由 History Access 响应的调用比该方法的常规价格多消耗 640 个代币,而由每个节点保留的最近范围响应的调用,即使带有 history=true,仍为常规价格。getTransactionsForAddress 的 "full" 模式在常规价格之上,每获取一笔交易再多消耗 640 个代币,无论交易是近期的还是较早的。免费额度(包括 Free 方案的额度)对 History Access 设有上限。对历史数据的查询可能比常规请求慢得多,有时以秒计。ERPC 提供 History Access 作为单独的选项,使历史数据查询与常规请求相互分开,让常规请求保持快速。
用户可以在 ERPC Web Dashboard 上获取和查看自己的 ERPC API key。
Validators DAO 官方 Discord: https://discord.gg/C7ZQSrCkYR
ERPC 官方网站: https://erpc.global/zh


