Subgraph ID vs Deployment ID
Reading time: 3 min
サブグラフはサブグラフIDで識別され、サブグラフの各バージョンはデプロイメントIDで識別されます。
サブグラフをクエリする場合、どちらのIDも使用できます。しかし、この2つのオプションには重要な違いがあります。
Subgraph IDは、サブグラフの一意な識別子です。このIDは、サブグラフのすべてのバージョンで一定のものです。Subgraph IDを使用してクエリを実行する場合、バージョンは指定されません。つまり、クエリに応答するサブグラフのバージョンは、最新バージョンとは限りません。むしろ、同期された健全な最新バージョンになります。
Subgraph ID を使用するエンドポイントの例:
https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW
デプロイされたサブグラフを表示しているとき、以前にデプロイされたバージョンを選択することができます。そのリスト内の各バージョンは、ユニークななDeployment IDを持っています。
Deployment IDを使用してクエリを実行する場合、そのサブグラフのバージョンを指定してクエリを実行します。つまり、クエリに応答するサブグラフのバージョンは、Deployment IDで指定されたバージョンになります。
Deployment ID を使用するエンドポイントの例:
https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB
最新バージョンのサブグラフが確実にクエリに応答するようにするには、Deployment IDを使用する必要があります。この場合、サブグラフの新バージョンを公開するたびに、フロントエンドでDeployment IDを更新する必要があります。
サブグラフの特定のバージョンをクエリしていることを確認したい場合は、Deployment IDも使用します。
最新バージョンのサブグラフが常にクエリに応答することを保証する必要がない場合は、Subgraph IDを使用することができます。しかし、この場合、古いバージョンのサブグラフがクエリに応答する可能性があることに注意してください。