blockchainjapan’s blog

旬のブロックチェーンを記事を厳選して提供!

Substreams: サブグラフのインデックス作成の大幅な高速化


Substreams: サブグラフのインデックス作成の大幅な高速化

The Graph Foundation

The Graphのエコシステムはこの1年で大きく成長し、現在5つのCore DeveloperチームがThe Graphのインデックス作成とクエリ機能の強化に取り組んで、世界に提供しています。Edge & Nodeに続き加わったStreamingFastは、素晴らしい才能と技術力をThe Graphもたらし、プロトコルを進化させ続けています。最もエキサイティングなイノベーションのひとつは、まもなく実現するSubstreamsです。

StreamingFast(旧dfuse)は2018年に設立され、ハイパフォーマンスでクロスチェーンの集中型のインデックスサービスを提供しています。彼らは、Edge & Nodeチームとの交流を経て、分散化こそが将来のために構築する最も効果的でスケーラブルな方法であることを確信しました。その後、The Graph Foundationの助成金提案を受け入れ、2021年6月にGraph Core Developerチームとして参加し、The Graphエコシステムに取り組んでいます。この分散型領域で起きたM&Aは、この種のものとしては初めてのものでした。

StreamingFastは、Graph Core Developerチームとして参加するにあたって、ブロックチェーンからデータを取り込むための手法であるFirehoseを導入し、The Graphへの統合を開始しました。当時は、非常に複雑なサブグラフの同期に数週間かかることもあり、The Graph上で構築する開発者に摩擦が生じていました。そこでStreamingFastは、Sparkleというプロトタイプを作成し、サブグラフの同期時間を数週間から6時間程度に短縮することに成功しました。そして今日、StreamingFastはSparkleの機能を進化させ、すべてのチェーン上のすべてのサブグラフでスケール可能なSubstreamsを作成しました。

Substreamsの仕組み

RPCベースのサブグラフは、ブロックチェーンデータを処理するための線形インデックスモデルを持っています。これは、EthereumクライアントへのポーリングAPIコールを介して行われます。Firehose技術は、これらのポーリングAPIコールを、プッシュモデルを利用したデータのストリームに置き換え、インデックス作成ノードにデータをより速く送信するものです。これにより、同期とインデックスの速度を向上させることができます。

Substreamsは、超並列化されたストリーミングデータを可能にすることにより実現した進化版であると言えるでしょう。Substreamsを新たな方法で組成したり集約したりすることで、サブグラフやエンドユーザーアプリケーションにデータを短時間で送り込むことが可能になります。Substreamsの並列化によって、一部のサブグラフは100倍以上の速度で同期できる可能性があります。

サブストリームを使うと、データパイプラインは4つのステージに分けることができます:

  • 抽出(Firehose経由)
  • 変換(Substreamsとサブグラフ経由)
  • ロード(postgresデータベースへ)
  • クエリ(ユーザーへのクエリ提供)

最初のSubstreams経由の変換では、より軽量な並列計算と、多くのサブグラフが恩恵を受けることができるコンポーザビリティが可能になります。

例として、大規模なDEXの場合、Substreamsモデルによって、個々の小さなモジュールがペア、リザーブエクストラクタ、価格、ボリューム集約、その他の主要なメトリクスを同時に処理することができます。開発者が既存のSubstreamsをベースに作業を行う場合、DEX価格を取得し、エコシステム全体のすべてのDEX価格を平均化するモジュールを作成することが可能になります。

Substreamsモジュールは、postgresQL を経由しません。既存のモジュールを活用することができ、開発者はそれを適応させることで、エンドユーザーはインデックス作成のためのパフォーマンスペナルティを支払うことなく、コンポーザビリティを利用することができます。

抽出と変換の段階の後、Substreamsは無限の方法で構成することができ、別のモジュールをサブグラフに投入することが可能で、これらはすべてロード操作の前に行われます。

リニアな履歴データ処理とは対照的に、Substreamsデータは並列処理とキャッシュが可能です。これにより、postgres データベースへの最速の挿入が可能となり、数日、数週間からわずか数時間に短縮されます。

これはすべて開発者にとってもメリットとなります。開発者はサブグラフを構築する必要があり、そのサブグラフを可能な限り高速に反復処理することができ、開発者の生産性を最大化することができます。開発者は、既存のモジュールを繰り返し使用し、最も効率的なプロセス(DEXの例のように)を再利用し、新しいサブグラフを再構築する必要なく、漸進的に反復して改善することができます。また、データを観察し、必要に応じてデータベースに追加することが可能になります。サブグラフとSubstreamsのスピードとデータコンポーザビリティ、Firehoseによるデータ取得により、The Graphはブロックチェーンからデータを取得する最も速く、最も効率的な方法となるでしょう。

これは、The Graphを介したオープンソースのデータコンポーザビリティの力であり、グローバルなエコシステムでコンポーザブルなデータを構築する開発者のハイブマインドであり、中央集権的なサービスでは太刀打ちできないものとなるでしょう。

現在のプロセスフェーズ

現在、Substreamsの初期実装が構築され、テストが行われています。コア開発者は、少人数の開発者グループと協力して、ソフトウェアの改良を実行できます。今後のアナウンスにご注目ください。

また、StreamingFastをはじめ、この取り組みに貢献してくれた全てのコア開発チームに感謝します。私たちは、Substreamsによって可能になる高速なインデックス作成性能を、開発者の方々に体験してもらうことが待ち遠しくて仕方ありません。

StreamingFastについて

StreamingFastは、Web3ビルダー兼投資家組織です。The Graphのコアデベロッパーとして、ブロックチェーンデータの処理とインデックス作成のための大規模スケーラブルなオープンソースソフトウェアの構築に取り組んでいます。

リアルテック起業家のチームによって設立されたStreamingFastは、大規模なデータサイエンスに深い専門知識を持っています。StreamingFastのコアイノベーションであるFirehoseは、ブロックチェーンデータを処理するためのファイルベースかつストリーミングファーストのアプローチであり、高スループットのチェーン上で高性能なインデキシングを可能にします。

StreamingFastには、TwitterDiscordでフォローできます。


The Graphについて

The Graphは、分散型Webのインデックス及びクエリレイヤーです。開発者はサブグラフと呼ばれるOpen APIを構築・公開し、アプリケーションはGraphQLを使ってクエリを実行することができます。The Graphは現在、Ethereum, NEAR, Arbitrum, Optimism, Polygon, Avalanche, Celo, Fantom, Moonbeam, IPFS, PoAなど32種類のネットワークからのデータのインデクシングをサポートしており、今後多くのネットワークをサポート予定です。現在までに38,000以上のサブグラフが、28,000人以上の開発者が、Uniswap、Synthetix、Zora、KnownOrigin、Art Blocks、Gnosis、Balancer、Livepeer、DAOstack、AAVE、 Audius、Decentralandなどのアプリケーション用に構築を続けています。

グラフネットワークの開発者向けサービスは2021年7月に開始され、それ以来、232以上のサブグラフがネットワークに移行し、既に161以上のインデックスがサブグラフのクエリを提供し、8,600以上のデリゲーター、2,300以上のキュレーターが参加しています。現在までに300万GRT以上がシグナルされ、1サブグラフあたり平均1万5千GRTがシグナルされています。

アプリケーションやWeb3アプリケーションを構築している開発者であれば、ブロックチェーンからのデータのインデックス作成やクエリにサブグラフを利用することができます。The Graphによって、アプリケーションは効率的かつパフォーマンスよくUIにデータを表示することができ、他の開発者もあなたのサブグラフを使用することが可能です。Subgraph Studioを使ってネットワークにサブグラフをデプロイしたり、Graph Explorerにある既存のサブグラフをクエリしたりすることができます。

The Graphは、あなたがインデクサーキュレーターデリゲーターとしてメインネットに参加することを歓迎します。また、The Graphの各コンテンツをフォローすることで、The Graphのコミュニティーに参加することができます。The Graphの開発者やコミュニティのメンバーは、いつでもあなたとのチャットを歓迎しています。The Graphのエコシステムでは、開発者同士のコミュニティが広がっており、お互いにサポートし合って運営されています。

The Graph Foundationは、グラフネットワークを統括しており、Technical Councilによって統括されています。Edge & NodeStreamingFastFigmentSemioticThe Guildは、The Graphエコシステム内でコア開発を担う組織として機能しています。

Website / Graph Explorer / Twitter / Blog / Linkedin / Everest / Discord / Telegram / Newsletter

日本版Twitter / 日本版Medium / 日本版Telegram