Что такое 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, доступны на всех тарифах.Основные понятия
Типы подписок
Account Subscriptions
Account Subscriptions
Отслеживайте изменения определенных аккаунтов, например балансов кошельков, аккаунтов токенов или данных программ.Примеры использования:
- Отслеживание баланса кошелька
- Мониторинг аккаунтов токенов
- Изменения состояния смарт-контрактов
- Обновления сведений о владении NFT
Program Subscriptions
Program Subscriptions
Отслеживайте любые изменения во всех аккаунтах, принадлежащих определенной программе.Примеры использования:
- Мониторинг сделок на DEX
- Отслеживание протоколов DeFi
- Отслеживание активности на маркетплейсах NFT
- Изменения игровых активов
Transaction Subscriptions
Transaction Subscriptions
Получайте уведомления о подтверждении определенных транзакций или о транзакциях, в которых упоминаются конкретные аккаунты.Примеры использования:
- Подтверждение платежей
- Отслеживание статуса транзакций
- Подтверждения с несколькими подписями
- Мониторинг выполнения контрактов
Slot Subscriptions
Slot Subscriptions
Отслеживайте развитие блокчейна и окончательность на уровне слотов.Примеры использования:
- Приложения для просмотра блокчейна
- Мониторинг состояния сети
- Отслеживание консенсуса
- Анализ производительности
Уровни подтверждения
Понимание уровней подтверждения критически важно для надежной работы приложений:- Processed
- Confirmed
- Finalized
Самый быстрый — транзакция обработана валидатором, но не подтверждена
- Задержка: ~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 могут разрываться по разным причинам: из-за проблем с сетью, технического обслуживания сервера или временных сбоев. В рабочих приложениях обязательно реализуйте логику повторного подключения, чтобы обеспечить надежность.Причины разрывов подключения
Network Issues
Network Issues
- Проблемы с подключением к интернету
- Переключение между сетями Wi-Fi на мобильных устройствах
- Истечение времени ожидания корпоративного межсетевого экрана
- Изменения маршрутизации у интернет-провайдера
Server-Side Events
Server-Side Events
- Плановые периоды технического обслуживания
- Перезапуск балансировщиков нагрузки
- Обновления узлов RPC
- Временная защита от перегрузки
Client-Side Issues
Client-Side Issues
- Перевод вкладки браузера в фоновый режим
- Приостановка мобильного приложения
- Переход компьютера в спящий режим или режим гибернации
- Сбои или перезапуски процесса
Обнаружение разрывов подключения
- JavaScript/Browser
- Node.js
Стратегии повторного подключения
- Exponential Backoff
- Circuit Breaker Pattern
Тестирование логики повторного подключения
- Network Simulation
- Automated Testing
Устранение неполадок
Connection Failed
Connection Failed
Признаки: не удается установить первоначальное подключение WebSocketРешения:
- Убедитесь, что ваш ключ API указан правильно и на балансе достаточно кредитов
- Проверьте формат URL конечной точки:
wss://mainnet.helius-rpc.com?api-key=YOUR_KEY - Убедитесь, что межсетевой экран разрешает подключения WebSocket через порт 443
- Сначала отправьте простой ping-запрос, чтобы проверить базовое подключение
Frequent Disconnections
Frequent Disconnections
Признаки: подключение разрывается каждые несколько минутРешения:
- Для WebSocket действует 10-минутный таймер бездействия. Отправляйте ping-запрос не реже одного раза в минуту, чтобы сохранять подключение активным (см. примеры повторного подключения выше и часто задаваемые вопросы о WebSocket)
- Реализуйте корректную проверку активности с помощью ping/pong (показана в примерах повторного подключения выше)
- Проверьте стабильность сети и настройки корпоративного межсетевого экрана
- Следите за количеством подписок: слишком большое их число может привести к нестабильности
- Убедитесь, что правильно обрабатываете жизненный цикл подключения
Missing Messages
Missing Messages
Признаки: ожидаемые обновления подписки не поступаютРешения:
- Убедитесь, что подписка подтверждена (проверьте ответ)
- Убедитесь, что в отслеживаемом аккаунте или программе действительно есть активность
- Следите за состоянием подключения: пропущенные сообщения часто указывают на разрывы
High Latency
High Latency
Признаки: медленная доставка сообщений и задержки обновленийРешения:
- Используйте уровень подтверждения «confirmed» вместо «finalized»
- Уменьшите количество активных подписок
- Оптимизируйте логику обработки сообщений
- Рассмотрите возможность распределения нагрузки между несколькими подключениями
- Проверьте качество сетевого подключения
Memory Leaks
Memory Leaks
Признаки: объем используемой приложением памяти со временем увеличиваетсяРешения:
- Реализуйте корректную очистку подписок
- Удаляйте обработчики событий при размонтировании компонентов
- Периодически очищайте журналы сообщений
- Отслеживайте количество подписок и применяйте ограничения
- По возможности используйте слабые ссылки для функций обратного вызова
Переход со стандартного RPC
Если вы сейчас используете опрос через HTTP, перейдите на WebSocket следующим образом:Расширенные возможности
Если вашему приложению нужны еще более продвинутые возможности, рассмотрите LaserStream gRPC:24-Hour Historical Replay
Получайте пропущенные данные после периода, когда приложение было отключено
Multi-Node Aggregation
Повышайте надежность за счет данных от нескольких валидаторов
Higher Throughput
Обрабатывайте больше подписок и повышенный поток сообщений
Enterprise Features
Расширенный мониторинг, аналитика и конвейеры обработки данных