跳转到主要内容
不错过任何动态:LaserStream 的历史重放功能可确保你从连接中断中恢复,并回填过去 48 小时区块链活动中缺失的数据。

什么是历史重播?

Historical Replay 是 LaserStream 的一个功能,它允许您通过设置 fromSlot 起始点来重播最近的区块链数据。这对于处理断开连接和确保实时应用的数据连续性非常有用。

您可以回放的历史长度

无论你订阅时使用哪种确认级别,都可以重放最长约 48 小时的历史记录(按 Solana 当前约 250ms 的时隙时间计算,约为 691,200 个时隙;确切的时隙数量会随网络时隙时间变化而变化)。传入此时间范围内的 fromSlot,LaserStream 就会从该位置向前传输到当前时间点。 较早的重播返回已完成的数据。 LaserStream 在内存中保留最后约 20 分钟的槽;更早的数据则从仅持有已完成区块的历史存储中提供。因此,当您回放一个超过约 20 分钟的 fromSlot 时,数据反映的是已完成的链——即使在 processed 或 confirmed 订阅中,您也不会看到分叉或丢弃的槽或槽内账户更新。最近 20 分钟内的槽具有真正的承诺语义,包括分叉和槽内账户更新。
时间窗口有限:历史重放仅涵盖过去约 48 小时。你无法重放过去任意时间点的数据。

Handle Disconnections

恢复短暂连接中断期间丢失的数据(最长 48 小时)

Bootstrap Applications

使用过去 48 小时的近期上下文启动应用程序

Analyze Recent Events

查看近期交易和账户变更

Test with Recent Data

使用真实的近期数据进行测试和开发

检查重放可用性

调用 SubscribeReplayInfo 检查可用于重放的最早时隙。 如果保存的时隙超出重放窗口,应用程序可以单独恢复缺失的历史记录,或从较新的时隙继续。使用你选择的 fromSlot 启动新订阅。可用性可能会在请求之间发生变化。

工作原理

1

Specify Starting Point

使用 fromSlot 参数设置重放起点(必须在过去约 48 小时内,按当前网络速度计算约为 691,200 个时隙)
2

Stream Historical Data

LaserStream 会传输从你指定的时隙开始的所有事件
3

Catch Up to Real-Time

历史数据会持续传输,直至到达当前时隙
4

Continue Live Streaming

无缝切换到实时数据流
自动重新连接:LaserStream SDK 会自动处理重新连接和重放。无需额外代码!
重放会遵循 matchMints 交易筛选标志,因此按铸币地址筛选的重放会返回与实时流所传输内容相同的交易集合。

快速入门

从你的 Helius 控制面板开始使用 LaserStream。主网需要 Business 或 Professional 套餐;开发网适用于 Developer 及更高级别的套餐。有关详细信息,请参阅套餐与价格。

配置选项

number
必填
开始重放的时隙编号,以 u64 表示。无论使用哪种确认级别,该编号都必须在重放窗口内(距当前时隙不超过约 48 小时,按当前网络速度计算约为 691,200 个时隙)。示例:currentSlot - 1000重要提示:如果传入的时隙早于此窗口,LaserStream 会拒绝请求并返回 Operation was attempted past the valid range。

使用场景

当应用程序在短暂连接中断(少于 48 小时)后重新连接时,可以使用历史重放来确保不遗漏任何数据。getCurrentSlot 会调用 Helius RPC;下方的 lastProcessedSlot 保存在内存中,你可以通过适合应用程序的任意方式持久化它(Redis、Postgres、文件等)。
使用过去几分钟的近期上下文启动应用程序:
使用近期历史数据进行测试(仅限过去 48 小时):

后续步骤

LaserStream gRPC

详细了解 gRPC 流式传输的功能和特性

Get Started

从 Helius 控制面板启用 LaserStream 并开始流式传输。

SDK Documentation

查看完整的 SDK 文档

Contact Support

获取实施方面的帮助