レッスン2

グラフを支えるテクノロジー

The Graphのアーキテクチャを掘り下げると、ブロックチェーンエコシステムの分散型クエリメカニズムを支える複雑でありながらエレガントに構造化されたシステムを見つけます。 グラフノードを中心とするこの複雑なフレームワークは、さまざまなコンポーネントのシームレスな統合を調整し、それぞれがネットワークの効率的な機能において重要な役割を果たします。

グラフ ノード: インデックス作成の原動力

The Graphのアーキテクチャの中心にあるのは、グラフノードです。 この重要なコンポーネントは、サブグラフにインデックスを付け、GraphQL APIを介して結果のデータにアクセスできるようにします。 これはインデクサー スタックの中核であり、その効果的な操作は、インデクサーを正常に実行するために重要です。 Graph Nodeは、ベアメタル環境とクラウド環境の両方で実行できる汎用性があり、ブロックチェーンテクノロジーのダイナミックな状況で必要とされる適応性を反映しています。

PostgreSQL データベースへのデータの格納

グラフノードの操作に不可欠なのは、メインストアとして機能するPostgreSQLデータベースです。 このデータベースには、サブグラフのデータだけでなく、サブグラフに関するメタデータや、ブロックキャッシュやeth_callキャッシュなどの重要なネットワークデータも格納されています。 このデータベースの編成と管理は、グラフノードの円滑な運用に不可欠であり、データの整合性とアクセス性を確保します。

ネットワーククライアントとFirehoses

ブロックチェーンネットワークのインデックス作成のために、Graph NodeはEVM互換のJSON-RPC API を介してネットワーククライアントに接続します。 このセットアップは、1 つのクライアントへの接続から、複数のクライアント間での負荷分散を含むより複雑な配置までさまざまです。 さらに、The Graphは、順序付けられたフォーク対応のブロックストリームを提供するgRPCサービスであるNetwork Firehosesを開発しました。 現在、インデクサーの要件ではありませんが、Firehose は、パフォーマンスの高いインデックス作成を大規模にサポートする上で大きな進歩を示しています。

IPFSノード上のメタデータとPrometheusによる監視

グラフノードとIPFSネットワークとの相互作用は、サブグラフのデプロイメタデータを保存するために重要です。 ネットワークレベルでホストされるIPFSノードは、インデクサーのこのプロセスを簡素化します。 さらに、監視とレポート作成のためのPrometheusメトリックサーバーとのオプションの統合により、さらに高度なレイヤーが追加され、インデクサーがグラフノードのパフォーマンスを追跡および最適化できるようになります。

拡張性と高度な構成

インストールオプションからスケーリング機能まで、グラフノードの柔軟なセットアップは、さまざまな運用ニーズに対応するというグラフのコミットメントを強調しています。 このシステムは、複数のグラフノードとデータベースを使用して水平方向に拡張でき、ネットワークの需要の高まりに対応できます。 上級ユーザーは、TOMLファイルまたは環境変数で管理されるグラフノードの構成オプションを利用して、データ処理とワークロードの分散を最適化できます。

データのインデックス作成と処理:Firehoseとサブストリームの再定義

Firehose:ブロックチェーンデータ抽出の再発明

StreamingFastによって概念化および開発されたFirehoseは、ブロックチェーンノードからのデータ抽出における革命を示しています。 この革新的なツールは、ブロックチェーンブロック内のすべてのトランザクションを最小の要素に分解し、シンプルでフラットなファイルとして保存します。 これらのフラットファイルは単なるストレージ形式ではありません。これらは、データのインデックス作成におけるパラダイムシフトを具現化しています。 並列処理が容易になり、インデックス作成操作が大幅に高速化されます。 このテクノロジーは、インストゥルメント化されたブロックチェーンノードから消費者に直接、フォーク対応の豊富なデータを提供します。 実際、Firehoseは、かつては達成不可能と考えられていたキャプチャと処理の速度を提供することで、その能力を示し、The Graphのエコシステムにおけるデータ抽出の新しい基準を打ち立てました。

サブストリーム:効率的なデータ処理のパイオニア

Firehoseが提供する機能を拡張したサブストリームは、ストリーミングファーストの並列方式で高性能なデータ処理を行うように設計されています。 これらのRustで記述されたモジュールにより、開発者はさまざまな用途のためにブロックチェーンデータを構成、並べ替え、保存、および変換できます。 Substreamsの独創性は、Firehoseのフラットファイルを利用して、非常に高速でデータのインデックスを作成できることです。 このアプローチにより、サブストリームは、データの処理が非常に効率的になるだけでなく、継続的な要求に依存するのではなく、データが利用可能になったらすぐに配布できます。

Firehose と Substreams の組み合わせ

The Graphのエコシステム内でFirehoseとSubstreamsを統合することで、データ処理のための強力な組み合わせが実現します。 Firehoseはブロックチェーンデータを最適化された形式で迅速に配信し、Substreamsはこのデータをさらに洗練させて処理します。 この相乗効果により、大量のブロックチェーンデータの処理において比類のない効率性が実現し、The Graphの機能が大幅に向上します。

サブグラフ:データインデックスの業界標準

サブグラフは、2018年にThe Graphによって導入されて以来、ブロックチェーンデータのインデックス作成における業界標準となっています。 これらは基本的に、ブロックチェーンからデータを抽出、処理、保存するオープンAPIであるため、GraphQLインターフェイスを介して簡単にクエリできます。 40以上のチェーンで85,000以上のサブグラフがサポートされており、サブグラフはWeb3開発者にとって不可欠なものとなっています。 これにより、インデックス化されたデータで満たされた Postgres データベースを迅速にデプロイでき、GraphQL レイヤーを使用してクエリを実行する準備が整います。 サブグラフを使用すると、開発者は、DeFiトランザクションからNFTの出所まで、さまざまなブロックチェーンデータをDAppsに整理的かつ効率的に表示できます。

進化し続けるブロックチェーン技術において、サブグラフは極めて重要な概念として浮上し、ブロックチェーンデータとのやり取りや利用方法を変革しています。 これらのオープンAPIは仲介者として機能し、ブロックチェーンの分散型世界と構造化データの使い慣れた領域との間のギャップをシームレスに埋めます。 サブグラフは、ブロックチェーンデータを抽出、処理、クエリ可能な形式に整理することで、開発者が革新的でデータ駆動型のアプリケーションを構築できるようにします。

サブグラフには多くの利点があり、開発者とユーザーの両方にとって魅力的な選択肢となっています。 その分散性により、検閲やダウンタイムに対する耐性が保証され、安全で信頼性の高いデータエコシステムが育まれます。 さらに、サブグラフは本質的にスケーラブルであり、パフォーマンスを損なうことなく大量のデータを処理できます。 費用対効果も重要な利点であり、サブグラフは従来のデータAPIよりも手頃な価格であることが多いです。

サブグラフのアーキテクチャ

サブグラフは、3つの重要なコンポーネントで構成されており、それらが調和して機能し、変革的な機能を提供します。

  1. マニフェスト: マニフェストはサブグラフの設計図として機能し、そのデータ ソース、スキーマ、および AssemblyScript コードの概要を示します。 サブグラフがインデックスを作成するデータの境界を定義し、関連する情報のみがキャプチャされるようにします。

  2. スキーマ: スキーマは、建物の設計図に似たデータの構造を定義します。 エンティティ、フィールド、およびエンティティ間のリレーションシップの概要を示し、データを表すための明確で整理された方法を提供します。

  3. AssemblyScript コード: この実行可能コードは、サブグラフの主力として機能し、ブロックチェーンからの生データを GraphQL エンジンが理解できる形式に変換します。 また、データのインデックス作成と保存も処理し、アクセス性と信頼性を確保します。

サブグラフ開発プロセス

サブグラフの作成には一連のステップが必要で、それぞれがサブグラフの機能性と有効性を確保するために慎重に作成されています。

  1. 概念化と設計: ジャーニーは、インデックスを作成するデータと、そのデータによって強化されるアプリケーションを明確にすることから始まります。 これには、エンティティ、フィールド、およびそれらの間の関係を定義し、サブグラフの構造が意図した目的と一致していることを確認することが含まれます。

  2. マニフェストとスキーマの開発: マニフェストとスキーマは細心の注意を払って作成され、サブグラフのデータアーキテクチャの基盤を提供します。 マニフェストはデータソースを指定し、スキーマはデータ構造の概要を示し、データの整合性と一貫性を確保します。

  3. AssemblyScript コードの実装: AssemblyScript コードが記述され、生のブロックチェーン データが GraphQL が理解できる形式に変換されます。 インデックス作成、ストレージ、およびデータの取得を処理し、インデックス付きデータへの効率的なアクセスを可能にします。

サブグラフのデプロイと公開

サブグラフが開発されると、それを世界に紹介するデプロイプロセスが行われます。

  1. Subgraph Studioの統合: Subgraph Studioは、サブグラフを管理するための一元化されたプラットフォームとして機能します。 これにより、デプロイプロセスが容易になり、開発者はサブグラフを分散型ネットワークに公開することができます。

  2. インデックス作成とキュレーション:ブロックチェーンデータの取得と保存を担当するインデクサーは、開発者がサブグラフにアクセスできるようにするために不可欠です。 キュレーションは通常、GRTトークンを通じて行われ、インデクサーが需要の高いサブグラフを優先するインセンティブとなります。

  3. クエリと利用:開発者は、GraphQLクエリを使用してデプロイされたサブグラフをクエリし、アプリケーションのニーズに合わせた特定のデータを取得できるようになりました。 このシームレスな統合により、開発者はブロックチェーンデータをイノベーションに活用することができます。

未来:グラフの新時代

The Graphが新時代を迎えるにあたり(レッスン5で取り上げます)、これらのコアテクノロジーであるサブグラフ、ファイアホース、サブストリームの継続的な進化が期待されています。 これらのコンポーネントは、新しいデータサービスを導入し、より高速でモジュール化されたデータフローを確保する上で重要な役割を果たし、拡張と進化が予定されています。 例えば、Verifiable Firehoseは、イーサリアムの過去のデータにアクセスするための画期的なソリューションとなり、進化するブロックチェーン標準の課題に対処する態勢を整えています。

サブグラフとサブストリームの区別

サブグラフとサブストリームは目的が異なるため、区別することが重要です。 サブグラフは、標準的なデータの取得と管理に最適で、GraphQLクエリレイヤーでのセットアップと使用が簡単です。 逆に、サブストリームは、より複雑な分析とビッグデータのニーズに合わせて調整され、並列化されたデータ処理と、データの処理と保存の柔軟性が向上します。 サブストリームを使用すると、開発者は基本的なファイル形式からより使いやすい形式にデータを変換し、高度なデータ処理要件に対応できます。

オフチェーンデータの整理:グラフのアプローチとWeb3データパイプラインへの影響

The Graphは、伝統的にオンチェーンデータの整理に長けていることで知られていましたが、現在、オフチェーンデータの領域に進出することで、その視野を広げています。 このアプローチは、世界の一般の知識や情報に簡単にアクセスできるようにするというThe Graphの長期的な使命に沿ったものです。

Web3とデータ管理のトレードオフ

Web3アーキテクチャでは、ユーザーはミドルウェアサービスを介してブロックチェーンと直接対話できますが、特にコストに関してはトレードオフがあります。 オンチェーン取引コストは、ガス代と呼ばれることが多く、複雑な計算や大量のデータストレージには法外に高くなることがあります。 この制限により、歴史的にアプリケーションの複雑さが軽減されたり、開発者がオープンソースモデルから逸脱して独自のオフチェーンAPIを作成したりしてきました。

The Graphのオフチェーンデータのためのユニークなソリューション

The Graphは、分散型ネットワークを通じてオフチェーンデータの整理と提供を可能にすることで、この課題に対する独自のソリューションを提示します。 この方式は、従来はオフチェーンのデータをIPFS(InterPlanetary File System)に投稿し、IPFSハッシュをオンチェーンで記録するワークフローです。 その後、このデータはサブグラフによってインデックス化され、クエリに利用できるようになります。 このアプローチは、独自の API の構築と保守のオーバーヘッドなしに、複雑で動的なデータを公開および提供するためのスケーラブルで経済的な方法を提供します。

ワークフロー: 3 ステップのプロセス

ワークフローは、次の 3 つの主要コンポーネントで構成されています。

  1. データの計算と投稿のためのcronジョブ:オフチェーンのcronジョブは、複雑な計算を実行し、その結果をIPFSなどのpermawebソースに投稿し、The Graphでインデックス化できるようにします。 このジョブは、IPFSファイルのハッシュと関連するメタデータを投稿するためのオンチェーントランザクションも生成します。

  2. インデックス作成のためのサブグラフの公開:次のステップでは、チェーンに投稿されたファイルハッシュに基づいて、これらのIPFSファイルをインデックス化するサブグラフを公開します。 サブグラフが公開されると、The Graphのネットワーク内のインデクサーによって取得され、提供され、サードパーティの開発者やユーザーがデータをクエリできるようになります。

  3. 堅牢で信頼性の高いデータアクセス:The Graphのインデクサーの分散ネットワークを活用することで、データパブリッシャーが追加の労力を費やすことなく、データアクセスの堅牢性と信頼性が維持されます。 この分散型構造により、データの可用性と整合性が大幅に向上します。

実用的な実装とコスト効率

The Graphエコシステムの実用的な例は、ネットワークコストとサービス品質のメトリクスを公開するためにEdge & Nodeが開発したオラクルです。 このオラクルは、5分ごとに集約されたデータをIPFSに投稿し、IPFSファイルハッシュをGnosisチェーンに記録します。 このデータはサブグラフにインデックス化され、プロトコルの利害関係者が利用することができます。 このワークフローに関連するコストは驚くほど低く、データパブリッシャーにとって魅力的なオプションとなっています。

動的データの新たな可能性

動的データにThe Graphを使用するこの方法は、ブログのリーンバックエンド、アルゴリズムによるコンテンツキュレーション、リアルタイム監視システムなど、permawebサイトにエキサイティングな新しい可能性を開きます。 これは、データの公開、インデックス作成、アクセスの方法に大きな変化をもたらし、よりオープンで協調的なWeb3エコシステムを促進します。

オフチェーンデータの整理:The Graphの革新的なアプローチ

The Graphのオフチェーンデータ管理への拡大は、Web3エコシステムに新たな道を開き、分散型データ領域と従来のデータ領域の間の架け橋となります。 このイニシアチブは、オンチェーンのデータストレージと計算に固有の制限に対処し、分散型でより広い範囲の情報にアクセスできるようにするというThe Graphの使命を反映しています。

オンチェーンとオフチェーンのデータニーズのバランスをとる

The Graphは、Web3アーキテクチャにおけるオンチェーンデータストレージと計算のコスト関連のトレードオフを認識しています。 ブロックチェーンとの直接的なやり取りは簡単ですが、複雑な計算や大規模なデータストレージは法外なコストになる可能性があります。 これらの制限を回避するために、The Graphはオフチェーンのデータストレージとオンチェーンのデータ参照を組み合わせる方法を導入し、機能を強化しながら分散型の精神を維持しています。

The Graphのオフチェーンデータの方法論

このアプローチには、次の 3 つの手順のワークフローが含まれます。

  1. オフチェーン計算とIPFSポスティング:複雑な計算はオフチェーンで行われ、結果のデータは分散型ストレージソリューションであるIPFSにポストされます。 このステップにより、データはオフチェーンでありながら、検証可能で分散化された方法で保存されます。

  2. トランザクションによるオンチェーンリンク:IPFSにデータを保存するとともに、対応するオンチェーントランザクションが行われ、IPFSハッシュやその他の関連するメタデータが記録されます。 この方法は、オフチェーンデータをブロックチェーンに固定し、信頼性とトレーサビリティのレイヤーを提供します。

  3. アクセシビリティのためのサブグラフのインデックス作成:最後のステップでは、サブグラフを使用してIPFSに保存されたデータのインデックスを作成します。 このプロセスにより、オフチェーンデータは、The Graphの分散型ネットワークを介して簡単に照会およびアクセスできるようになります。
    実践的な実装:Edge & NodeのOracle

The Graphのエコシステムにおけるこの方法論の実用的な応用は、Edge & Nodeによって開発されたオラクルである。 このオラクルは、ネットワークコストとサービス品質メトリックを次の方法で5分ごとに公開します。

  • 集計されたデータはIPFSに投稿されます。

  • 対応するIPFSファイルハッシュは、DataEdgeコントラクトを介してGnosisチェーンに記録されます。

  • これらのIPFSファイルはサブグラフにインデックス化され、利害関係者が分散型でデータを利用できるようにします。
    この実装は、独自の API を必要とせずに複雑なデータを公開および提供するための、低コストでスケーラブルで効率的なアプローチを示しています。 これは、The Graphの手法を活用して、さまざまなアプリケーション用の動的データソースを作成する方法を例示しています。

コスト効率と拡張性

このワークフローに関連するコストは驚くほど低く、データ発行者にとって魅力的なソリューションとなっています。 例えば、Edge & Nodeによるオラクルの実装では、オンチェーントランザクションとIPFSノードのピン留めにかかる費用は最小限に抑えられ、サービスコストはデータコンシューマが負担します。 このモデルは、堅牢で信頼性の高いデータアクセスを確保しながら、データ発行者の運用オーバーヘッドを効果的に削減します。

新しいWeb3ユースケースの実現

この手法は、ブログの動的バックエンド、アルゴリズムによるコンテンツキュレーション、リアルタイム監視システムなど、permawebアプリケーションの新たな可能性を解き放ちます。 これにより、データパブリッシャーとアプリ/フロントエンドオペレーターを分割することができ、オープンソースコミュニティでの専門化と分業が促進されます。 このアプローチは、分散型のソーシャルアプリケーションやプロトコルに有望であり、分散型データの公開と消費に新たな道筋を提供します。

The Graph のクエリ言語と API: GraphQL の採用

選択したクエリ言語としての GraphQL の統合。 この決定は、The GraphのAPIを介したデータへのアクセスと操作の方法を大きく左右し、ブロックチェーンデータを照会するための合理的で効率的な方法を提供します。

グラフにおけるGraphQLの役割を理解する

GraphQLは、最新のAPI設計の最前線に立ち、データ取得への柔軟で効率的なアプローチを提供します。 データ構造が複雑で進化し続けるブロックチェーンのコンテキストでは、必要なものを正確に取得するGraphQLの能力は非常に貴重になります。

  1. カスタマイズされたデータクエリ:GraphQLの魅力の核心は、クライアントが必要とするデータの構造を正確に定義できることです。 この機能は、従来の固定構造応答とは大きく異なり、より焦点を絞った効率的なデータ操作を可能にします。

  2. リアルタイムインタラクションの強化:The GraphのGraphQLは、クエリだけでなく、リアルタイムのデータサブスクリプションもサポートしています。 この機能は、タイムリーな更新と応答性がユーザーエクスペリエンスの鍵となるブロックチェーンアプリケーションにとって不可欠です。

  3. 分散型でトラストレスなデータアクセス:The Graphは、GraphQLを使用して、分散化の哲学をデータアクセスの領域に拡張しています。 GraphQLクエリは、分散型ノードのネットワークと連携することで、データのオープン性、透明性、検閲耐性を確保します。
    APIとGraphQLの融合

The Graphのエコシステムでは、APIとGraphQLの融合により、データ取得のための調和のとれた強力なシステムが構築されています。

  1. スキーマ定義とデータマッピング: 開発者は、サブグラフ内で GraphQL スキーマを定義し、クエリ可能なデータの構造を概説します。 その後、スキーマはブロックチェーンイベントに複雑にマッピングされ、オンチェーンアクティビティが構造化データに変換されます。

  2. インデクサーによるクエリの実行:GraphQLクエリがサブグラフAPIに送信されると、The Graphのインデクサーの分散型ネットワークによって処理されます。 このプロセスは、ブロックチェーン技術の原則を支持し、クエリが分散的に実行される方法を例示しています。

  3. 複雑なデータ関係の処理:ブロックチェーンでは複雑なデータ関係が一般的であるため、さまざまな形式のデータフィルタリングやソートなど、複雑なクエリを処理するGraphQLの機能は特に有益です。

開発者とエンドユーザーにとってのメリット

GraphQLをThe Graphに統合すると、多くのメリットがもたらされます。

  • 開発者の柔軟性: 開発者は、GraphQL の機能をフルに活用して、アプリケーションの要件に正確に適合するクエリを作成できます。
  • 効率的なデータ取得:データ取得時間の短縮により、アプリケーションのパフォーマンスが向上し、エンドユーザーエクスペリエンスの向上に直結します。
  • シームレスなデータ統合:GraphQLクエリの標準化された性質により、多様なブロックチェーンデータソースをアプリケーションに統合するプロセスが簡素化されます。
免責事項
* 暗号資産投資には重大なリスクが伴います。注意して進めてください。このコースは投資アドバイスを目的としたものではありません。
※ このコースはGate Learnに参加しているメンバーが作成したものです。作成者が共有した意見はGate Learnを代表するものではありません。
カタログ
レッスン2

グラフを支えるテクノロジー

The Graphのアーキテクチャを掘り下げると、ブロックチェーンエコシステムの分散型クエリメカニズムを支える複雑でありながらエレガントに構造化されたシステムを見つけます。 グラフノードを中心とするこの複雑なフレームワークは、さまざまなコンポーネントのシームレスな統合を調整し、それぞれがネットワークの効率的な機能において重要な役割を果たします。

グラフ ノード: インデックス作成の原動力

The Graphのアーキテクチャの中心にあるのは、グラフノードです。 この重要なコンポーネントは、サブグラフにインデックスを付け、GraphQL APIを介して結果のデータにアクセスできるようにします。 これはインデクサー スタックの中核であり、その効果的な操作は、インデクサーを正常に実行するために重要です。 Graph Nodeは、ベアメタル環境とクラウド環境の両方で実行できる汎用性があり、ブロックチェーンテクノロジーのダイナミックな状況で必要とされる適応性を反映しています。

PostgreSQL データベースへのデータの格納

グラフノードの操作に不可欠なのは、メインストアとして機能するPostgreSQLデータベースです。 このデータベースには、サブグラフのデータだけでなく、サブグラフに関するメタデータや、ブロックキャッシュやeth_callキャッシュなどの重要なネットワークデータも格納されています。 このデータベースの編成と管理は、グラフノードの円滑な運用に不可欠であり、データの整合性とアクセス性を確保します。

ネットワーククライアントとFirehoses

ブロックチェーンネットワークのインデックス作成のために、Graph NodeはEVM互換のJSON-RPC API を介してネットワーククライアントに接続します。 このセットアップは、1 つのクライアントへの接続から、複数のクライアント間での負荷分散を含むより複雑な配置までさまざまです。 さらに、The Graphは、順序付けられたフォーク対応のブロックストリームを提供するgRPCサービスであるNetwork Firehosesを開発しました。 現在、インデクサーの要件ではありませんが、Firehose は、パフォーマンスの高いインデックス作成を大規模にサポートする上で大きな進歩を示しています。

IPFSノード上のメタデータとPrometheusによる監視

グラフノードとIPFSネットワークとの相互作用は、サブグラフのデプロイメタデータを保存するために重要です。 ネットワークレベルでホストされるIPFSノードは、インデクサーのこのプロセスを簡素化します。 さらに、監視とレポート作成のためのPrometheusメトリックサーバーとのオプションの統合により、さらに高度なレイヤーが追加され、インデクサーがグラフノードのパフォーマンスを追跡および最適化できるようになります。

拡張性と高度な構成

インストールオプションからスケーリング機能まで、グラフノードの柔軟なセットアップは、さまざまな運用ニーズに対応するというグラフのコミットメントを強調しています。 このシステムは、複数のグラフノードとデータベースを使用して水平方向に拡張でき、ネットワークの需要の高まりに対応できます。 上級ユーザーは、TOMLファイルまたは環境変数で管理されるグラフノードの構成オプションを利用して、データ処理とワークロードの分散を最適化できます。

データのインデックス作成と処理:Firehoseとサブストリームの再定義

Firehose:ブロックチェーンデータ抽出の再発明

StreamingFastによって概念化および開発されたFirehoseは、ブロックチェーンノードからのデータ抽出における革命を示しています。 この革新的なツールは、ブロックチェーンブロック内のすべてのトランザクションを最小の要素に分解し、シンプルでフラットなファイルとして保存します。 これらのフラットファイルは単なるストレージ形式ではありません。これらは、データのインデックス作成におけるパラダイムシフトを具現化しています。 並列処理が容易になり、インデックス作成操作が大幅に高速化されます。 このテクノロジーは、インストゥルメント化されたブロックチェーンノードから消費者に直接、フォーク対応の豊富なデータを提供します。 実際、Firehoseは、かつては達成不可能と考えられていたキャプチャと処理の速度を提供することで、その能力を示し、The Graphのエコシステムにおけるデータ抽出の新しい基準を打ち立てました。

サブストリーム:効率的なデータ処理のパイオニア

Firehoseが提供する機能を拡張したサブストリームは、ストリーミングファーストの並列方式で高性能なデータ処理を行うように設計されています。 これらのRustで記述されたモジュールにより、開発者はさまざまな用途のためにブロックチェーンデータを構成、並べ替え、保存、および変換できます。 Substreamsの独創性は、Firehoseのフラットファイルを利用して、非常に高速でデータのインデックスを作成できることです。 このアプローチにより、サブストリームは、データの処理が非常に効率的になるだけでなく、継続的な要求に依存するのではなく、データが利用可能になったらすぐに配布できます。

Firehose と Substreams の組み合わせ

The Graphのエコシステム内でFirehoseとSubstreamsを統合することで、データ処理のための強力な組み合わせが実現します。 Firehoseはブロックチェーンデータを最適化された形式で迅速に配信し、Substreamsはこのデータをさらに洗練させて処理します。 この相乗効果により、大量のブロックチェーンデータの処理において比類のない効率性が実現し、The Graphの機能が大幅に向上します。

サブグラフ:データインデックスの業界標準

サブグラフは、2018年にThe Graphによって導入されて以来、ブロックチェーンデータのインデックス作成における業界標準となっています。 これらは基本的に、ブロックチェーンからデータを抽出、処理、保存するオープンAPIであるため、GraphQLインターフェイスを介して簡単にクエリできます。 40以上のチェーンで85,000以上のサブグラフがサポートされており、サブグラフはWeb3開発者にとって不可欠なものとなっています。 これにより、インデックス化されたデータで満たされた Postgres データベースを迅速にデプロイでき、GraphQL レイヤーを使用してクエリを実行する準備が整います。 サブグラフを使用すると、開発者は、DeFiトランザクションからNFTの出所まで、さまざまなブロックチェーンデータをDAppsに整理的かつ効率的に表示できます。

進化し続けるブロックチェーン技術において、サブグラフは極めて重要な概念として浮上し、ブロックチェーンデータとのやり取りや利用方法を変革しています。 これらのオープンAPIは仲介者として機能し、ブロックチェーンの分散型世界と構造化データの使い慣れた領域との間のギャップをシームレスに埋めます。 サブグラフは、ブロックチェーンデータを抽出、処理、クエリ可能な形式に整理することで、開発者が革新的でデータ駆動型のアプリケーションを構築できるようにします。

サブグラフには多くの利点があり、開発者とユーザーの両方にとって魅力的な選択肢となっています。 その分散性により、検閲やダウンタイムに対する耐性が保証され、安全で信頼性の高いデータエコシステムが育まれます。 さらに、サブグラフは本質的にスケーラブルであり、パフォーマンスを損なうことなく大量のデータを処理できます。 費用対効果も重要な利点であり、サブグラフは従来のデータAPIよりも手頃な価格であることが多いです。

サブグラフのアーキテクチャ

サブグラフは、3つの重要なコンポーネントで構成されており、それらが調和して機能し、変革的な機能を提供します。

  1. マニフェスト: マニフェストはサブグラフの設計図として機能し、そのデータ ソース、スキーマ、および AssemblyScript コードの概要を示します。 サブグラフがインデックスを作成するデータの境界を定義し、関連する情報のみがキャプチャされるようにします。

  2. スキーマ: スキーマは、建物の設計図に似たデータの構造を定義します。 エンティティ、フィールド、およびエンティティ間のリレーションシップの概要を示し、データを表すための明確で整理された方法を提供します。

  3. AssemblyScript コード: この実行可能コードは、サブグラフの主力として機能し、ブロックチェーンからの生データを GraphQL エンジンが理解できる形式に変換します。 また、データのインデックス作成と保存も処理し、アクセス性と信頼性を確保します。

サブグラフ開発プロセス

サブグラフの作成には一連のステップが必要で、それぞれがサブグラフの機能性と有効性を確保するために慎重に作成されています。

  1. 概念化と設計: ジャーニーは、インデックスを作成するデータと、そのデータによって強化されるアプリケーションを明確にすることから始まります。 これには、エンティティ、フィールド、およびそれらの間の関係を定義し、サブグラフの構造が意図した目的と一致していることを確認することが含まれます。

  2. マニフェストとスキーマの開発: マニフェストとスキーマは細心の注意を払って作成され、サブグラフのデータアーキテクチャの基盤を提供します。 マニフェストはデータソースを指定し、スキーマはデータ構造の概要を示し、データの整合性と一貫性を確保します。

  3. AssemblyScript コードの実装: AssemblyScript コードが記述され、生のブロックチェーン データが GraphQL が理解できる形式に変換されます。 インデックス作成、ストレージ、およびデータの取得を処理し、インデックス付きデータへの効率的なアクセスを可能にします。

サブグラフのデプロイと公開

サブグラフが開発されると、それを世界に紹介するデプロイプロセスが行われます。

  1. Subgraph Studioの統合: Subgraph Studioは、サブグラフを管理するための一元化されたプラットフォームとして機能します。 これにより、デプロイプロセスが容易になり、開発者はサブグラフを分散型ネットワークに公開することができます。

  2. インデックス作成とキュレーション:ブロックチェーンデータの取得と保存を担当するインデクサーは、開発者がサブグラフにアクセスできるようにするために不可欠です。 キュレーションは通常、GRTトークンを通じて行われ、インデクサーが需要の高いサブグラフを優先するインセンティブとなります。

  3. クエリと利用:開発者は、GraphQLクエリを使用してデプロイされたサブグラフをクエリし、アプリケーションのニーズに合わせた特定のデータを取得できるようになりました。 このシームレスな統合により、開発者はブロックチェーンデータをイノベーションに活用することができます。

未来:グラフの新時代

The Graphが新時代を迎えるにあたり(レッスン5で取り上げます)、これらのコアテクノロジーであるサブグラフ、ファイアホース、サブストリームの継続的な進化が期待されています。 これらのコンポーネントは、新しいデータサービスを導入し、より高速でモジュール化されたデータフローを確保する上で重要な役割を果たし、拡張と進化が予定されています。 例えば、Verifiable Firehoseは、イーサリアムの過去のデータにアクセスするための画期的なソリューションとなり、進化するブロックチェーン標準の課題に対処する態勢を整えています。

サブグラフとサブストリームの区別

サブグラフとサブストリームは目的が異なるため、区別することが重要です。 サブグラフは、標準的なデータの取得と管理に最適で、GraphQLクエリレイヤーでのセットアップと使用が簡単です。 逆に、サブストリームは、より複雑な分析とビッグデータのニーズに合わせて調整され、並列化されたデータ処理と、データの処理と保存の柔軟性が向上します。 サブストリームを使用すると、開発者は基本的なファイル形式からより使いやすい形式にデータを変換し、高度なデータ処理要件に対応できます。

オフチェーンデータの整理:グラフのアプローチとWeb3データパイプラインへの影響

The Graphは、伝統的にオンチェーンデータの整理に長けていることで知られていましたが、現在、オフチェーンデータの領域に進出することで、その視野を広げています。 このアプローチは、世界の一般の知識や情報に簡単にアクセスできるようにするというThe Graphの長期的な使命に沿ったものです。

Web3とデータ管理のトレードオフ

Web3アーキテクチャでは、ユーザーはミドルウェアサービスを介してブロックチェーンと直接対話できますが、特にコストに関してはトレードオフがあります。 オンチェーン取引コストは、ガス代と呼ばれることが多く、複雑な計算や大量のデータストレージには法外に高くなることがあります。 この制限により、歴史的にアプリケーションの複雑さが軽減されたり、開発者がオープンソースモデルから逸脱して独自のオフチェーンAPIを作成したりしてきました。

The Graphのオフチェーンデータのためのユニークなソリューション

The Graphは、分散型ネットワークを通じてオフチェーンデータの整理と提供を可能にすることで、この課題に対する独自のソリューションを提示します。 この方式は、従来はオフチェーンのデータをIPFS(InterPlanetary File System)に投稿し、IPFSハッシュをオンチェーンで記録するワークフローです。 その後、このデータはサブグラフによってインデックス化され、クエリに利用できるようになります。 このアプローチは、独自の API の構築と保守のオーバーヘッドなしに、複雑で動的なデータを公開および提供するためのスケーラブルで経済的な方法を提供します。

ワークフロー: 3 ステップのプロセス

ワークフローは、次の 3 つの主要コンポーネントで構成されています。

  1. データの計算と投稿のためのcronジョブ:オフチェーンのcronジョブは、複雑な計算を実行し、その結果をIPFSなどのpermawebソースに投稿し、The Graphでインデックス化できるようにします。 このジョブは、IPFSファイルのハッシュと関連するメタデータを投稿するためのオンチェーントランザクションも生成します。

  2. インデックス作成のためのサブグラフの公開:次のステップでは、チェーンに投稿されたファイルハッシュに基づいて、これらのIPFSファイルをインデックス化するサブグラフを公開します。 サブグラフが公開されると、The Graphのネットワーク内のインデクサーによって取得され、提供され、サードパーティの開発者やユーザーがデータをクエリできるようになります。

  3. 堅牢で信頼性の高いデータアクセス:The Graphのインデクサーの分散ネットワークを活用することで、データパブリッシャーが追加の労力を費やすことなく、データアクセスの堅牢性と信頼性が維持されます。 この分散型構造により、データの可用性と整合性が大幅に向上します。

実用的な実装とコスト効率

The Graphエコシステムの実用的な例は、ネットワークコストとサービス品質のメトリクスを公開するためにEdge & Nodeが開発したオラクルです。 このオラクルは、5分ごとに集約されたデータをIPFSに投稿し、IPFSファイルハッシュをGnosisチェーンに記録します。 このデータはサブグラフにインデックス化され、プロトコルの利害関係者が利用することができます。 このワークフローに関連するコストは驚くほど低く、データパブリッシャーにとって魅力的なオプションとなっています。

動的データの新たな可能性

動的データにThe Graphを使用するこの方法は、ブログのリーンバックエンド、アルゴリズムによるコンテンツキュレーション、リアルタイム監視システムなど、permawebサイトにエキサイティングな新しい可能性を開きます。 これは、データの公開、インデックス作成、アクセスの方法に大きな変化をもたらし、よりオープンで協調的なWeb3エコシステムを促進します。

オフチェーンデータの整理:The Graphの革新的なアプローチ

The Graphのオフチェーンデータ管理への拡大は、Web3エコシステムに新たな道を開き、分散型データ領域と従来のデータ領域の間の架け橋となります。 このイニシアチブは、オンチェーンのデータストレージと計算に固有の制限に対処し、分散型でより広い範囲の情報にアクセスできるようにするというThe Graphの使命を反映しています。

オンチェーンとオフチェーンのデータニーズのバランスをとる

The Graphは、Web3アーキテクチャにおけるオンチェーンデータストレージと計算のコスト関連のトレードオフを認識しています。 ブロックチェーンとの直接的なやり取りは簡単ですが、複雑な計算や大規模なデータストレージは法外なコストになる可能性があります。 これらの制限を回避するために、The Graphはオフチェーンのデータストレージとオンチェーンのデータ参照を組み合わせる方法を導入し、機能を強化しながら分散型の精神を維持しています。

The Graphのオフチェーンデータの方法論

このアプローチには、次の 3 つの手順のワークフローが含まれます。

  1. オフチェーン計算とIPFSポスティング:複雑な計算はオフチェーンで行われ、結果のデータは分散型ストレージソリューションであるIPFSにポストされます。 このステップにより、データはオフチェーンでありながら、検証可能で分散化された方法で保存されます。

  2. トランザクションによるオンチェーンリンク:IPFSにデータを保存するとともに、対応するオンチェーントランザクションが行われ、IPFSハッシュやその他の関連するメタデータが記録されます。 この方法は、オフチェーンデータをブロックチェーンに固定し、信頼性とトレーサビリティのレイヤーを提供します。

  3. アクセシビリティのためのサブグラフのインデックス作成:最後のステップでは、サブグラフを使用してIPFSに保存されたデータのインデックスを作成します。 このプロセスにより、オフチェーンデータは、The Graphの分散型ネットワークを介して簡単に照会およびアクセスできるようになります。
    実践的な実装:Edge & NodeのOracle

The Graphのエコシステムにおけるこの方法論の実用的な応用は、Edge & Nodeによって開発されたオラクルである。 このオラクルは、ネットワークコストとサービス品質メトリックを次の方法で5分ごとに公開します。

  • 集計されたデータはIPFSに投稿されます。

  • 対応するIPFSファイルハッシュは、DataEdgeコントラクトを介してGnosisチェーンに記録されます。

  • これらのIPFSファイルはサブグラフにインデックス化され、利害関係者が分散型でデータを利用できるようにします。
    この実装は、独自の API を必要とせずに複雑なデータを公開および提供するための、低コストでスケーラブルで効率的なアプローチを示しています。 これは、The Graphの手法を活用して、さまざまなアプリケーション用の動的データソースを作成する方法を例示しています。

コスト効率と拡張性

このワークフローに関連するコストは驚くほど低く、データ発行者にとって魅力的なソリューションとなっています。 例えば、Edge & Nodeによるオラクルの実装では、オンチェーントランザクションとIPFSノードのピン留めにかかる費用は最小限に抑えられ、サービスコストはデータコンシューマが負担します。 このモデルは、堅牢で信頼性の高いデータアクセスを確保しながら、データ発行者の運用オーバーヘッドを効果的に削減します。

新しいWeb3ユースケースの実現

この手法は、ブログの動的バックエンド、アルゴリズムによるコンテンツキュレーション、リアルタイム監視システムなど、permawebアプリケーションの新たな可能性を解き放ちます。 これにより、データパブリッシャーとアプリ/フロントエンドオペレーターを分割することができ、オープンソースコミュニティでの専門化と分業が促進されます。 このアプローチは、分散型のソーシャルアプリケーションやプロトコルに有望であり、分散型データの公開と消費に新たな道筋を提供します。

The Graph のクエリ言語と API: GraphQL の採用

選択したクエリ言語としての GraphQL の統合。 この決定は、The GraphのAPIを介したデータへのアクセスと操作の方法を大きく左右し、ブロックチェーンデータを照会するための合理的で効率的な方法を提供します。

グラフにおけるGraphQLの役割を理解する

GraphQLは、最新のAPI設計の最前線に立ち、データ取得への柔軟で効率的なアプローチを提供します。 データ構造が複雑で進化し続けるブロックチェーンのコンテキストでは、必要なものを正確に取得するGraphQLの能力は非常に貴重になります。

  1. カスタマイズされたデータクエリ:GraphQLの魅力の核心は、クライアントが必要とするデータの構造を正確に定義できることです。 この機能は、従来の固定構造応答とは大きく異なり、より焦点を絞った効率的なデータ操作を可能にします。

  2. リアルタイムインタラクションの強化:The GraphのGraphQLは、クエリだけでなく、リアルタイムのデータサブスクリプションもサポートしています。 この機能は、タイムリーな更新と応答性がユーザーエクスペリエンスの鍵となるブロックチェーンアプリケーションにとって不可欠です。

  3. 分散型でトラストレスなデータアクセス:The Graphは、GraphQLを使用して、分散化の哲学をデータアクセスの領域に拡張しています。 GraphQLクエリは、分散型ノードのネットワークと連携することで、データのオープン性、透明性、検閲耐性を確保します。
    APIとGraphQLの融合

The Graphのエコシステムでは、APIとGraphQLの融合により、データ取得のための調和のとれた強力なシステムが構築されています。

  1. スキーマ定義とデータマッピング: 開発者は、サブグラフ内で GraphQL スキーマを定義し、クエリ可能なデータの構造を概説します。 その後、スキーマはブロックチェーンイベントに複雑にマッピングされ、オンチェーンアクティビティが構造化データに変換されます。

  2. インデクサーによるクエリの実行:GraphQLクエリがサブグラフAPIに送信されると、The Graphのインデクサーの分散型ネットワークによって処理されます。 このプロセスは、ブロックチェーン技術の原則を支持し、クエリが分散的に実行される方法を例示しています。

  3. 複雑なデータ関係の処理:ブロックチェーンでは複雑なデータ関係が一般的であるため、さまざまな形式のデータフィルタリングやソートなど、複雑なクエリを処理するGraphQLの機能は特に有益です。

開発者とエンドユーザーにとってのメリット

GraphQLをThe Graphに統合すると、多くのメリットがもたらされます。

  • 開発者の柔軟性: 開発者は、GraphQL の機能をフルに活用して、アプリケーションの要件に正確に適合するクエリを作成できます。
  • 効率的なデータ取得:データ取得時間の短縮により、アプリケーションのパフォーマンスが向上し、エンドユーザーエクスペリエンスの向上に直結します。
  • シームレスなデータ統合:GraphQLクエリの標準化された性質により、多様なブロックチェーンデータソースをアプリケーションに統合するプロセスが簡素化されます。
免責事項
* 暗号資産投資には重大なリスクが伴います。注意して進めてください。このコースは投資アドバイスを目的としたものではありません。
※ このコースはGate Learnに参加しているメンバーが作成したものです。作成者が共有した意見はGate Learnを代表するものではありません。
It seems that you are attempting to access our services from a Restricted Location where Gate is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.