とはホストされたサービス?
Reading time: 4 min
Please note, hosted service endpoints will no longer be available after June 12th 2024 as all subgraphs will need to upgrade to The Graph Network. Please read more in the
このセクションでは、にサブグラフをデプロイする手順を説明します。
ホストされているサービスのアカウントをお持ちでない場合は、GitHub アカウントでサインアップできます。認証が完了すると、UI を介してサブグラフの作成を開始し、端末からそれらのデプロイを開始できます。ホストされたサービスは、Polygon、Gnosis Chain、BNB Chain、Optimism、Arbitrum などの多数のネットワークをサポートします。
First follow the instructions to install the Graph CLI. Create a subgraph by passing in graph init --product hosted-service
選択したネットワークにスマート コントラクトを既に展開している場合は、このコントラクトから新しいサブグラフをブートストラップすることが、ホストされるサービスを開始するための良い方法となる可能性があります。
You can use this command to create a subgraph that indexes all events from an existing contract. This will attempt to fetch the contract ABI from the block explorer.
graph init \--product hosted-service--from-contract <CONTRACT_ADDRESS> \<GITHUB_USER>/<SUBGRAPH_NAME> [<DIRECTORY>]
Additionally, you can use the following optional arguments. If the ABI cannot be fetched from the block explorer, it falls back to requesting a local file path. If any optional arguments are missing from the command, it takes you through an interactive form.
--network <ETHEREUM_NETWORK> \--abi <FILE> \
この場合の <GITHUB_USER>
は GitHub ユーザーまたは組織名、<SUBGRAPH_NAME>
はサブグラフの名前、<DIRECTORY>
です。 graph init
がサンプル サブグラフ マニフェストを配置するディレクトリのオプションの名前です。 <CONTRACT_ADDRESS>
は、既存の契約のアドレスです。 <ETHEREUM_NETWORK>
は、コントラクトが存在するネットワークの名前です。 <FILE>
は、コントラクト ABI ファイルへのローカル パスです。 --network
と --abi
はどちらもオプションです。
graph init
がサポートする 2 つ目のモードは、例となるサブグラフから新しいプロジェクトを作成することです。以下のコマンドがこれを行います:
graph init --from-example --product hosted-service <GITHUB_USER>/<SUBGRAPH_NAME> [<DIRECTORY>]
サンプルのサブグラフは、Dani Grant による Gravity コントラクトをベースにしています。このコントラクトは、ユーザーのアバターを管理し、アバターが作成または更新されるたびにNewGravatar
またはUpdateGravatar
イベントを発行します。サブグラフは、Gravatar
エンティティをグラフノードストアに書き込み、イベントに応じてこれらが更新されるようにすることで、これらのイベントを処理します。を見ると、スマートコントラクトからどのイベントに注意を払うべきか、マッピングなどがよくわかります。
Proxyコントラクトを監視するためのサブグラフを作成するには、実装コントラクトのアドレスを指定してサブグラフを初期化します。初期化プロセスが完了したら、最後のステップとして、subgraph.yamlファイルのネットワーク名をProxyコントラクトのアドレスに更新します。以下のコマンドを使用します。
graph init \--product hosted-service--from-contract <IMPLEMENTATION_ADDRESS> \<GITHUB_USER>/<SUBGRAPH_NAME> [<DIRECTORY>]