Dellows News

Solana Stream SDK v4.0.0公開、受信処理と接続復旧を高速化

ELSOUL LABO B.V.とValidators DAOは、Solanaのストリーミングデータを扱うオープンソースのSolana Stream SDK v4.0.0を、2026年11月6日に正式公開しました。ローカルベンチマークにおいて、RustのUDP Shreds内部処理で約108倍、TypeScriptのイベントキューで約4倍の改善を確認したほか、Geyser gRPCの切断後の受信再開も高速化しています。本SDKは無料で利用でき、RustおよびTypeScriptのサンプルから開発を始められます。

低遅延のデータ配信を活かすため、新バージョンでは受信後の内部処理が効率化され、接続復旧の挙動も見直されました。ERPC Shreds UDP Forwarding Premiumと組み合わせることにより、配信経路と受信側実装の両面から受信環境を整えることが可能です。

受信処理と接続復旧の改善を3つの試験で確認

RustのUDP受信経路では、データグラムのデコード、内部バッファへの挿入、Shredsからデータを復元するdeshredまでの処理を高速化しました。内部状態の整理や時刻取得を見直すことで、データの保持期限を維持しながら処理負荷を低減しています。Apple M-seriesのMacで300スロット分、合計403,200データグラムを処理した5回の試験(中央値)では、1データグラムあたりの内部処理時間が94,236nsから855〜881nsへ短縮され、約108倍の高速化が確認されました。なお、この測定はdecode→insert→deshredの内部処理が対象であり、ネットワークの到達時間や利用者の後段処理は含まれません。

TypeScriptのGeyserクライアントでは待機処理を削減し、受信データの取り出しを効率化しました。Node.js 24で200万イベントを処理した単体試験では、処理性能が毎秒570万〜740万イベントから毎秒2,480万〜2,940万イベントへ向上し、約4倍のスループットを記録しています。

Geyser gRPCにおいては、再接続を扱うクライアントと初回の再試行間隔を更新しました。ローカルのtonicサーバーで20回の切断を発生させた試験では、更新データの受信間隔の中央値が3.0 runnerの552msから4.0 runnerの103msへと短縮されました。

Alpenglow対応の継続とクライアント更新

ブロックマーカーとentriesを区別して扱うAlpenglow対応の構成は、v3.0.0からv4.0.0へと継承されています。これにより、ブロック構造に関する情報と処理対象のentriesを分けて扱うことが可能です。

v4.0.0ではAgave 4.4.1およびYellowstone gRPC 17系のクライアントへ更新されました。再接続時には、受信が途中になったデータの識別情報と再開位置をDisconnectedイベントでアプリケーションへ通知できるようになり、再送データの重複や途中受信データの処理に活用できます。また、Geyserのprotobuf定義を維持しつつ、再接続イベントやRust側のSolana message・transaction型が更新されています。

提供言語と接続方式

公開済みのRustパッケージsolana-stream-sdkと、TypeScriptパッケージ@validators-dao/solana-stream-sdkでv4.0.0が利用可能です。接続方式ごとの対応言語は以下の通りです。

  • Shreds UDP:Rust
  • Geyser gRPC:Rust・TypeScript
  • Shreds gRPC:Rust・TypeScript

UDPでShredsを受信する場合はRust向けクライアントを使用し、サンプル・スターターを通じて受信や復元、命令検出を試すことができます。TypeScriptではGeyser gRPCまたはShreds gRPCを利用でき、今回のイベントキュー改善はGeyser gRPCのサンプルとスターターに反映されています。

Shreds UDP Forwarding Premiumとの連携

複数ノードをメッシュで結んで先着データを配信するERPC Shreds UDP Forwarding Premiumと組み合わせることで、届いたデータの処理を効率的に行えます。2026年10月30日にフランクフルトで実施された試験(同じマシン・同じ時計で120秒間同時取得)では、UDPペイロードが一致する共通集合においてPremiumが98%で先着し、到着差の中央値は1.78msでした。なお、Standardで観測したデータのうちPremiumでも観測できた割合は93.9%となっています。

Shreds UDP Forwarding Premiumは、1時間あたり€1.39の時間課金で利用可能です。ダッシュボードに公開IPv4アドレスとUDPポートを登録し、送信元からの受信を許可することで利用を開始できます。

関連リンク

  • Rust UDPサンプル・スターター: https://github.com/ValidatorsDAO/solana-stream/tree/main/temp-release/shreds-udp-rs
  • Solana Stream SDK v4移行ガイド: https://github.com/ValidatorsDAO/solana-stream/blob/main/docs/migration-v4.md
  • SDKの性能改善と検証記録: https://github.com/ValidatorsDAO/solana-stream/pull/129
  • Shreds UDP Forwardingドキュメント: https://erpc.global/ja/doc/shredstream/udp-forwarding/
  • Shreds UDP Forwarding Premiumの利用: https://dashboard.erpc.global/ja/user/shreds?plan=udp
  • ERPC料金: https://erpc.global/ja/price/

本記事はELSOUL LABO B.V.およびValidators DAOの発表をもとに作成されています。

アクセスランキング

今日

1週間