
Представляем Enhanced WebSockets нового поколения
Содержание
- Проблемы WebSockets и приложений реального времени
- 1. Нестабильность соединений и высокая нагрузка
- 2. Избыточный поток данных
- 3. Масштабирование и расход ресурсов
- 4. Время разработчиков уходит не на развитие продукта
- Enhanced WebSockets нового поколения
- Максимальная устойчивость
- Высокая производительность
- Потоки, оптимизированные для frontend
- Выбор подходящего решения для потоковой передачи: сравнение
- Enhanced WebSockets
- LaserStream
- Shred Delivery
- Быстрый старт с Enhanced WebSockets
- Эндпоинты
- Пример: мониторинг новых пулов Raydium Launchpad
- Тарифы и учет использования
- Улучшите свои потоки уже сегодня
Потоковая передача данных в реальном времени необходима для создания отзывчивых приложений на Solana. WebSockets уже давно служат основным протоколом для постоянного двунаправленного обмена данными, заменяя неэффективный HTTP-опрос единым соединением.
Хотя WebSockets предпочтительнее традиционного HTTP-опроса, они создают ряд проблем, способных снизить надежность. Это особенно критично в средах с высокой пропускной способностью, таких как Solana. Случайные разрывы соединений, недостаточная фильтрация и другие проблемы вынуждали разработчиков тратить много времени и сил на собственные решения, часто в ущерб развитию ключевых функций продукта.
В Helius мы давно знаем об этих проблемах. Ранее мы представили Enhanced WebSockets — более быстрый и гибко настраиваемый способ потоковой передачи обновлений транзакций и аккаунтов. Но по мере развития нашей инфраструктуры стало ясно, что даже эти улучшения не обеспечивают тот уровень устойчивости и производительности, который возможен с Helius.
Мы рады сообщить, что теперь Enhanced WebSockets работают на той же инфраструктуре, что и LaserStream — наш сервис потоковой передачи данных нового поколения на базе gRPC, созданный для высокой скорости, простоты и отказоустойчивости.
Эта интеграция обеспечивает потокам WebSocket надежность уровня gRPC в нативном формате JSON, устраняет нестабильные соединения и позволяет frontend-разработчикам сосредоточиться на создании максимально удобного интерфейса.
Проблемы WebSockets и приложений реального времени
WebSockets обещают магию постоянного двунаправленного обмена данными: одно соединение для push-уведомлений вместо непрерывного опроса HTTP-эндпоинтов. Звучит привлекательно, но у WebSockets есть свои проблемы:
1. Нестабильность соединений и высокая нагрузка
WebSockets поддерживают длительные TCP-соединения с сохранением состояния. Поэтому они подвержены разрывам из-за кратковременных сетевых сбоев, тайм-аутов прокси или перегрузки серверов.
Слоты Solana длительностью 400 мс и скачкообразный трафик усиливают уязвимости WebSocket. Поэтому для поддержания доступности разработчикам приходится реализовывать собственную логику переподключения, например экспоненциальную задержку повторных попыток и heartbeat-запросы.
2. Избыточный поток данных
Подписки WebSocket часто возвращают слишком много данных.
Нативные подписки, такие как accountSubscribe, передают нефильтрованные потоки, перегружая разработчиков лишними данными. В результате приходится фильтровать данные на стороне клиента, что может увеличить расход трафика и задержки обработки.
3. Масштабирование и расход ресурсов
Обработка тысяч одновременных соединений создает нагрузку на серверные ресурсы. Это приводит к утечкам памяти, ограничениям CPU, усложнению балансировки нагрузки и необходимости шардировать соединения для распределения нагрузки.
Горизонтально масштабировать WebSockets крайне сложно, и у большинства команд нет времени, ресурсов или опыта, чтобы довести этот процесс до совершенства.
4. Время разработчиков уходит не на развитие продукта
В совокупности эти проблемы отнимают ресурсы у разработки новых уникальных функций и приложений. Такая неэффективность становится скрытым налогом на прогресс в быстро меняющейся экосистеме Solana.
Из-за этих постоянных проблем стандартные WebSockets Solana не подходят для промышленных приложений, где даже кратчайший сбой может привести к упущенным возможностям или устаревшим данным в интерфейсе.
Enhanced WebSockets нового поколения
Чтобы устранить эти недостатки, мы представили Enhanced WebSockets — улучшенную с помощью Geyser версию стандартных WebSockets Solana для более эффективных подписок на аккаунты и транзакции.
В ней появились мощные фильтры (например, до 50 000 адресов через accountInclude, accountExclude и accountRequired) и более высокая скорость отклика по сравнению с традиционными WebSockets. Однако с момента первоначального запуска наша инфраструктура потоковой передачи данных стала значительно лучше.
Теперь Enhanced WebSockets работают на той же инфраструктуре, что и LaserStream — наш сервис потоковой передачи данных нового поколения на базе gRPC, созданный для высокой скорости, надежности и простоты.
Получите надежность gRPC в оболочке WebSocket.
Ключевые улучшения:
Максимальная устойчивость
Теперь Enhanced WebSockets одновременно передают данные с нескольких объединенных нод и автоматически переключаются при сбоях. Это повышает устойчивость, устраняя единые точки отказа и обеспечивая максимальную доступность.
Высокая производительность
LaserStream специально разработан для потоковой передачи данных со сверхнизкой задержкой. Теперь Enhanced WebSockets также используют наши новейшие улучшения, обеспечивая максимально быструю доставку уведомлений.
Потоки, оптимизированные для frontend
Полезные нагрузки JSON в Enhanced WebSockets, работающие на обновленной инфраструктуре, позволяют frontend-разработчикам напрямую интегрировать высокоточные потоки в браузеры, приложения React и мобильные клиенты.
Выбор подходящего решения для потоковой передачи: сравнение
В Helius есть несколько сервисов потоковой передачи данных для разных сценариев. Ниже мы описали каждый из них.
Enhanced WebSockets
Разработчикам следует использовать Enhanced WebSockets, если:
- Задержка, непрерывность и корректность не влияют на PnL, исполнение сделок или риски
- Вам нужны полезные нагрузки JSON
- Вы хотите улучшить пользовательский интерфейс без усложнения backend
| Сценарий использования | Примеры |
| Пользовательский интерфейс реального времени | - Балансы кошельков - Панели управления портфелем - Уведомления в приложении - Пользовательский интерфейс |
LaserStream
Разработчикам следует использовать LaserStream, если:
- Важна каждая миллисекунда
- Задержка, непрерывность и корректность влияют на PnL, исполнение сделок и/или риски
- Вам нужны более продвинутые возможности фильтрации
- Вам нужна доставка без пропусков с автоматическим повторным воспроизведением
- Вам нужно получать транзакции на разных уровнях подтверждения
| Сценарий использования | Примеры |
| Событийная обработка на backend | - Системы торговли и управления рисками - Мониторинг цен и потока ордеров - Отслеживание ликвидаций - Системы для работы с несколькими площадками |
Запросите бесплатный пробный доступ, чтобы узнать, подходит ли вам LaserStream.
Shred Delivery
Разработчикам следует использовать Shred Delivery, если:
- Вам нужны необработанные сигналы
- У вас есть или вы можете создать собственный конвейер сборки шредов
Если вам нужна задержка на уровне шредов, но у вас нет конвейера их сборки, Preprocessed Transactions передает декодированные шреды через WebSocket.
| Сценарий использования | Примеры |
| Получение сигналов со сверхнизкой задержкой | - Высокочастотная торговля - Арбитраж между площадками - Снайпинг токенов |
Подведем итог:
- Используйте Enhanced WebSockets для некритичных потоков, удобных для frontend.
- Используйте LaserStream для циклов принятия решений на backend, где задержки или непрерывность данных напрямую влияют на возможности.
- Используйте Shred Delivery, если у вас есть собственный конвейер сборки шредов и вам нужны самые ранние сигналы из необработанных шредов.
Запросите бесплатный пробный доступ, чтобы узнать, подходит ли вам Shred Delivery.
Быстрый старт с Enhanced WebSockets
Начать работу с Enhanced WebSockets очень просто.
Для начала зарегистрируйтесь и получите ключ API в разделе «API Keys».
Просто подключитесь к одному из наших эндпоинтов, оформите подписку через transactionSubscribe или accountSubscribe и начните получать фильтрованные устойчивые потоки.
Enhanced WebSockets доступны на тарифах Business и выше. Стандартные WebSockets Solana доступны как на бесплатных, так и на платных тарифах.
Эндпоинты
- Mainnet:
wss://atlas-mainnet.helius-rpc.com/?api-key=<YOUR_API_KEY> - Mainnet (Gatekeeper Beta):
wss://beta.helius-rpc.com/?api-key=<YOUR_API_KEY> - Devnet:
wss://atlas-devnet.helius-rpc.com/?api-key=<YOUR_API_KEY>
Пример: мониторинг новых пулов Raydium Launchpad
Следующий скрипт Node.js — простой пример использования Enhanced WebSockets в промышленной среде. Он подписывается на программу Launchpad от Raydium через transactionSubscribe и с помощью разбора логов фильтрует успешные инициализации пулов:
import WebSocket from 'ws';
const API_KEY = process.env.HELIUS_API_KEY; // Set your API key as an env var
const WS_URL = `wss://atlas-mainnet.helius-rpc.com/?api-key=${API_KEY}`;
const
RAYDIUM_LAUNCHPAD_PROG
= '
LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj
';
const ws = new WebSocket(WS_URL);
ws.on('open', () => {
console.log('Connected to LaserStream-Powered Enhanced WebSockets!');
ws.send(JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'transactionSubscribe',
params: [
{
failed: false,
accountInclude: [
RAYDIUM_LAUNCHPAD_PROG
]
},
{
commitment: 'confirmed',
encoding: 'jsonParsed',
transactionDetails: 'full',
maxSupportedTransactionVersion: 0
}
]
}));
// Optional heartbeat ping
setInterval(() => {
if (ws.readyState === WebSocket.OPEN) {
ws.send(JSON.stringify({ jsonrpc: '2.0', id: Date.now(), method: 'ping' }));
}
}, 30000);
});
ws.on('message', (data) => {
try {
const payload = JSON.parse(data.toString());
const result = payload.params?.result;
if (!result) return;
// Filter for init logs
const logs = result.transaction.meta.logMessages || [];
if (!logs.some(log => log.includes('Instruction: Initialize'))) return;
const keys = result.transaction.transaction.message.accountKeys.map(k => k.pubkey);
console.table({
Signature: result.signature,
Creator: keys[1], // From IDL: accounts[1] is creator
BaseMint: keys[7], // From IDL: base_mint is around index 7 in initialize accounts
Slot: result.slot
});
} catch (err) {
console.error('Message parse error:', err);
}
});
ws.on('error', (err) => console.error('WebSocket error:', err));
ws.on('close', () => {
console.log('Disconnected');
});
Запустите приведенный выше код командой:
export HELIUS_API_KEY=your-api-key-here
node raydium-launchpad-stream.jsЭтот скрипт будет выводить в консоль таблицу недавно запущенных пулов и обеспечивать доставку без пропусков даже при высокой нагрузке.
Тарифы и учет использования
В рамках постоянных инвестиций в снижение задержки и повышение надежности с 16 октября 2025 года в новых тарифах использование Enhanced WebSockets учитывается по той же ставке, что и LaserStream: 3 кредита за каждые 0,1 МБ переданных данных.
Владельцы тарифов Professional могут приобрести дополнительный объем данных по фиксированной ставке и использовать его для потоковой передачи данных через Enhanced WebSockets или LaserStream.
Если вы уже используете существующий тариф, его цена, лимиты и порядок оплаты не изменятся. Никаких действий не требуется.
Стандартные WebSockets не изменились и доступны как на бесплатных, так и на платных тарифах.
Улучшите свои потоки уже сегодня
Надежность, производительность и простота — ваши потоки готовы масштабироваться вместе с вами. Начните создавать решения с Enhanced WebSockets уже сегодня. Зарегистрируйтесь, получите ключ API и оцените надежность интерфейсов.
Передавайте данные эффективнее, внедряйте инновации быстрее.
Похожие статьи
Подпишитесь на Helius
Следите за новостями разработки на Solana и получайте уведомления о наших публикациях


