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

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

Solana Stream SDK полностью обновлён для перехода на Solana v3
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.
Спасибо за вашу поддержку.