既存のサブグラフをThe Graph Networkにアップグレードする方法
Reading time: 11 min
これは、ホストされているサービスからThe Graphの分散型ネットワークへのサブグラフのアップグレード方法に関するガイドです。Snapshot、Loopring、Audius、Premia、Livepeer、Uma、Curve、Lidoなどのプロジェクトを含む1,000以上のサブグラフがThe Graph Networkに成功してアップグレードされました!
アップグレードのプロセスは迅速であり、あなたのサブグラフは永久にThe Graph Networkでしか得られない信頼性とパフォーマンスの恩恵を受けることができます。
- You have a subgraph deployed on the hosted service.
If you are logged in to the hosted service, you can access a simple flow to upgrade your subgraphs from , or from an individual subgraph page.
This process typically takes less than five minutes.
- Select the subgraph(s) you want to upgrade.
- Connect or enter the receiving wallet (the wallet that will become the owner of the subgraph).
- Click the "Upgrade" button.
That's it! Your subgraphs will be deployed to Subgraph Studio, and published on The Graph Network. You can access the to manage your subgraphs, logging in with the wallet specified during the upgrade process.
You'll be able to view your subgraphs live on the decentralized network via .
When your subgraph is upgraded, it will automatically be indexed by the upgrade indexer. If the indexed chain is , you can add some GRT as "signal", to attract more indexers. It is recommended to curate your subgraph with at least 3,000 GRT to attract 2-3 Indexers for higher quality of service.
You can start to query your subgraph right away on The Graph Network, once you have generated an API key.
Subgraph StudioでAPIキーを生成するには、をクリックしてください。
You can use this API key to query subgraphs on The Graph Network. All users start on the Free Plan, which includes 100,000 free queries per month. Developers can sign up for the Growth Plan by connecting a credit or debit card, or by depositing GRT to Subgraph Studio billing system.
APIは2つの方法で利用を制限し、セキュリティを確保することが推奨されます。
- オーソライズド・サブグラフ
- オーソライズド・ドメイン
Now you can check the indexing status of the Indexers on the network in Graph Explorer (example ). The green line at the top indicates that at the time of posting 7 Indexers successfully indexed that subgraph. Also in the Indexer tab you can see which Indexers picked up your subgraph.
最初のインデクサーがあなたのサブグラフを完全にインデックス化したら、分散ネットワーク上でサブグラフのクエリを開始することができます。クエリURLを取得するためには、クエリURLの横にある記号をクリックしてコピー&ペーストしてください。以下のような画面が表示されます。
https://gateway.thegraph.com/api/[api-key]/subgraphs/id/S9ihna8D733WTEShJ1KctSTCvY1VJ7gdVwhUujq4Ejo
重要: [api-key] を前述のセクションで生成した実際のAPIキーで置き換えてください。
このQuery URLをダップ内で使用して、GraphQLリクエストを送信することができます。
おめでとうございます。あなたは今、分散化のパイオニアです!
注意: ネットワークの分散性のため、異なるインデクサーが異なるブロックまでインデックスを行っている可能性があります。新鮮なデータのみを受け取るために、次のようにしてクエリを提供するためにインデクサーがインデックスを行った最小ブロックを指定することができます。ブロック引数: { number_gte: $minBlock }
といった形です。以下の例をご覧ください。
{stakers(block: { number_gte: 14486109 }) {id}}
ネットワークの性質や再編成の処理方法に関する詳細な情報は、ドキュメント記事 に記載されています。
If you would like to update an existing subgraph on the network, you can do this by deploying a new version of your subgraph to Subgraph Studio using the Graph CLI.
- Make changes to your current subgraph.
- 以下のようにデプロイし、コマンドに新しいバージョンを指定します(例:v0.0.1、v0.0.2 など)。
graph deploy --studio --version <version> <SUBGRAPH_SLUG>
- Test the new version in Subgraph Studio by querying in the playground
- 新しいバージョンを The Graph Network で公開します。これにはガスが必要であることを忘れてはなりません(上のセクションで説明)。
アップデートには、GRTがサブグラフの古いバージョンから新しいバージョンに移行される必要があります。つまり、毎回のアップデートごとに新しいボンディングカーブが作成されます(ボンディングカーブに関する詳細は)。
新しいボンディングカーブは、新しいバージョンに移行されるすべてのGRTに1%のキュレーション税を課します。オーナーはこのうち50%、すなわち1.25%を支払わなければなりません。もう1.25%は、すべてのキュレーターに料金として請求されます。このインセンティブ設計は、サブグラフのオーナーが再帰的な更新呼び出しでキュレーターの資金をすべて排出できないようにするためのものです。キュレーションの活動がない場合、自分のサブグラフにシグナルを送るためには最低でも100 GRT支払う必要があります。
例を挙げてみましょう。これは、サブグラフが積極的にキュレートされている場合にのみ当てはまります。
- サブグラフの v1 で自動移行を使用して 100,000 GRT が通知される
- オーナーがバージョン2にアップデートします。100,000 GRTが新しいボンディングカーブに移行され、そのうち97,500 GRTが新しいカーブに投入され、2,500 GRTが燃焼されます。
- その後、オーナーは手数料の半分を支払うために1250 GRTを燃やします。オーナーはアップデート前にこれをウォレットに持っていなければならず、そうでない場合、アップデートは成功しません。これはアップデートと同じトランザクションで行われます。
このメカニズムは現在ネットワーク上で稼働していますが、コミュニティでは現在、サブグラフ開発者の更新コストを削減する方法について議論しています。
サブグラフに大量の変更を加えている場合、継続的に更新し、更新コストを負担することは避けるべきです。サブグラフの安定性と一貫性を維持することは非常に重要です。コストの観点だけでなく、インデクサーが同期時間に自信を持てるようにするためです。更新を計画している場合、インデクサーの同期時間に影響が及ばないように、その計画を通知すべきです。サブグラフのバージョンを更新する際に、Discordを活用して、インデクサーに知らせることができます。
サブグラフは、外部開発者が利用しているオープン API です。オープン API は、外部開発者のアプリケーションを破壊しないように、厳格な標準に従う必要があります。グラフ ネットワークでは、サブグラフ開発者は、インデクサーと、そのサブグラフを使用している他の開発者だけでなく、新しいサブグラフを同期するのにかかる時間を考慮する必要があります。
You can update the metadata of your subgraphs without having to publish a new version. The metadata includes the subgraph name, image, description, website URL, source code URL, and categories. Developers can do this by updating their subgraph details in Subgraph Studio where you can edit all applicable fields.
エクスプローラーでサブグラフの詳細を更新 がチェックされていることを確認し、保存 をクリックします。これがチェックされている場合、新しいデプロイメントで新しいバージョンを公開することなく、エクスプローラー内のサブグラフの詳細を更新するオンチェーン トランザクションが生成されます。
- サブグラフの開発に ENS 名を活用する
- プロフィールが充実しているほど、サブグラフがインデックスやキュレーションされる可能性が高くなります。
の手順に従って、サブグラフを非推奨にし、グラフ ネットワークから削除します。
ホストされたサービスは、開発者が制限なしでサブグラフをデプロイできるように設定されました。
On The Graph Network, query fees have to be paid as a core part of the protocol's incentives. For more information on subscribing to APIs and paying the query fees, check out billing documentation .
まだ混乱している場合でも、心配する必要はありません。次のリソースを確認するか、以下の分散ネットワークへのサブグラフのアップグレードに関するビデオ ガイドをご覧ください。