【初心者向け】ザ・グラフ(GRT)の始め方完全マニュアル



【初心者向け】ザ・グラフ(GRT)の始め方完全マニュアル


【初心者向け】ザ・グラフ(GRT)の始め方完全マニュアル

ザ・グラフ(GRT)は、ブロックチェーンデータのインデックス作成とクエリ実行を効率的に行うためのオープンソースのGraphQL APIレイヤーです。分散型アプリケーション(dApps)の開発者は、GRTを利用することで、ブロックチェーンから必要な情報を迅速かつ容易に取得し、アプリケーションに統合できます。本マニュアルでは、GRTの基本的な概念から、環境構築、データソースの定義、デプロイメント、そしてクエリの実行まで、初心者向けに完全な手順を解説します。

1. GRTの基礎知識

GRTを理解するためには、いくつかの重要な概念を把握する必要があります。

  • ブロックチェーンデータ:GRTは、Ethereum、Polygon、Avalancheなど、様々なブロックチェーンのデータを扱います。
  • GraphQL:GraphQLは、APIのためのクエリ言語であり、クライアントが必要なデータのみを要求できるため、効率的なデータ取得が可能です。
  • Subgraph:Subgraphは、ブロックチェーンの特定のイベントやエンティティを定義し、GraphQL APIを通じてアクセスできるようにする設定ファイルです。
  • The Graph Node:The Graph Nodeは、Subgraphをホストし、GraphQL APIを提供するためのソフトウェアです。
  • Graph Explorer:Graph Explorerは、公開されているSubgraphを検索し、クエリを実行するためのWebインターフェースです。

GRTの主な利点は以下の通りです。

  • 効率的なデータアクセス:GraphQLを使用することで、必要なデータのみを取得できます。
  • スケーラビリティ:分散型のインデックス作成により、大規模なブロックチェーンデータにも対応できます。
  • 開発の簡素化:Subgraphを定義することで、複雑なブロックチェーンデータの処理を抽象化できます。

2. 環境構築

GRTを使用するには、まず開発環境を構築する必要があります。以下の手順に従ってください。

2.1 Node.jsとnpmのインストール

GRTの開発にはNode.jsとnpm(Node Package Manager)が必要です。以下の公式サイトから最新バージョンをダウンロードしてインストールしてください。

インストール後、ターミナルで以下のコマンドを実行して、Node.jsとnpmが正しくインストールされていることを確認してください。

node -v
npm -v

2.2 The Graph CLIのインストール

The Graph CLIは、Subgraphの作成、デプロイメント、ローカルでの実行を支援するコマンドラインツールです。以下のコマンドを実行してインストールしてください。

npm install -g @graphprotocol/graph-cli

インストール後、ターミナルで以下のコマンドを実行して、The Graph CLIが正しくインストールされていることを確認してください。

graph --version

2.3 Ganacheのインストール(ローカルテスト用)

ローカルでSubgraphをテストするには、Ganacheなどのローカルブロックチェーンが必要です。以下の公式サイトから最新バージョンをダウンロードしてインストールしてください。

3. Subgraphの作成

Subgraphを作成するには、以下の手順に従ってください。

3.1 プロジェクトの初期化

ターミナルで以下のコマンドを実行して、新しいプロジェクトを作成してください。

graph init my-subgraph

このコマンドは、`my-subgraph`という名前のディレクトリを作成し、必要なファイルとディレクトリを生成します。

3.2 schema.graphqlの定義

`schema.graphql`ファイルは、Subgraphが扱うエンティティとイベントを定義します。例えば、EthereumのERC20トークンを扱うSubgraphを作成する場合、以下のような定義を追加します。


type Token @entity {
id: ID!
symbol: String!
name: String!
totalSupply: BigInt!
}

type Transfer @entity {
id: ID!
from: String!
to: String!
value: BigInt!
blockNumber: BigInt!
}

3.3 mappingファイルの作成

mappingファイルは、ブロックチェーンのイベントをSubgraphのエンティティに変換するロジックを記述します。例えば、ERC20トークンの`Transfer`イベントを処理するmappingファイルは以下のようになります。


import { Transfer } from "../generated/schema";

export function handleTransfer(event: TransferEvent): void {
let transfer = new Transfer(
event.transaction.hash.toHex() + "-" + event.logIndex.toString()
);
transfer.from = event.params.from.toHex();
transfer.to = event.params.to.toHex();
transfer.value = event.params.value;
transfer.blockNumber = event.block.number;
transfer.save();
}

3.4 subgraph.yamlの定義

`subgraph.yaml`ファイルは、Subgraphのメタデータ、データソース、mappingファイルを定義します。例えば、ERC20トークンを扱うSubgraphの`subgraph.yaml`ファイルは以下のようになります。


specVersion: '0.20.0'
kind: subgraph
runtimeVersion: '0.20.0'
repository: "https://github.com/your-username/your-subgraph"
dataSources:
- kind: ethereum
name: ERC20
network: mainnet
source: Address(0xdAC17F958D2ee523a2206206994597C13D831ec7)
abis:
- name: ERC20
file: ./abis/ERC20.json
mapping:
kind: ethereum/events
apiVersion: 0.0.7
language: wasm/assemblyscript
src: ./src/mapping.ts
handlers:
- event: Transfer(address,address,uint256)
handler: handleTransfer

4. Subgraphのデプロイメント

Subgraphをデプロイするには、以下の手順に従ってください。

4.1 The Graph Networkへの接続

Subgraphをデプロイするには、The Graph Networkに接続する必要があります。以下のコマンドを実行して、The Graph Networkにログインしてください。

graph auth https://api.thegraph.com/deploy/

このコマンドは、ブラウザを開き、The Graph Networkにログインするための認証フローを開始します。

4.2 Subgraphのデプロイ

以下のコマンドを実行して、Subgraphをデプロイしてください。

graph deploy --studio my-subgraph

このコマンドは、SubgraphをThe Graph Networkにデプロイし、GraphQL APIのエンドポイントを提供します。

5. クエリの実行

Subgraphがデプロイされたら、GraphQL APIを使用してクエリを実行できます。以下の手順に従ってください。

5.1 Graph Explorerへのアクセス

Graph Explorerにアクセスし、デプロイされたSubgraphを検索してください。

5.2 クエリの記述と実行

Graph Explorerで、Subgraphを選択し、GraphQLクエリを記述して実行してください。例えば、ERC20トークンの`totalSupply`を取得するクエリは以下のようになります。


query {
token {
totalSupply
}
}

このクエリを実行すると、Subgraphはブロックチェーンから`totalSupply`を取得し、結果を返します。

まとめ

本マニュアルでは、GRTの基本的な概念から、環境構築、データソースの定義、デプロイメント、そしてクエリの実行まで、初心者向けに完全な手順を解説しました。GRTは、ブロックチェーンデータの利用を簡素化し、dAppsの開発を加速するための強力なツールです。本マニュアルを参考に、GRTを活用して、革新的なdAppsを開発してください。継続的な学習と実践を通じて、GRTの可能性を最大限に引き出すことを期待します。


前の記事

ステラルーメン(XLM)分散型金融(DeFi)と連携強化

次の記事

トークンエコノミーとは?未来のビジネスモデルを理解しよう

コメントを書く

Leave a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です