おたくま経済新聞

ネットでの話題を中心に、商品レビューや独自コラム、取材記事など幅広く配信中!

リリースプラス

Solana Stream SDK、Solana v3 アップグレードへの正式対応を完了

update:
ELSOUL LABO B.V.
オープンソースの「Solana Stream SDK」は、このたび Solana v3 系アップグレードへの正式対応を完了し、Rust 版・TypeScript 版の両方で新バージョンを公開



[画像: https://prcdn.freetls.fastly.net/release_image/105962/330/105962-330-8490fea0627cbb007a81a8f05506170e-2400x1260.jpg?width=536&quality=85%2C75&format=jpeg&auto=webp&fit=bounds&bg-color=fff ]


ELSOUL LABO B.V.(本社:オランダ・アムステルダム、代表取締役 CEO:川崎文武)と Validators DAO が開発・運営する Solana 向けオープンソースストリームクライアント「Solana Stream SDK」は、このたび Solana v3 系アップグレードへの正式対応を完了し、Rust 版・TypeScript 版の両方で新バージョンを公開しました。

Rust Crate「solana-stream-sdk」はバージョン 0.6.1 にて Solana v3 に対応しており、TypeScript / Node.js 向け npm パッケージ「@validators-dao/solana-stream-sdk」はバージョン 0.12.0 にて同様の対応を完了しています。いずれも Shreds および Geyser gRPC のストリームに対応し、Solana v3 および今後の新コンセンサス Alpenglow 時代に向けたリアルタイムデータ処理基盤としてご利用いただけます。

背景 - Solana v3 と Alpenglow 移行に向けた「クライアント側のアップデート」
Solana v3 は、新しいコンセンサス「Alpenglow」に向けた重要な移行フェーズとして位置づけられています。Alpenglow は、従来の TowerBFT と Proof of History を置き換えるかたちで再設計されたコンセンサスアーキテクチャであり、これまで約 12 秒前後であったファイナリティを、およそ 100~150 ミリ秒級まで短縮することを目標としています。ファイナリティが二桁ミリ秒オーダーまで短縮されると、ブロックの「刻み」とネットワーク上のデータ伝搬のテンポが根本から変わります。

一方で、バリデータや RPC ノードは v3 系への追随のためにビルドやバージョン管理の頻度が増え、運用の難易度が上がっています。Validators DAO は SLV などのツールを通じて、このサーバー側の自動化・最適化を進めてきましたが、同時に「クライアント SDK 側も v3 に対応していなければ、ネットワーク側の進化を十分に生かせない」という課題が浮き彫りになっていました。

特に Shreds や Geyser gRPC のようなストリームインターフェースでは、プロトコルやスキーマの変更に追随していないクライアントは、レイテンシやデータ整合性の面でボトルネックとなります。バリデータ・RPC が v3 へ移行していく中で、クライアントソフトウェアも同時に v3 対応を完了させることが、これまで以上に重要です。

今回の Solana Stream SDK v3 対応は、このギャップを埋め、Alpenglow 時代のストリーム処理を見据えたクライアント基盤を整えるためのアップデートです。

Solana Stream SDK v0.6.1(Rust)と v0.12.0(TypeScript)の対応内容
Solana Stream SDK は、当初から Shreds と Geyser gRPC の両方を対象としたストリームクライアントとして設計されています。今回のリリースでは、Solana v3 および今後の Alpenglow を見据え、特に次の点を中心に更新を行いました。

Rust Crate v0.6.1
Rust 版は、最高性能を求めるトレーダーやインデクサー向けのリファレンス実装として位置づけています。主なポイントは次のとおりです。
- Solana v3 系のプロトコル変更への対応
- Shreds および Geyser gRPC の v3 対応ストリームを Rust の非同期ランタイム上で高効率に処理
- Shreds 用 protobuf 定義のラッパを提供し、ストリーム処理ロジックを実装しやすい構造に整理
- マルチスレッド前提の実装により、高スループット環境でもレイテンシの蓄積を抑制

Rust 版は、Shreds や Geyser gRPC をほぼ限界まで使い切りたいご利用者の皆様に向けた選択肢であり、Solana v3 時代のストリームクライアントとして、まず検証いただきたい実装です。

TypeScript / Node.js 版 v0.12.0
TypeScript / Node.js 版は、JavaScript エコシステムにおける使いやすさと、Rust エンジンによる高性能を両立することを目的に設計されています。今回の v0.12.0 では、次の点を維持・強化しながら Solana v3 に対応しました。
- 既存のイベント駆動インターフェース(emitter.on など)をそのまま利用できるよう、API 署名は従来から継続
- 内部の接続エンジンに Rust と NAPI-RS を採用し、Node.js 単体では処理しきれなかった Shreds も安定して受信可能
- Geyser gRPC と Shreds の双方について、Solana v3 対応後のストリームを扱えるよう調整

多くのご利用者にとっては、package.json のバージョンを 0.12.0 に更新し、既存のイベントハンドリングコードをそのまま再利用するだけで、Solana v3 対応と Node.js 環境での性能向上を同時に得られる構成となっています。

なぜ Node.js だけでは Shreds を受け切れないのか
ShredStream は、Solana の中でも最も低レイテンシで情報量の多いストリームですが、その分だけクライアント側に要求される処理能力も高くなります。フィルターなしで利用した場合、短時間に大量の Shreds が流れ込み、クライアントの実装次第ではレイテンシが少しずつ蓄積し、最終的にはストリームがほとんど進まなくなる現象が発生します。

従来、Node.js 環境では @grpc/grpc-js を用いて gRPC ストリームを処理するケースが一般的でしたが、この構成には構造的な限界があります。
- Node.js のイベントループが単一スレッドであり、protobuf デシリアライズとユーザーコールバックの実行が同じスレッドで行われる
- 大量のメッセージが短時間に到着すると、JavaScript スレッドが処理待ちメッセージで埋まる
- HTTP/2 のフロー制御により、クライアント側のウィンドウサイズが尽きるとサーバーが送信を一時停止し、見かけ上「ネットワークが遅い」「サーバーが止まっている」かのような状態に陥る

表面上はネットワークやサーバー側の問題に見えても、実際にはクライアントが処理しきれず、内部でバックプレッシャーが連鎖的に発生しているだけ、というケースが多く存在します。ShredStream レイテンシに関する既存の記事でも示してきたとおり、Node.js 単体でフィルターなしの Shreds を処理し続けることには本質的な限界があります。

この限界を超えるために採用しているのが、Rust と NAPI-RS を組み合わせるアプローチです。

Rust と NAPI-RS による Node.js 高速化の仕組み
Solana Stream SDK の TypeScript 版では、Node.js 側から見たときの使い勝手を変えずに、内部の重い処理を Rust に任せる構造を採用しています。
- gRPC 接続管理、ストリーム受信、protobuf デシリアライズなど CPU 負荷の高い処理は Rust 側で非同期に実行する
- Node.js 側は、Rust から渡されるストリームを標準的なストリームやイベントエミッターとして扱い、従来どおり emitter.on("event", callback) の形で利用できる
- NAPI-RS により、Node.js と Rust の間のデータ受け渡しを小さいオーバーヘッドで行い、マルチスレッド処理のメリットをそのまま取り込む

これにより、表面的には以前と同じ書き方の TypeScript コードを維持しながら、実際のストリーム処理は Rust の非同期ランタイム上で実行されます。同じマシン・同じネットワーク条件でも、@grpc/grpc-js のみで処理した場合と比べて、Shreds や Geyser gRPC のような高頻度ストリームに対して、レイテンシの蓄積やバックプレッシャーの発生を大きく抑えられる構成になっています。

Shreds と Geyser gRPC の両方をカバーする SDK であることの意味
Solana のリアルタイムデータは、大きく分けて Shreds と Geyser gRPC の二つの層で考えることができます。

Shreds はリーダーに近い位置から送出される非常に低レイテンシの断片的ストリームであり、最も早いタイミングでチェーンの変化を捉えられる一方、データ量が多くクライアント実装の品質がそのまま性能に影響します。Geyser gRPC は、スロットやトランザクション、アカウント更新などを構造化された形で提供するストリームであり、最速ではないが扱いやすいという特長があります。

Solana Stream SDK は、この二つを同じ SDK の中で扱えるように設計されています。
- 最初は Geyser gRPC を用いてストリーム構造やデータ内容を理解する
- さらに低レイテンシや情報量を求める段階で、同じ SDK を用いたまま Shreds 側を活用する

という段階的な開発パスを取ることができます。Alpenglow によってブロック生成とファイナリティのテンポが変わっていく中で、こうした二層構造のストリーム設計を単一の SDK 群でカバーできることは、開発・運用双方にとって大きな利点です。

すぐに試せるリソースと検証環境
Solana Stream SDK は、Rust と TypeScript の両方でオープンソースとして公開されており、GitHub には Shreds と Geyser gRPC の双方に対するサンプルコードやクイックスタートが用意されています。

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 を含む高速ストリームを 1 日無料で試せるトライアルプランを提供しており、実運用に近い環境で Solana Stream SDK の挙動や性能改善を検証することが可能です。

ERPC 公式サイト(日本語): https://erpc.global/ja

Validators DAO コミュニティへの参加と今後の展開
Solana Stream SDK に関するご質問や改善要望、Solana v3 / Alpenglow 時代のストリーム設計に関するディスカッションは、Validators DAO 公式 Discord にて受け付けております。実プロジェクトで Shreds や Geyser gRPC を活用されている皆様のフィードバックは、SDK の品質向上にとって極めて重要です。

Validators DAO 公式 Discord: https://discord.gg/C7ZQSrCkYR

Solana v3 と Alpenglow により、Solana ネットワークはこれまで以上に高速でリアルタイム性の高いインフラへと進化していきます。Validators DAO と ELSOUL LABO は、その変化を最大限活用できるオープンソースツール群を継続的に提供し、開発者の皆様とともに次世代のリアルタイムアプリケーションを支える基盤づくりに取り組んでまいります。

引き続きのご支援を、どうぞよろしくお願いいたします。

最近の企業リリース

トピックス

  1. Google、ダークウェブレポートを終了 実用的な対処支援へ重点移行

    Google、ダークウェブレポートを終了 実用的な対処支援へ重点移行

    Googleは12月16日、個人情報がダークウェブ上に流出していないかを確認できる「ダークウェブ レ…
  2. Gmailを受診している画面

    Gmailの仕様変更でPOP受信が終了 自分は対象?POP利用チェック

    Gmailの仕様変更により、外部メールを取り込むPOP受信機能が2026年1月より利用できなくなりま…
  3. イベント「清水 ビー・バップ・ハイスクール 高校与太郎祭」(清水駅前銀座商店街)

    仲村トオルが清水に凱旋 映画「ビー・バップ・ハイスクール」40周年イベント開催

    映画「ビー・バップ・ハイスクール」(1985年)の劇場公開40周年を記念したイベント「清水 ビー・バ…

編集部おすすめ

  1. 「漆黒の指輪」は実在したものの……サン宝石、カプセルトイ「中二病が疼くリング」の“誇大表現”を謝罪

    「漆黒の指輪」は実在したものの……サン宝石、カプセルトイ「中二病が疼くリング」の“誇大表現”を謝罪

    アクセサリーや雑貨の販売で知られる「サン宝石」は12月16日、同社が展開するカプセルトイ「中二病が疼くリング」について、公式サイトおよびSN…
  2. 雨や洪水の警報が変わる 新・防災気象情報、警戒レベル表示で行動判断しやすく

    雨や洪水の警報が変わる 新・防災気象情報、警戒レベル表示で行動判断しやすく

    国土交通省と気象庁は12月16日、雨や洪水などの危険を伝える「防災気象情報」について、2026年(令和8年)の大雨シーズンから新たな運用を始…
  3. コミケの名物現象がまさかのグッズ化 「食べられるコミケ雲(わたあめ)」爆誕

    コミケの名物現象がまさかのグッズ化 「食べられるコミケ雲(わたあめ)」爆誕

    夏コミ名物、会場の熱気と参加者の汗が昇華して天井付近に発生するという伝説の現象「コミケ雲」。まさかそれを口にできる日が来るとは、誰が想像した…
  4. Reactに「CVSS 10.0(最高)」の脆弱性 IPAが注意喚起

    Reactに「CVSS 10.0(最高)」の脆弱性 IPAが注意喚起

    情報処理推進機構(IPA)は12月10日、多くのウェブサービスで使われている開発技術に重大な問題が見つかり、国内でも悪用したとみられる攻撃が…
  5. ライバー事務所4社に公取委が注意 「移籍しづらい」契約に懸念

    ライバー事務所4社に公取委が注意 「移籍しづらい」契約に懸念

    ライブ配信アプリ「Pococha(ポコチャ)」で活動するライバーをサポートしている事務所4社が、所属ライバーの“退所後の活動”を不当にしばっ…
Xバナー facebookバナー ネット詐欺特集バナー

提携メディア

Yahoo!JAPAN ミクシィ エキサイトニュース ニフティニュース infoseekニュース ライブドア LINEニュース ニコニコニュース Googleニュース スマートニュース グノシー ニュースパス dメニューニュース Apple ポッドキャスト Amazon アレクサ Amazon Music spotify・ポッドキャスト