はじめに
初めての投稿がかなり特殊なものにはなってしまいますが、Web3やNFT領域のスタートアップでインターンをしているグヌさんです。ブロックチェーンやNFT等に関連するプロダクトの開発において、ブロックチェーンから様々な情報(トランザクション、NFTプロジェクトの関連性、勢いのあるプロジェクトなど)を取得する必要があるのですが、現時点ではブロックチェーンからデータを取得するには、スマートコントラクトやweb3のための特別なコードを書く必要があるため、それだけで大きな負担となります。そこで、ブロックチェーンの情報を検索するための新たな手法として、今回挑戦する「The Graph」が登場します。
注意
この記事ではコードを書かずに概要だけを説明する形になります。
この記事から何度かに分けてThe GraphのDocumentationを攻略していくことを目的としています。
今回のテーマ 「The Graph」概要
1. The Graphとは
公式のドキュメントの内容をベースに、説明をしていきます。
The Grahpは既に書いたように分散型データ検索のプロトコルで、ブロックチェーンから直接データを取得することが難しいものをより簡単に実現することができるようにするためのものです。
NFTのようにスマートコントラクトを利用してデータを管理している一連のデータ群と情報をやりとりする場合、所有者のアドレスや、TokenIdのような情報などプログラムされたものについては、シンプルな手順を踏めば情報を取得することができます。しかし、BAYCのようなコレクティブルNFTの特徴量などでFilterをかけたり、より高度なクエリやデータ操作については、現在は簡単には実現することができません。
そこで、ブロックチェーンデータにIdexをつけ、情報操作をしやすくするThe Graphを用いてこれらの問題を解決しようということです。
2. どのように機能するのか
The Graphは、Graph Nodeと呼ばれるオープンソースのノードを中心に、各人が構築するsubgraphが集まることで機能しています。Graph Nodeは、ブロックチェーン上に追加され続けるデータを収集する機能を備えており、それらのデータをsubgraphの定義に従ってクエリできるようにします。Graph Nodeのデータをクエリするには、標準のGraphQL APIを利用することができ、それを使って分散型アプリケーション(dApps)に役立てることができます。
また、The Graphのネットワークにはトークンエコノミーが採用されており、subgraphの設計、構築をはじめとしてThe Graphのエコシステムの持続、繁栄に貢献する人々への報酬としてGRT(グラフトークン)が支払われ、The Graph APIの利用者は、反対にGRTを消費してデータをクエリする必要がある。
3. 実際に使ってみる
実際に、subgraphの構築や既に誰かが構築したsubgraphからGraphQLを利用してデータを取得してみる作業を次回以降説明していきます。
感想
概要を見る限り色々な用途で使える便利なサービスですが、subgraphを構築することやトークンのやりとりに際して一定以上の技術、知識が必要になりそうな予感がするので、その辺を調査していこうと思います。