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

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

2025.12.10
ELSOUL LABO B.V. (штаб-квартира: Амстердам, Нидерланды; CEO: Fumitake Kawasaki) и Validators DAO выпустили новые версии open-source Solana Stream SDK, полностью обновлённые для поддержки Solana v3. Обновлены и Rust, и TypeScript editions, чтобы разработчики получили надёжный и быстрый доступ к real-time data streams Solana, включая Shreds и Geyser gRPC, в наступающую эпоху Alpenglow.
Rust crate solana-stream-sdk теперь поддерживает Solana v3 в версии 0.6.1, а TypeScript / Node.js package @validators-dao/solana-stream-sdk обновлён до версии 0.12.0. Вместе они формируют единый фундамент для high-performance stream processing по мере перехода Solana к следующему поколению архитектуры.

Почему Solana v3 и Alpenglow требуют обновления клиентской стороны

Solana v3 означает большой переход к новой consensus architecture Alpenglow. Alpenglow заменяет текущую комбинацию TowerBFT + Proof of History на переработанный consensus path, рассчитанный на резкий рост отзывчивости сети. Ожидается, что при Alpenglow finality сократится примерно с 12 секунд до 100-150 миллисекунд.
Это фундаментально меняет и темп block production, и характер распространения real-time data по сети.
Одновременно возрастает и нагрузка на validators и RPC operators: появляются более частые build cycles и обновления конфигурации. Validators DAO уже модернизирует server-side environment через SLV, но этот переход подчёркивает ещё один важный момент:
Client software тоже должен перейти на v3, иначе выигрыш сети по производительности не удастся раскрыть полностью.
Особенно это касается real-time streams вроде Shreds и Geyser gRPC. Clients, которые не следуют новым спецификациям и особенностям runtime, начинают накапливать latency и терять согласованность данных. По мере того как RPC nodes и validators переходят на v3, клиенты тоже должны обновляться параллельно.
Именно эту задачу и решает обновление Solana Stream SDK: закрыть разрыв и дать готовый фундамент для real-time applications в эпоху Alpenglow.

Что нового в Solana Stream SDK v0.6.1 (Rust) и v0.12.0 (TypeScript)

Solana Stream SDK с самого начала проектировался так, чтобы одинаково хорошо работать и с Shreds, и с Geyser gRPC. В этом релизе он получил ряд улучшений для стабильной работы на Solana v3 и готовности к runtime нового поколения.

Rust crate v0.6.1

Rust edition остаётся high-performance reference implementation для traders, indexers и любых real-time workloads, где нужен максимум throughput. В обновлении:
  • Добавлена поддержка protocol changes в серии Solana v3
  • Улучшена обработка Shreds и Geyser gRPC streams через asynchronous runtime Rust
  • Переработан wrapper вокруг protobuf definitions, связанных с Shreds, чтобы stream-processing logic было проще реализовывать
  • Multi-threaded execution paths дополнительно настроены так, чтобы минимизировать накопление latency даже под устойчиво высокой нагрузкой
Rust edition особенно подходит пользователям, которым важно максимально полно раскрыть и Shreds, и Geyser gRPC.

TypeScript / Node.js v0.12.0

TypeScript edition спроектирован так, чтобы сохранить ergonomics Node.js-разработки, но при этом использовать Rust-powered stream processing под капотом. В версии v0.12.0:
  • Сохраняется событийно-ориентированный интерфейс, включая emitter.on, без ломающих изменений
  • Внутренний stream handling переведён на связку Rust + NAPI-RS, поэтому Node.js теперь может надёжно обрабатывать Shreds там, где @grpc/grpc-js уже начинает упираться
  • Обновлена обработка и Geyser gRPC, и Shreds streams для полной совместимости с Solana v3
Для большинства пользователей upgrade до v0.12.0 означает всего лишь повышение версии в package.json, без изменений application code.

Почему Node.js в одиночку не справляется с Shreds

ShredStream - это самый быстрый и самый плотный по частоте слой данных во всей экосистеме Solana. Он даёт уникальную видимость в реальном времени, но и предъявляет очень высокие требования к processing throughput со стороны client.
Node.js-clients на базе @grpc/grpc-js упираются в структурные bottlenecks:
  • Event loop остаётся single-threaded, поэтому protobuf deserialization и user callbacks блокируют друг друга
  • При быстром поступлении сообщений JavaScript thread насыщается и очередь начинает накапливаться
  • HTTP/2 flow control сужает окно приёма по мере заполнения буферов, затем stream приостанавливается, и это часто выглядит как «сеть стала медленной» или «данные перестали идти»
Во многих случаях проблема не в самой сети и не в ShredStream server, а в том, что Node.js client просто не успевает внутри себя.
Это встроенное ограничение Node.js, если пытаться обрабатывать unfiltered Shreds на полном потоке.
Именно здесь помогает Rust + NAPI-RS.

Как Rust + NAPI-RS ускоряет stream processing в Node.js

TypeScript edition Solana Stream SDK выносит тяжёлую работу в Rust, сохраняя знакомые JavaScript APIs.
  • Управление gRPC connections, приём streams и protobuf deserialization выполняются асинхронно в Rust
  • В Node.js данные приходят уже в форме стандартного stream или event emitter, поэтому существующий code можно оставить почти без изменений
  • NAPI-RS минимизирует overhead между Rust и Node.js и позволяет получить настоящий multi-threaded throughput за JavaScript interface
За счёт этого приложения на Solana Stream SDK могут обрабатывать заметно больший объём Shreds и Geyser gRPC, чем чистый Node.js-подход с @grpc/grpc-js, и при этом удерживать более стабильную latency под высокой нагрузкой.

Почему важно поддерживать и Shreds, и Geyser gRPC в одном SDK

Real-time data в Solana естественным образом делятся на два взаимодополняющих слоя:
  • Shreds
    Самый ранний и самый низколатентный слой, который исходит почти непосредственно от leader
  • Geyser gRPC
    Структурированные streams slots, transactions и account updates, которые дают удобную и предсказуемую модель данных
Solana Stream SDK позволяет начинать с Geyser gRPC, чтобы разобраться в данных и логике, а затем переходить к Shreds для ultra-low-latency use cases - без смены инструментов и без переписывания pipeline.
По мере того как Alpenglow ускоряет block production и confirmation, именно такой dual-layer подход становится ещё более важным.

С чего начать: ресурсы и тестовые окружения

Solana Stream SDK остаётся полностью open-source, а sample code и для Shreds, и для Geyser gRPC открыт на GitHub.
Для тестов в условиях, близких к реальной эксплуатации, ERPC предоставляет one-day free trial для high-performance ShredStream и Geyser gRPC endpoints, что позволяет проверить поведение v3 на инфраструктуре production-класса.
Официальный сайт ERPC: https://erpc.global/

Присоединяйтесь к сообществу Validators DAO

Вопросы, обратная связь и обсуждения Solana v3, Alpenglow, real-time stream design и дальнейших улучшений SDK приветствуются в сообществе Validators DAO.
Официальный Discord Validators DAO: https://discord.gg/C7ZQSrCkYR
По мере того как Solana входит в эпоху Alpenglow, её сеть будет выходить на новый уровень real-time performance. Validators DAO и ELSOUL LABO продолжат выпускать качественные open-source tools, чтобы разработчики могли строить следующее поколение real-time applications на Solana.
Спасибо за вашу поддержку.