跳转到主要内容

概述

OrbitFlare 运行完整归档节点,保留自 Solana 启动以来的每一个区块、交易和账户状态。标准 RPC 提供商通常会裁剪较旧的数据以节省存储空间,仅保留最近的 epoch。使用 OrbitFlare,您可以查询 Solana 历史中的任何 slot。

使用场景

历史区块链数据支持多种重要工作流:
  • 事件恢复:在索引器停机或 webhook 失败后回填缺失的交易
  • 合规:检索用于审计和监管要求的交易记录
  • 研究:分析链上趋势、代币分布和协议指标的历史变化
  • 浏览器应用:构建显示完整历史的区块浏览器和仪表板

相关 RPC 方法

这些方法支持在 OrbitFlare 归档节点上的历史查询:

区块方法

交易方法

账户方法

Slot 方法

示例

从历史中检索区块

使用 getBlock 获取 slot 100,000,000 的区块数据:

获取区块时间戳

使用 getBlockTime 查询特定区块的生产时间:

列出范围内的区块

使用 getBlocks 获取两个 slot 之间的所有已确认区块:

获取交易

使用 getTransaction 按签名检索交易详情:

获取地址的交易历史

使用 getSignaturesForAddress 检索地址的签名:

TypeScript 示例

获取历史区块数据

构建完整交易历史

结合 getSignaturesForAddressgetTransaction 构建完整历史:

按时间范围查询区块

查找特定时间段内的区块:

性能提示

  1. 批量请求:使用 JSON-RPC 批量请求在一次调用中获取多个区块或交易
  2. 大查询分页getSignaturesForAddress 方法每次调用最多返回 1000 个签名——使用 before 参数进行分页
  3. 谨慎并行化:以 10-20 个为一批并行获取交易,以平衡速度和速率限制
  4. 缓存不可变数据:历史区块和交易一旦确认就不会改变——在本地缓存它们
  5. 使用 maxSupportedTransactionVersion:始终包含此参数以处理版本化交易

限制

账户状态历史:Solana 节点存储当前账户状态,而非历史快照。您可以检索修改了某账户的交易,但无法获取该账户在特定过去 slot 的余额或数据。 速率限制:历史查询可能消耗更多资源。检查您计划的速率限制并实施适当的节流。

更快的交易历史

要高效查询地址历史,请使用 getTransactionsForAddress,它将签名查找和交易检索合并为单次调用,并提供过滤和排序选项。

管理回填

对于需要大规模历史数据交付而无需自行编写 ETL 管道的团队,OrbitFlare 提供管理回填服务。
管理回填是一项企业服务。在 Discord 上联系团队或发送邮件至 sales@orbitflare.com 讨论您的需求。

服务内容

OrbitFlare 工程师将结构化的 Solana 历史数据直接提取并交付到您的存储系统:

可交付内容

  • 特定程序、钱包或代币铸造地址的所有交易
  • 任意 slot 范围的完整区块数据
  • 代币转账历史(SPL Token / Token-2022)
  • 基于您需求的自定义查询和数据结构

服务级别协议

适用场景

管理回填最适合以下情况:
  • 初始化新的索引器或分析数据库
  • 一次性合规或审计数据请求
  • 历史机器学习/AI 训练数据集
  • 长时间停机后的数据回填
如需持续流式传输新数据,请改用 gRPC 流式传输 端点。