The Graph Networkで効率的にインデクサーになる方法
The Graph Foundation
web3領域にコミットするのであれば、個人や企業の収入源としてインデクサー運用の開始も良い選択肢となるでしょう。詳細はThe Graph Docsを参照し、The Graph Academyで学びを深めてください。
ブロックチェーンデータへのオープンで信頼性の高いアクセスは、web3の普及に伴って、分散型インターネットのコアコンポーネントの1つとして需要が高まり続けています。The Graph Networkは、ユーザーがブロックチェーンデータを分散型方法で照会(クエリ)できるようにすることで、web3スタックの分散化を維持し、開発者が中央集権的なエンティティを信頼する必要がない、堅牢で安全かつ回復力のあるDappsを構築できるようにします。
The Graphのデータアクセスを支える、地理的に分散した個々の貢献者をインデクサーと呼びます。インデクサーはThe Graph Network上のノードを操作し、ブロックチェーンのデータを整理するサブグラフ(オープンソースAPI)のインデックスを作成します。Dappsはデータを取得するためにクエリを発行し、Indexerはそのクエリを提供することで、開発者はDappsのユーザーに対して光速のユーザー体験を実現することができます。
このガイドでは、The Graph Networkで最高クラスのインデクサーになるための要件、ベストプラクティス、コミュニケーション戦術を学ぶことができます。
インデクサーの要件
The Graph Networkでインデクサーになるために必要な主な要件は4つあります:
ステーキング
最低10万GRTのステークが必要となります。これは最低条件であり、上限はありません。デリゲーターはインデクサーに委任することができ(インデクサーにGRTをステークする)、それによってあなたのステーク資産を最大16倍まで引き上げることができます。インデクサーはインデックスを作成したサブグラフにステークを割り当てるため、ステークを大きくすることでより多くのサブグラフに対応でき、より柔軟な運用が可能になります。
スキル
理想的には、インデクサーはDevOpsのバックグラウンドを持っているか、ブロックチェーンノードを操作した経験を持っていたほうがいいでしょう。クラウドやホスティングサーバーのデプロイ、自身のサーバーハードウェアの運用に慣れていること。そして、バリデータノードの運用と Linux での作業に精通していることも推奨されます。
ハードウェア
効率、クエリ出力、速度のバランスを取るため、多くのインデクサーは16 CPU、1 TB のディスク、32 GB の RAM のセットアップから始めることが多いようです。ハードウェアの要件や推奨環境については、The Graph Academyで詳しく説明されています。
インフラストラクチャーソフトウェア
DockerやKubernetesなどのコンテナやスケーリング技術に精通していると有利ですが、Graphソフトウェアをベアメタルにデプロイすることも可能です。インフラストラクチャー・ソフトウェアの要件には、PostgreSQL データベース、グラフノード、インデクサーエージェント、インデクサーサービス、Prometheus metrics serverなど、要件と設定に応じてその他のものが含まれます。
インデクサーのベストプラクティス
基本的なセットアップ、スキル、ハードウェア、インフラストラクチャーソフトウェア、GRTのステークを準備した後、インデクサーは、The Graphの分散型ネットワーク上での運用方法を学ぶ必要があります。具体的には、サブグラフの割り当て、デリゲートの促進、サブグラフデータのインデックス作成について、選択的かつ意図的に行うことが求められます。
サブグラフへの割り当て
インデクサーは、インデックスを作成しクエリを提供したいサブグラフにステークの一部を割り当てます。インデクサーは、サブグラフに対するキュレーションシグナルと、発生するクエリフィーに比例して、サブグラフのステークを割り当てることが推奨されます。キュレーターはGRTをステークすることでサブグラフのシグナルを出し、それによってどのサブグラフを優先すべきかをインデクサーに示します。これはエポックごとに変わる可能性があります。
割り当ては、プロトコルがインデクサー、キュレーター、デリゲーターに割り当てるGRT量を決定する方法に影響するもので、各割り当ては、有効なインデックス証明(PoI)を用いて28エポック以内に終了しなければなりません。エポックは24時間毎に、インデクサーが割り当てられたサブグラフを正確にインデックスしていることを確認します。割り当て報酬は、エポック終了時に、処理したクエリ数とインデクサーがサブグラフに割り当てたステーク量に基づいて、インデクサーに分配されます。
クエリフィー・リベートのライフサイクル
クエリフィー・リベートとは、データへのクエリに対してDappsやユーザから支払われるGRTを指します。この支払いはゲートウェイによって仲介され、インデクサーとデリゲーター間で分配されるものです。
クエリフィーは割り当ての終了時点でゲートウェイに集められ、リベートプールに蓄積されます。リベートプールは、インデクサーがネットワークのために獲得したクエリフィーの量に比例してステークを配分するよう設計されています。割り当てが終了すると、リベートはインデクサーの請求に応じることができ、請求するとクエリフィー・リベートは、クエリフィー・カットとデリゲーションプールの比率に基づいて、インデクサとそのデリゲーターに分配される仕組みです。
正確なデータのインデックス作成
インデクサーは、正確なデータを提供するよう奨励されています。割り当てが終了すると、インデクサーはフィッシャーマンから「チャレンジ」を受ける可能性があります。フィッシャーマンとは、The Graphのエコシステムにおいて、インデクサーが提供するデータに偽りがあることを発見する役割を指します。異議申し立てを行うには、10,000GRTを入金する必要があります。論争が受け入れられた場合、インデクサーの報酬はスラッシュされ、フィッシャーマンはスラッシュされた報酬の50%を受け取り、残りの50%はバーンされます。主張が却下された場合、フィッシャーマンの10,000GRTがバーンされる仕組みです。
もしインデックスが偽のデータを出した場合、自身のステーク量の2.5%をスラッシュされる危険があります。スラッシュは委任されたステークには適用されませんが、インデクサーが悪意があるとみなされるとデリゲーターのその後の支持を失うことになるでしょう。
デリゲーターを引き付け、The Graphコミュニティをサポートする
インデクサーは、より多くのクエリを処理し、分散型アプリケーションに電力を供給することで、努力に見合う利益を得るインセンティブを得ます。クエリに対応する能力は、デリゲーターがインデクサーに委任した GRT 量に応じて増加します。
デリゲーターがインデクサーを評価する方法は複数あります。提供されたデータの質に基づく客観的なものもあれば、コミュニティへの参加やTelegramやDiscordでのメッセージへの対応に基づく主観的なものもあります。
効果的なリワードカット
リワードカットは、デリゲーションプールから受け取ったインデクサー報酬からインデクサーが受け取るリベートです。記事執筆時点では、ほとんどのインデクサーは通常7–12%のリワードカットを提供しています。より低いリワードカットを行うインデクサーは、デリゲーターにより多くのGRTを付与できますが、これはインデクサーが提供するGRT報酬の割合を小さくすることになります。
これはインデクサーが発生させるクエリフィーの実質的なカット分です。ネットワークが成長し、ネットワーク内のクエリ収入量が増えるにつれて、この数字はインデクサーの委任に値するかどうかを判断する際に、より重要になるでしょう。
マーケティング
デリゲートを集める最も効果的な方法のひとつは、あなたのインデクサーノードに関連するENSドメインを持つことです。デリゲーターがThe Graph Explorerでインデクサーを選択すると、インデクサーのウォレットアドレスかENSドメインのどちらかが表示されます。
ENSドメインは、あなたのインデクサーノードを認識しやすいものにします。これはデリゲーターがあなたを見つけることを容易にし、インデクサーとしてのマーケティングとコミュニティのアウトリーチにおいて、有効なアンカーポイントになります。
コミュニティ参加
インデクサーであることの最も重要な側面の一つは、The Graphコミュニティに参加し、コミュニケーションを維持することです。活躍するインデクサーの中には、豊富なマインドセットで活動し、インフラストラクチャの効率的な運用を互いに助け合っている人がいます。また、コミュニティの活動は、ネットワーク上でデリゲートする際にインデクサーを探しているデリゲーターとの信頼関係の構築にも役立ちます。
参加する方法は複数あります:
インデクサーのオフィスアワー
インデクサーや、インデクサーとしての参加に興味のある方は、オフィスアワーに参加されることをお勧めします。毎週火曜日の17:00–18:00 UTCに会議があります。どんな質問でも歓迎します。このミーティングはThe Graph Discordのビデオチャンネル「Stage」で行われています。
誰でも参加できるイベントで、インデックスの作成に関するアドバイスを受けたり、関連する質問に対する回答を得る機会でもあります。全てのオフィスアワーは録画されており、YouTubeで過去の履歴を見ることができます。
ディスコード・アクティビティ
インデクサーは、他のインデクサーとヒントを共有したり受け取ったり、プロトコルの変更に関する最新情報を得るために、 インデクサー用のDiscordチャンネルで活動することが強く推奨されています。
ガバナンスへの参加
The Graphはオープンなプロトコルであり、コミュニティがその将来を決定します。インデクサーは、フォーラムで様々なガバナンスの提案(グラフ改善提案、GIPと呼ばれる)に参加し、意見を述べることが推奨されています。
誰でもガバナンス提案への支持や反対を表明し、自ら変更を提案することができます。これにより、より良いアイデアが生まれるオープンなコミュニティが実現します。
コアDevコール
毎月、The Graphエコシステムの様々なコア開発チームや他のワーキンググループの貢献者がコアDevコールに集まり、プロトコルの主要なアップデートについて議論し、様々な研究開発トラックについて一緒にブレーンストーミングを行っています。
The Graph Networkの今後の改善やインデクサーのエクスペリエンスに関する開発について知るために、これらの会話をライブで聞いたり、録画を閲覧することをお勧めします。
グラフ財団のエコシステムカレンダーから各コア開発コールの開催日を確認し、コアR&Dワークスペースをレビューして、重要なワークストリームに関する各ワーキンググループの進捗状況、ミーティングのメモ、録画にアクセスしてください。
推奨される技術セットアップ
インデクサーは、データへのオープンで分散されたアクセスを保証することで、web3に非常に貴重なリソースを提供します。インデクサーになるには、従来のバリデータノードよりも少し理解が必要となりますが、web3革命に貢献する非常に有益な機会となるでしょう。コミュニティのサポートや豊富なリソース、プロセスの合理化と簡略化を支援するツールも揃っています。
このセクションでは、ツールの概要とその機能を紹介します:
Grafana
インデックス作成の最も重要な側面の1つは、データのクエリとモニタリングです。Grafanaは、これを簡単に行うことができるオープンソースのソフトウェアで、メトリクス、ログ、トレースを監視することができます。
Grafanaには、インデキシングプロセスを効率化する便利な機能がたくさんあります:
- アラート機能:PagerDuty、SMS、メール、VictorOps、OpsGenie、またはSlackを介して特定のイベントが発生したときに通知されます。サブグラフに問題が発生したり、予期せぬ数のクエリが発生した場合、すぐに知ることができます。
- ダッシュボードとプラグインのインポート:エコシステムメンバーを含むコミュニティから提供される数百のダッシュボードとプラグインを使用できます。
- プロビジョニング:単一のスクリプトでダッシュボードのセットアップを自動化します。
- アクセス権:ダッシュボードへの異なるレベルのアクセス権を持つ複数のチームを管理できます。組織的にインデクサーノードを実行している場合、組織内の複数のチームが適切なデータにアクセスすることができます。
Grafana の強みの 1 つは、システム監視およびアラートツールキットであるPrometheusとの連携です。Prometheusのメトリクスサーバーは、ネットワーク上のインデクサーで広く利用されています。Graph Nodeとインデクサーコンポーネントは、そのメトリクスをメトリクスサーバーに記録します。Grafanaを使い始める場合は、公式チュートリアルから始めることができます。
ロギングツール
Graphの公式ドキュメントでは、インデクサーはGoogle Cloud上のTerraformでサーバーインフラをセットアップするように指示されています。これにより、インデクサーはGoogle Logsを使ってリアルタイムにログデータを管理・分析することができます。
あるいは、インデクサーによってはGrafana Logsを利用することもあるようです。また、ロギングツールを一切利用しないことを選択した人もいます。このように、インデクサーは、それぞれのニーズに合わせて設定を調整することが推奨されます。
Graphman
Graphmanは、インデクサーが特定のサブグラフで作業する際に問題解決を支援するコマンドラインツールです。Graphmanコマンドは、公式コンテナに含まれています。
Graphman は、インデクサーが最も正確なデータを維持することを可能にします。サブグラフの新バージョンがデプロイされたとき、以前のサブグラフのデータはまだデータベースに存在しています。Graphmanを使うことで、インデクサーは未使用のサブグラフを削除し、新しいサブグラフのデータのみを利用できるようにすることができます。
Graphmanには、割り当てを変更するコマンドもあります。各デプロイは、インデックスを作成するために特定のグラフノードインスタンスに割り当てられます。Graphmanでは、再割り当てまたは修正によってインスタンスを変更することも可能です。まだGraphmanを使用していない場合は、こちらで設定ファイルを作成することができます。
PostgreSQL
カスタムインデックスを作成するには、PostgreSQLの基本的な理解が必要です。グラフノードはサブグラフデータを保存するためにPostgreSQLデータベースを使用します。インデクサーサービスおよびエージェントも、状態チャネルデータ、コストモデル、インデックス作成ルールを保存するために使用します。
PostgreSQLの統計コレクタは、サーバの活動を収集し報告するのにも便利です。これによって、インデクサーはサーバの活動に基づいて設定を徐々に最適化することができます。
AllocationOpt
インデクサーが行う最も重要な決定の一つは、The Graph上のステークをどのように割り当てるかです。AllocationOpt は、より小さな決定を自動化することで、インデクサーがどのようにステークを割り当てるべきかの最適化を支援するライブラリです。AllocationOpt の詳細については、こちらをご覧ください。
リソースとガイド
The Graphコミュニティはオープンでアクセスしやすい環境です。膨大なコミュニティメンバーが、無料のチュートリアル、ツール、コードスニペットを提供しています。インデクサーノードの実行は困難な場合があるため、プロセスをできるだけ簡単にするために、貴重なリソースを互いに提供する努力を続けています。
このセクションでは、インデクサーとして活躍するためのガイドとリソースを提供します。
インデクサーガイド
各ガイドは、インデクサー向けに設計されています:
- Official Indexer Documentation
- Indexer Subgraph Selection Guide
- Graph Protocol Mainnet Docker Guide
- The Graph Academy’s Indexer Tutorial
インフラガイド
インデクサーは、ノードを実行するために様々な異なるインフラストラクチャのセットアップを使用します。各ガイドはThe Graphエコシステムから直接提供されたものではありませんが、インデクサーになるためのインフラをセットアップするための貴重なリソースとなります:
ツールおよびリソース
The Graphでインデクサーになるためのリソース:
- Graphscan
- Indexer Office Hours
- Allocation Optimization Library
- Indexer Components & Infrastructure
- Manage Allocations & Optimizing Indexing Rewards
- Becoming an Indexer at The GRTiQ Podcast
- Maplenodes Graph Dashboards and API
- Stakemachine Graph Dashboards
- Graphtronauts Graph Dashboards
インデックスの旅を始めませんか?
インデクサーになることは、web3領域の公共財としてのブロックチェーンデータアクセシビリティに貢献する機会です。web3のインデックス作成とクエリレイヤーに貢献することで、公平で相互運用性が高く、協力的なインターネットを作るために活動している歴史的な活動に加わることができるのです。
分散化されたオープンソースの方法でデータをインデックスし提供することは、サイロ化され、抽出され、操作される中央集権的なデータストアから世界を解き放ちます。
web3領域にコミットするのであれば、個人や企業としての収入源としてインデクサーの運用を開始することも良い選択肢となるでしょう。詳細はThe Graph Docsを参照し、The Graph Academyで学びを深めてください。