Skip to main content

Что такое LaserStream WebSocket?

LaserStream WebSocket — это вариант LaserStream, использующий протокол WebSocket. Он поддерживает стандартные методы подписки Solana JSON-RPC (accountSubscribe, programSubscribe, logsSubscribe, signatureSubscribe, slotSubscribe, …), а также специальные расширения Helius, такие как transactionSubscribe, для расширенной фильтрации. Все они доступны через единую конечную точку wss://mainnet.helius-rpc.com и используют ту же серверную инфраструктуру LaserStream, что и продукт gRPC. WebSocket обеспечивает постоянное подключение в реальном времени: вместо повторяющихся запросов «что-нибудь изменилось?» блокчейн уведомляет вас сразу после возникновения события.

Real-Time Updates

Мгновенно получайте уведомления об изменениях аккаунтов Solana, выполнении транзакций и создании новых блоков

Efficient Resource Usage

Одно постоянное подключение вместо сотен опрашивающих HTTP-запросов

Low Latency

Задержка до 200 мс меньше, чем у стандартных WebSocket на базе Agave RPC, благодаря LaserStream

Helius Extensions

transactionSubscribe и расширенный accountSubscribe для дополнительной фильтрации поверх стандартных методов Solana

Конечные точки

WebSocket — как стандартные методы Solana, так и специальные расширения Helius — доступны через единую конечную точку для каждой сети: Основная сеть: wss://mainnet.helius-rpc.com/?api-key=<API_KEY> Тестовая сеть: wss://devnet.helius-rpc.com/?api-key=<API_KEY>

Gatekeeper (бета-версия)

Чтобы протестировать наш самый быстрый вариант WebSocket, используйте новую конечную точку Gatekeeper (бета-версия): wss://beta.helius-rpc.com/?api-key=<API_KEY>

Тарификация и учет использования

Использование WebSocket тарифицируется из расчета 2 кредита за 0,1 МБ переданных несжатых данных. Открытие подключения стоит 1 кредит. Для высоконагруженных систем на тарифах Professional доступны дополнительные пакеты данных с ежемесячным объемом данных от 5 до 100 ТБ по предсказуемой цене. Дополнительные пакеты данных можно использовать с LaserStream и WebSocket.
Специальные методы Helius transactionSubscribe и accountSubscribe (с фильтрами Helius) требуют тарифа Developer, Business или Professional. Стандартные методы Solana, такие как programSubscribe, logsSubscribe и signatureSubscribe, доступны на всех тарифах.

Основные понятия

Типы подписок

Отслеживайте изменения определенных аккаунтов, например балансов кошельков, аккаунтов токенов или данных программ.Примеры использования:
  • Отслеживание баланса кошелька
  • Мониторинг аккаунтов токенов
  • Изменения состояния смарт-контрактов
  • Обновления сведений о владении NFT
Отслеживайте любые изменения во всех аккаунтах, принадлежащих определенной программе.Примеры использования:
  • Мониторинг сделок на DEX
  • Отслеживание протоколов DeFi
  • Отслеживание активности на маркетплейсах NFT
  • Изменения игровых активов
Получайте уведомления о подтверждении определенных транзакций или о транзакциях, в которых упоминаются конкретные аккаунты.Примеры использования:
  • Подтверждение платежей
  • Отслеживание статуса транзакций
  • Подтверждения с несколькими подписями
  • Мониторинг выполнения контрактов
Отслеживайте развитие блокчейна и окончательность на уровне слотов.Примеры использования:
  • Приложения для просмотра блокчейна
  • Мониторинг состояния сети
  • Отслеживание консенсуса
  • Анализ производительности

Уровни подтверждения

Понимание уровней подтверждения критически важно для надежной работы приложений:
Самый быстрый — транзакция обработана валидатором, но не подтверждена
  • Задержка: ~400 мс
  • Риск: транзакция может быть отклонена или переупорядочена
  • Используйте для: обновления интерфейса в реальном времени (с осторожностью)
Хотите узнать больше об уровнях подтверждения? Прочитайте нашу подробную статью в блоге: Уровни подтверждения Solana

Доступные методы WebSocket

Helius поддерживает полный набор методов подписки Solana WebSocket, а также специальные расширения Helius. Все методы используют одну конечную точку wss://mainnet.helius-rpc.com.

Расширения Helius

Два метода предоставляют более гибкую фильтрацию, чем стандарт Solana:
  • transactionSubscribe — подписка на транзакции с учетом списков включаемых, исключаемых и обязательных аккаунтов, флагов голосования и ошибок, а также определенной подписи
  • accountSubscribe — Helius добавляет расширенные фильтры к стандартной структуре accountSubscribe

Стандартные методы Solana

accountSubscribe, blockSubscribe, logsSubscribe, programSubscribe, rootSubscribe, signatureSubscribe, slotSubscribe, slotsUpdatesSubscribe, voteSubscribe и соответствующие им пары *Unsubscribe.

Complete API Reference

Изучите все 18+ методов WebSocket. Для каждого метода приведены подробные параметры, форматы ответов и примеры.

Как реализовать логику повторного подключения

Подключения WebSocket могут разрываться по разным причинам: из-за проблем с сетью, технического обслуживания сервера или временных сбоев. В рабочих приложениях обязательно реализуйте логику повторного подключения, чтобы обеспечить надежность.

Причины разрывов подключения

  • Проблемы с подключением к интернету
  • Переключение между сетями Wi-Fi на мобильных устройствах
  • Истечение времени ожидания корпоративного межсетевого экрана
  • Изменения маршрутизации у интернет-провайдера
  • Плановые периоды технического обслуживания
  • Перезапуск балансировщиков нагрузки
  • Обновления узлов RPC
  • Временная защита от перегрузки
  • Перевод вкладки браузера в фоновый режим
  • Приостановка мобильного приложения
  • Переход компьютера в спящий режим или режим гибернации
  • Сбои или перезапуски процесса

Обнаружение разрывов подключения

Стратегии повторного подключения

Тестирование логики повторного подключения

Критически важно для рабочей среды: корректная логика повторного подключения обязательна для рабочих приложений. Подключения WebSocket будут разрываться — учитывайте это при проектировании, тестируйте логику и отслеживайте ее работу в рабочей среде.

Устранение неполадок

Признаки: не удается установить первоначальное подключение WebSocketРешения:
  • Убедитесь, что ваш ключ API указан правильно и на балансе достаточно кредитов
  • Проверьте формат URL конечной точки: wss://mainnet.helius-rpc.com?api-key=YOUR_KEY
  • Убедитесь, что межсетевой экран разрешает подключения WebSocket через порт 443
  • Сначала отправьте простой ping-запрос, чтобы проверить базовое подключение
Признаки: подключение разрывается каждые несколько минутРешения:
  • Для WebSocket действует 10-минутный таймер бездействия. Отправляйте ping-запрос не реже одного раза в минуту, чтобы сохранять подключение активным (см. примеры повторного подключения выше и часто задаваемые вопросы о WebSocket)
  • Реализуйте корректную проверку активности с помощью ping/pong (показана в примерах повторного подключения выше)
  • Проверьте стабильность сети и настройки корпоративного межсетевого экрана
  • Следите за количеством подписок: слишком большое их число может привести к нестабильности
  • Убедитесь, что правильно обрабатываете жизненный цикл подключения
Признаки: ожидаемые обновления подписки не поступаютРешения:
  • Убедитесь, что подписка подтверждена (проверьте ответ)
  • Убедитесь, что в отслеживаемом аккаунте или программе действительно есть активность
  • Следите за состоянием подключения: пропущенные сообщения часто указывают на разрывы
Признаки: медленная доставка сообщений и задержки обновленийРешения:
  • Используйте уровень подтверждения «confirmed» вместо «finalized»
  • Уменьшите количество активных подписок
  • Оптимизируйте логику обработки сообщений
  • Рассмотрите возможность распределения нагрузки между несколькими подключениями
  • Проверьте качество сетевого подключения
Признаки: объем используемой приложением памяти со временем увеличиваетсяРешения:
  • Реализуйте корректную очистку подписок
  • Удаляйте обработчики событий при размонтировании компонентов
  • Периодически очищайте журналы сообщений
  • Отслеживайте количество подписок и применяйте ограничения
  • По возможности используйте слабые ссылки для функций обратного вызова

Переход со стандартного RPC

Если вы сейчас используете опрос через HTTP, перейдите на WebSocket следующим образом:

Расширенные возможности

Если вашему приложению нужны еще более продвинутые возможности, рассмотрите LaserStream gRPC:

24-Hour Historical Replay

Получайте пропущенные данные после периода, когда приложение было отключено

Multi-Node Aggregation

Повышайте надежность за счет данных от нескольких валидаторов

Higher Throughput

Обрабатывайте больше подписок и повышенный поток сообщений

Enterprise Features

Расширенный мониторинг, аналитика и конвейеры обработки данных

Начало работы

Готовы начать? Практические примеры и пошаговые инструкции по реализации приведены в нашем руководстве по быстрому запуску WebSocket.

Руководства

Пошаговые руководства с готовым к запуску кодом доступны на странице руководств по LaserStream WebSocket.