Skip to main content
Не пропускайте ничего важного: историческое воспроизведение LaserStream позволяет восстановиться после разрывов соединения и восполнить пропущенные данные за последние 48 часов активности блокчейна.

Что такое историческое воспроизведение?

Историческое воспроизведение — это функция LaserStream, которая позволяет повторно получать недавние данные блокчейна, задав начальную точку fromSlot. Это полезно для обработки разрывов соединения и обеспечения непрерывности данных в приложениях реального времени.

За какой период можно воспроизводить данные

Вы можете воспроизводить данные за период до ~48 часов (~691 200 слотов при текущей длительности слота Solana ~250 мс; точное количество слотов меняется вместе с длительностью слота в сети) независимо от уровня подтверждения подписки. Передайте fromSlot в пределах этого окна, и LaserStream будет передавать поток данных от указанной точки до настоящего времени. Для более старых периодов возвращаются финализированные данные. LaserStream хранит в памяти слоты примерно за последние ~20 минут. Более старые данные поступают из исторического хранилища, содержащего только финализированные блоки. Поэтому при воспроизведении с fromSlot старше ~20 минут данные отражают финализированную цепочку: в этом диапазоне вы не увидите слоты из ответвлений, отброшенные слоты или обновления аккаунтов внутри слота даже при подписке 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

После этого поток незаметно переключается на передачу данных в реальном времени
Автоматическое переподключение: SDK LaserStream автоматически обрабатывает переподключение и воспроизведение. Дополнительный код не требуется!
При воспроизведении учитывается флаг фильтра транзакций matchMints, поэтому воспроизведение с фильтрацией по mint возвращает тот же набор транзакций, который был бы передан потоком данных в реальном времени.

Быстрый старт

Начните работу с LaserStream в панели управления Helius. Для Mainnet требуется тариф Business или Professional; Devnet доступна на тарифе 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

Включите LaserStream в панели управления Helius и начните потоковую передачу.

SDK Documentation

Ознакомьтесь с полной документацией SDK

Contact Support

Получите помощь с реализацией