ザ・グラフ(GRT)初心者が知っておくべき基本用語
ザ・グラフ(GRT)は、ブロックチェーン技術を活用したWeb3のインフラストラクチャであり、分散型アプリケーション(dApps)が効率的にデータを取得・利用するための基盤を提供します。GRTは、The Graph Networkというプロジェクトによって開発・運用されており、その利用は、dAppsの開発者にとって不可欠なものとなりつつあります。本稿では、GRTを理解し、活用するための基本的な用語を網羅的に解説します。初心者の方々が、GRTの世界にスムーズに入り込むための手助けとなることを目指します。
1. ブロックチェーンとデータ取得の課題
ブロックチェーンは、その分散性と不変性により、安全で信頼性の高いデータ管理を実現します。しかし、ブロックチェーン上のデータは、そのままではアプリケーションが利用しにくい形式で保存されています。例えば、スマートコントラクトのイベントログは、複雑な構造を持ち、特定の情報を抽出するには高度な処理が必要です。従来の集中型データベースとは異なり、ブロックチェーン上のデータを効率的に取得・整理することは、大きな課題でした。この課題を解決するために、The Graph Networkが開発されました。
2. The Graph Networkとは
The Graph Networkは、ブロックチェーン上のデータをインデックス化し、GraphQLというクエリ言語を用いて効率的に取得するための分散型プロトコルです。GraphQLは、クライアントが必要なデータのみを要求できるため、従来のREST APIと比較して、データ転送量を削減し、パフォーマンスを向上させることができます。The Graph Networkは、Indexerと呼ばれるノードによって構成されており、Indexerは、Subgraphと呼ばれるデータ定義に基づいて、ブロックチェーン上のデータをインデックス化します。
3. GRT(Graph Token)とは
GRTは、The Graph Networkのエコシステムで使用されるネイティブトークンです。Indexerは、Subgraphのインデックス化とクエリの提供に対してGRTを受け取ります。また、Curatorと呼ばれる参加者は、Subgraphの品質を評価し、GRTをステーキングすることで報酬を得ることができます。GRTは、The Graph Networkのセキュリティと分散性を維持するために重要な役割を果たします。
4. Subgraphとは
Subgraphは、ブロックチェーン上のデータをどのようにインデックス化し、GraphQLでどのようにクエリできるかを定義するものです。Subgraphは、Manifestと呼ばれるYAML形式のファイルと、スマートコントラクトのコードで構成されます。Manifestには、インデックス化するイベント、エンティティ、マッピングなどが記述されます。マッピングは、イベントログからエンティティを生成し、エンティティ間の関係を定義するJavaScriptまたはAssemblyScriptのコードです。Subgraphは、The Graph Networkにデプロイされると、Indexerによってインデックス化され、GraphQL APIとして公開されます。
5. Indexerとは
Indexerは、Subgraphに基づいてブロックチェーン上のデータをインデックス化し、GraphQLクエリに応答するノードです。Indexerは、GRTをステーキングすることで、The Graph Networkに参加し、報酬を得ることができます。Indexerは、高いパフォーマンスと信頼性を維持するために、十分な計算リソースとストレージ容量が必要です。Indexerは、Subgraphのデータソースであるブロックチェーンのノードに接続し、イベントログを監視します。
6. Curatorとは
Curatorは、Subgraphの品質を評価し、GRTをステーキングすることで、The Graph Networkに貢献する参加者です。Curatorは、Subgraphの正確性、効率性、信頼性を評価し、その評価に基づいてGRTをステーキングします。質の高いSubgraphは、より多くのGRTを獲得し、Indexerによるインデックス化を促進します。Curatorは、The Graph Networkのエコシステムにおける重要な役割を担っています。
7. GraphQLとは
GraphQLは、APIのためのクエリ言語であり、クライアントが必要なデータのみを要求できるという特徴があります。GraphQLは、REST APIと比較して、データ転送量を削減し、パフォーマンスを向上させることができます。GraphQLは、スキーマと呼ばれるデータ構造を定義し、クライアントは、スキーマに基づいてクエリを送信します。GraphQLは、Facebookによって開発され、オープンソースとして公開されています。
8. Manifestとは
Manifestは、Subgraphを定義するYAML形式のファイルです。Manifestには、Subgraphの名前、説明、データソース、エンティティ、イベント、マッピングなどが記述されます。Manifestは、Subgraphの構造と動作を定義する重要なファイルであり、The Graph NetworkにSubgraphをデプロイする際に必要となります。
9. データソースとは
データソースは、Subgraphがインデックス化するブロックチェーン上のデータを提供するものです。データソースは、ブロックチェーンのノードのアドレスと、インデックス化するスマートコントラクトのアドレスで構成されます。Subgraphは、データソースに基づいて、イベントログを監視し、エンティティを生成します。
10. エンティティとは
エンティティは、Subgraphがインデックス化するデータ構造です。エンティティは、ブロックチェーン上のデータを表現し、SubgraphのGraphQL APIを通じてアクセスできます。エンティティは、ID、属性、関係で構成されます。IDは、エンティティを一意に識別するためのものです。属性は、エンティティの特性を表すデータです。関係は、エンティティ間の関連性を定義するものです。
11. イベントとは
イベントは、スマートコントラクトによって発行されるログです。イベントは、ブロックチェーン上の状態の変化を通知するために使用されます。Subgraphは、イベントログを監視し、イベントに基づいてエンティティを生成します。イベントは、名前、引数、インデックスで構成されます。名前は、イベントの種類を識別するためのものです。引数は、イベントに関連するデータです。インデックスは、イベントログを効率的に検索するために使用されます。
12. マッピングとは
マッピングは、イベントログからエンティティを生成し、エンティティ間の関係を定義するJavaScriptまたはAssemblyScriptのコードです。マッピングは、Subgraphのロジックを実装し、ブロックチェーン上のデータをSubgraphのGraphQL APIを通じてアクセス可能な形式に変換します。マッピングは、イベントハンドラとエンティティハンドラで構成されます。イベントハンドラは、イベントログを受信したときに実行されるコードです。エンティティハンドラは、エンティティを生成または更新するために実行されるコードです。
13. The Graph Explorerとは
The Graph Explorerは、The Graph NetworkにデプロイされたSubgraphを検索し、GraphQL APIを試すことができるWebアプリケーションです。The Graph Explorerを使用すると、Subgraphのスキーマ、エンティティ、クエリなどを確認できます。The Graph Explorerは、Subgraphの開発者や利用者が、Subgraphを理解し、活用するための便利なツールです。
14. ネットワークのセキュリティ
The Graph Networkは、GRTのステーキングとCuratorによる評価を通じて、ネットワークのセキュリティを確保しています。Indexerは、GRTをステーキングすることで、不正な動作を防止し、ネットワークの信頼性を維持します。Curatorは、Subgraphの品質を評価し、質の低いSubgraphを排除することで、ネットワークのセキュリティを向上させます。
まとめ
本稿では、ザ・グラフ(GRT)を理解し、活用するための基本的な用語を網羅的に解説しました。GRTは、ブロックチェーン技術を活用したWeb3のインフラストラクチャであり、dAppsの開発者にとって不可欠なものとなりつつあります。本稿で紹介した用語を理解することで、GRTの世界にスムーズに入り込み、dAppsの開発や利用をより効率的に行うことができるでしょう。The Graph Networkは、今後も進化を続け、Web3のエコシステムを支える重要な役割を担っていくことが期待されます。GRTのさらなる発展と、Web3の普及に貢献することを願っています。