The Graphによるサブグラフ作成ガイド
はじめに
このブログ記事では、The Graphを使用してEthereumのCryptoPunksスマートコントラクトのデータを取得し、サブグラフを作成する手順を紹介します。The Graphはブロックチェーンデータを効率的にクエリするための分散型プロトコルであり、DApp開発者にとって非常に役立つツールです。
以下のデモで実施する内容はこちらのリポジトリにあります。
前提条件
- Node.js と yarn がインストールされていること
-
The Graph CLI のインストール (
yarn global add @graphprotocol/graph-cli
) - Ethereumの基本知識 および CryptoPunksスマートコントラクト についての基本的な理解
CryptoPunksのスマートコントラクト情報
CryptoPunksとは 元祖NFTアートコレクションで、8ビットコンピューターで描いたようなドット絵タイプの人気デジタルアートコレクションプロジェクトのことです。
CryptoPunksは、0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbbのアドレスでデプロイされているスマートコントラクトで、Etherscanやその他のツールを使用して詳細を確認できます。
サブグラフの初期化
まず、サブグラフを初期化します。以下のコマンドを実行してください。
graph init --studio helloownerthegraph01
プロンプトに従って、以下の情報を入力します。
- プロトコル: ethereum
- サブグラフスラッグ: helloownerthegraph01
- ディレクトリ: helloownerthegraph01
- Ethereumネットワーク: mainnet
- コントラクトアドレス: 0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb
次に、ABIファイルを取得するためのオプションが表示されますが、Etherscanからの取得に失敗する場合は、ローカルファイルとしてABIファイルを指定してください。
✔ ABI file (path) · [FULL PATH]/abi.json
サブグラフの作成とデプロイ
初期化が完了すると、以下の手順でサブグラフを作成し、デプロイします。
- The Graph Studioでデプロイキーを取得
- 認証:
graph auth --studio [deploy key]
- ディレクトリに移動:
cd helloownerthegraph01
- コードの生成とビルド:
graph codegen && graph build
- デプロイ:
yarn deploy
デプロイが完了すると、サブグラフのクエリエンドポイントが生成されます。
サブグラフの構造
サブグラフの構造は、次のように設計されています。
この設計に基づき、サブグラフはEthereumのPunkTransferイベントをキャプチャし、サブグラフのロジックに従ってデータを処理し、最終的にデータをクエリ可能な形式で提供します。
サンプルクエリ
サブグラフがデプロイされた後、以下のようなクエリを実行してデータを取得できます。
{
assigns(first: 5) {
id
to
punkIndex
blockNumber
}
punkOffereds(skip:0 , first: 100){
toAddress
}
}
このクエリでは、最初の5つのassigns
エンティティと、最初の100個のpunkOffereds
エンティティを取得します。
まとめ
この記事では、The Graphを使用してCryptoPunksのデータをクエリするサブグラフの作成手順を紹介しました。The Graphを使用することで、ブロックチェーンデータへのアクセスが簡単になり、DApp開発の可能性が広がります。
参考リンク
Discussion