Solana Stream SDK полностью обновлён для перехода на Solana v3

ELSOUL LABO B.V. (штаб-квартира: Амстердам, Нидерланды; генеральный директор: Fumitake Kawasaki) и Validators DAO выпустили новые версии Solana Stream SDK с открытым исходным кодом и полной поддержкой Solana v3. Реализации на Rust и TypeScript обновлены для надёжного высокопроизводительного доступа к потокам данных Solana в реальном времени, включая Shreds и Geyser gRPC, в наступающую эпоху Alpenglow.
Крейт Rust
solana-stream-sdk получил поддержку Solana v3 в версии 0.6.1, а пакет TypeScript / Node.js @validators-dao/solana-stream-sdk обновлён до версии 0.12.0. Вместе они образуют единую основу для высокопроизводительной обработки потоков при переходе Solana к архитектуре следующего поколения.Почему Solana v3 и Alpenglow требуют обновления клиентской стороны
Solana v3 означает крупный переход к новой архитектуре консенсуса Alpenglow. Alpenglow заменяет существующую комбинацию TowerBFT и Proof of History переработанным механизмом консенсуса, призванным значительно повысить отзывчивость сети. Ожидается, что финализация при Alpenglow сократится примерно с нынешних 12 секунд до 100–150 миллисекунд.
Это принципиально меняет темп производства блоков и характер распространения данных по сети в реальном времени.
Одновременно растут эксплуатационные требования к валидаторам и операторам RPC: циклы сборки и обновления конфигурации становятся чаще. Validators DAO модернизирует серверную среду с помощью SLV, но переход также подчёркивает критически важный момент:
Клиентское ПО тоже должно перейти на v3, иначе преимущества новой сети по производительности не удастся раскрыть полностью.
Особенно это относится к потокам реального времени, таким как Shreds и Geyser gRPC. Клиенты, которые не учитывают новые спецификации и особенности среды выполнения, со временем накапливают задержку или теряют согласованность. Поэтому клиентское ПО должно обновляться параллельно с переходом RPC-узлов и валидаторов на v3.
Обновление Solana Stream SDK устраняет этот разрыв и предоставляет готовую основу для приложений реального времени в эпоху Alpenglow.
Что нового в Solana Stream SDK v0.6.1 (Rust) и v0.12.0 (TypeScript)
Solana Stream SDK с самого начала проектировался для поддержки Shreds и Geyser gRPC. В этом релизе SDK получил ряд улучшений для стабильной работы с Solana v3 и готовности к среде выполнения на основе Alpenglow.
Крейт Rust v0.6.1
Реализация на Rust служит высокопроизводительным эталоном для трейдеров, индексаторов и других нагрузок реального времени, которым нужна максимальная пропускная способность. Основные изменения:
- Добавлена поддержка изменений протокола в серии Solana v3
- Shreds и потоки Geyser gRPC эффективно обрабатываются в асинхронной среде Rust
- Доработана оболочка над связанными с Shreds определениями protobuf, упрощающая реализацию потоковой обработки
- Многопоточные пути выполнения оптимизированы, чтобы свести к минимуму накопление задержки даже при длительной высокой нагрузке
Реализация на Rust рекомендуется пользователям, которым нужна максимальная производительность Shreds и Geyser gRPC.
TypeScript / Node.js v0.12.0
Реализация на TypeScript сохраняет удобство разработки на Node.js, но переносит внутреннюю потоковую обработку в Rust. В версии v0.12.0:
- Сохраняется событийно-ориентированный интерфейс, включая
emitter.on, без ломающих изменений - Внутренняя обработка потоков переведена на связку Rust + NAPI-RS, поэтому Node.js может надёжно обрабатывать Shreds там, где
@grpc/grpc-jsдостигает своих пределов - Обработка потоков Geyser gRPC и Shreds обновлена для совместимости с Solana v3
Большинству пользователей для перехода на v0.12.0 достаточно повысить версию в package.json: изменять код приложения не требуется.
Почему Node.js в одиночку не справляется с Shreds
ShredStream — источник данных Solana с наименьшей задержкой и наибольшей частотой. Shreds позволяют увидеть активность сети раньше всего, но требуют от клиента очень высокой пропускной способности обработки.
Клиенты Node.js на базе
@grpc/grpc-js сталкиваются со структурными ограничениями:- Цикл событий однопоточен, поэтому десериализация protobuf и пользовательские обратные вызовы блокируют друг друга
- При быстром поступлении сообщений поток JavaScript перегружается, и очередь начинает расти
- По мере заполнения буферов управление потоком HTTP/2 сокращает окно приёма, а затем приостанавливает поток, что выглядит как «замедление сети» или «отсутствие данных»
Во многих наблюдавшихся случаях проблема была не в сети и не в сервере ShredStream, а в том, что клиент Node.js не успевал обрабатывать данные.
Это ограничение присуще Node.js при масштабной обработке нефильтрованного потока Shreds.
Именно здесь помогает Rust + NAPI-RS.
Как Rust + NAPI-RS ускоряют потоковую обработку в Node.js
Реализация Solana Stream SDK на TypeScript переносит тяжёлую работу в Rust, сохраняя знакомые API JavaScript.
- Управление gRPC-соединениями, приём потоков и десериализация protobuf выполняются асинхронно в Rust
- Node.js получает обработанные данные как стандартный поток или эмиттер событий, поэтому существующий код продолжает работать без изменений
- NAPI-RS сводит к минимуму накладные расходы между Rust и Node.js и обеспечивает полноценную многопоточную обработку за JavaScript-интерфейсом
Благодаря этому приложения на Solana Stream SDK могут обрабатывать значительно больший объём Shreds и Geyser gRPC, чем решения только на Node.js с
@grpc/grpc-js, сохраняя стабильную задержку даже при высокой нагрузке.Почему важно поддерживать и Shreds, и Geyser gRPC в одном SDK
Данные Solana в реальном времени можно разделить на два взаимодополняющих слоя:
- Shreds Фрагменты с минимальной задержкой, поступающие непосредственно от лидера и позволяющие раньше всего увидеть активность сети
- Geyser gRPC Структурированные потоки слотов, транзакций и обновлений аккаунтов с удобной и предсказуемой моделью данных
Solana Stream SDK позволяет начать с Geyser gRPC, чтобы изучить структуры данных, а затем перейти к Shreds в сценариях со сверхнизкой задержкой — без смены инструментов и переписывания конвейера.
По мере того как Alpenglow ускоряет производство и подтверждение блоков, такой двухуровневый подход становится ещё ценнее.
С чего начать: ресурсы и тестовые окружения
Исходный код Solana Stream SDK полностью открыт, а примеры для Shreds и Geyser gRPC доступны на GitHub.
Rust Crate (v0.6.1): https://crates.io/crates/solana-stream-sdk
npm (TypeScript, v0.12.0): https://www.npmjs.com/package/@validators-dao/solana-stream-sdk
GitHub - Solana Stream SDK: https://github.com/ValidatorsDAO/solana-stream
Для испытаний в реальных условиях ERPC предоставляет однодневный бесплатный доступ к высокопроизводительным эндпоинтам ShredStream и Geyser gRPC, позволяя проверить поведение v3 на инфраструктуре промышленного класса.
Официальный сайт ERPC: https://erpc.global/ru/
Присоединяйтесь к сообществу Validators DAO
В сообществе Validators DAO можно обсудить Solana v3, Alpenglow, архитектуру потоков реального времени и дальнейшие улучшения SDK, а также задать вопросы и оставить обратную связь.
Официальный Discord Validators DAO: https://discord.gg/C7ZQSrCkYR
С переходом Solana в эпоху Alpenglow сеть выйдет на новый уровень производительности в реальном времени. Validators DAO и ELSOUL LABO продолжат выпускать качественные инструменты с открытым исходным кодом для нового поколения приложений реального времени на Solana.
Спасибо за вашу поддержку.









