The GraphがSubstreamでSolanaをサポート
The Graph Foundation
各コンテンツをフォローしてコミュニティにご参加ください!
The Graph Foundationは、SolanaとSubstreamsのサポートを発表することに興奮しています。これによって、Solanaの開発者コミュニティは、The Graphを使用して光速のDappsを構築することが可能になります。
新技術であるSubstreamsを使用することで、開発者はSolanaのメインネット-ベータからオンチェーンデータを効率的に抽出・解釈し、アプリケーションに反映させることができます。サブストリームのサポートは、Solanaにサブグラフを導入するための最初のステップとなるものです。
Substreamsは完全にオープンソースであり、そのスピードと効率性を活用して、Solana開発者は全く新しい方法でオンチェーンデータを構築できるようになります。Rustでコーディングされたサブストリームモジュールは、プロトコル固有のデータストリームや市場全体の分析データセットを構築するために使用されます。また、リアルタイムの通知や、長い時系列情報の表示にも利用できます。Substreamsを活用する開発者は、障壁なく他人が作ったストリームを活用して時間を節約し、自分の作品をオープンに利用できるようにして、web3エコシステム全体を強化することができるのです。その結果、SubstreamsはSolana開発者コミュニティ全体において、新しく革新的なユースケースを生み出すことになるでしょう。
The Graphエコシステムのコア開発者である「StreamingFast」によって開発されたSubstreamsは、非常に高速な履歴処理(バッチ処理とストリーミング処理)を可能にします。Substreamsは、テクノロジー固有のシンクを介したあらゆるデータシステムへの供給、オンチェーンデータを読み込むためのSolanaプログラムのRustコードの再利用、レーザーフォーカスによるデバッグ体験、データストリームの共同的かつ複合的な改良、信頼できる再要素認識ストリームなどの多くの利点への扉を開くものです。
Substreamsは、並列データ処理によってサブグラフのパフォーマンスを解放し、同期速度を大幅に向上させる真の業界シフト技術です。水平方向にスケーラブルな並列エンジンによって、Substreamsは過去のインデックス作成性能を100倍以上向上させることが可能となります。
開発者はSubstreamsを利用して、クロスチェーンブリッジや分析、ブロック探索者向けインテリジェンス、取引エンジン、リッチで一貫したデータストリームを必要とするあらゆるアプリケーションなど、新しいエキサイティングなユースケースを生み出すことが可能になります。
この技術は、The Graph Networkに導入されるまで、無料で利用できるホスティングサービスが提供される予定です。
「The GraphでのSolanaサポートは強く求められていたものであり、データストリーミングのための新しい最先端のアーキテクチャであるStreamを使用して、過去のSolanaデータを取得する効率的な方法を提供できるようになります。」
- The Graph Foundation ディレクター Eva Beylin氏
SubStreamsの仕組み
Substreamsは、Rustで構築されたモジュールによって、より効率的にエンリッチなデータを抽出するThe Graphの新しいデータソースです。Substreamsは単独でも使用できますが、Substreamsをサブグラフに統合し、The Graph Networkでサポートするための取り組みが続けられています。
Substreamsは長年の研究開発の集大成であり、データインデキシングアーキテクチャのニーズを知るために多くのチェーンを渡り歩いたコア開発者である StreamingFast によって生み出されたものです。Firehoseの登場により、データを抽出してインデックスを最適化することの潜在的な効率が明らかになったことを受け、SubstreamsはdApp開発者にとってより大きなチャンスを開くために作られました。
ETL(抽出、変換、ロード)に例えると、Substreamsは変換層であり、Firehoseは抽出層となります。これに対し、サブグラフはロード層とクエリ層を含む完全なETLQ体験を提供します。
RPCベースのインデックス作成技術は、通常ネイティブチェーンクライアントからAPIをポーリングします。Firehoseテクノロジーは、これらのポーリングAPIコールを、プッシュモデルを利用したデータストリームに置き換え、インデックス作成ノードにデータを高速に送信します。これにより、同期とインデックスの速度が向上し、アーカイブノードのほとんどのニーズがなくなります。
ブロックチェーンに依存しないSubstreamsは、超並列化されたストリーミングデータを可能にすることで、さらに進化を遂げます。Substreamsは、強力な新しい方法で組み合わせることができ、サブグラフやエンドユーザー・アプリケーションにデータを短時間で送り込むことが可能です。いくつかのサブグラフで初期テストを行ったところ、Substreamsの並列化により同期速度が100倍以上向上したことが確認されています。
Substreamsはステートフルモジュールをサポートするため、分析ユースケースはチェーンの履歴に渡って計算を集約し、並列でも新しい強力なアドホック分析を実行することができるようになります。
Substreamsは多くのシンクにフィードすることができ、PostgresとMongoDBはすでに利用可能で、グラフノードとの統合も予定されています。また、SubstreamsはgRPCをサポートする言語(Python、Go、Rust、C/#/++、Java/Kotlinなど)で書かれたシンプルなプログラムによって簡単に消費され、すでに持っているシステムにフィードすることができます。
SolanaのプログラムはRustで書かれており、BPFの代わりにWebAssemblyをターゲットとして、オンチェーンでのトランザクションの検証に使用するのと同じコードを使用して、サブストリームで命令をデコードすることが可能です。
完全に決定論的であるため、Substreamsには優れたキャッシュ機能が存在します。このため、以前に実行されたモジュールのキャッシュ状態を利用して、最初からやり直すことなく、履歴の途中からバグを検出することができます。モジュールの依存関係が一度処理されれば、オンチェーン履歴のどの時点でも、誰でもそのモジュールからビルドを開始することができます。このことは、アジリティとイテレーションのスピードに大きな影響を与えます。
また、Substreamsは新しい形のインフライトコンポジションを生み出します。これは、異なる作者から取得したモジュールを、後のクエリ時ではなく、変換時に結合できることを意味します。
例えば、Substreamsを使えば、Aチームが開発したSerum価格モジュールとBチームが開発したMetaplex販売モジュールを組み合わせ、さらに自分で開発したUSD取引量を充実・洗練させた3つ目のモジュールを作成することができるようになります。各ストリームは独立してコンポジット可能なままです。つまり、価格のデータにアクセスする必要があれば価格モジュールに、販売量が必要であれば販売量モジュールにフックすればいいのです。
最後に、Substreams技術にはカーソルという形で信頼性が組み込まれており、ストリームされたペイロードに付随しています。このカーソルは、ウェブクッキーのように、切断された場合に次のリクエストで送り返すことができ、たとえ切断中にイベントが発生しても、再オーガ信号を見逃さないことが保証されます。
チェーン間のSubstreamsの本格統合や、サブグラフに性能向上をもたらすサブグラフ/Substreamsの統合は、近日中に実現予定となっています。サブグラフとSubstreamsのスピードとデータコンポーザビリティをFirehoseから解凍されたブロックチェーンデータと組み合わせた場合、The Graphはブロックチェーンからデータを取得する最も高速で効率的な方法であることは間違いないでしょう。
The GraphでSolanaデータのインデックスを開始する方法
The Graphの分散型ネットワーク経済のネイティブプロダクトとしてサブストリームを提供するための作業を行いながら、今日からホスティングサービスからSolanaにアクセスすることができます。
以下は、始めるのに役立ついくつかのリソースですのでご利用ください:
- Substreams developer guide
- Substreams documentation
- Substreams Playground on GitHub
- Chains & Endpoints documentation
- Devcon 2022: Introducing The Graph Substreams for High-Performance Indexing video