新しいネットワークの統合

Reading time: 6 min

Graph Nodeは現在、以下のチェーンタイプからデータをインデックス化できます:

もしご興味があるチェーンがあれば、統合はGraph Nodeの設定とテストの問題です。

異なるチェーンタイプに興味がある場合、Graph Nodeとの新しい統合を構築する必要があります。私たちの推奨するアプローチは、問題のチェーン用に新しい Firehose を開発し、その Firehose を Graph Node と統合することです。詳細は下記をご覧ください。

1. EVM JSON-RPC

ブロックチェーンが EVM と同等であり、クライアント/ノードが標準の EVM JSON-RPC API を公開している場合、グラフ ノードは新しいチェーンのインデックスを作成できるはずです。 詳細については、「EVM JSON-RPC のテスト」(new-chain-integration#testing-an-evm-json-rpc) を参照してください。

2. Firehose

EVMベースでないチェーンの場合、Graph NodeはgRPCと既知の型定義を介してブロックチェーンデータを取り込む必要があります。これはStreamingFastによって開発された新技術であるFirehoseを介して行うことができ、ファイルベースとストリーミングファーストアプローチを使用して高度にスケーラブルなインデックス化ブロックチェーンソリューションを提供します。Firehoseの開発でサポートが必要な場合は、StreamingFastチームまでご連絡ください。

EVM JSON-RPC と Firehose の違い

このセクションへのリンク

これらの2つの方法は、サブグラフに適していますが、Substreams, を使用して開発者がビルドする場合、常にFirehoseが必要です。これには、Substreams-powered subgraphs のようなサブストリームを活用したサブグラフの構築が含まれます。さらに、FirehoseはJSON-RPCと比較して、改善されたインデックス化速度を提供します。

新しいEVMチェーンの統合者は、サブストリームの利点とその大規模な並列化されたインデックス化能力を考慮して、Firehoseベースのアプローチも検討することができます。両方をサポートすることで、開発者は新しいチェーンに対してサブストリームまたはサブグラフのどちらを構築するかを選択できるようになります。

注意: EVM チェーンの Firehose ベースの統合では、インデクサーがチェーンのアーカイブ RPC ノードを実行してサブグラフに適切にインデックスを付ける必要があります。 これは、通常「eth_call」RPC メソッドによってアクセスできるスマート コントラクト状態を Firehose が提供できないためです。 (eth_calls は 開発者にとって良い習慣ではない であることを思い出してください)


EVM JSON-RPC のテスト

このセクションへのリンク

Graph NodeがEVMチェーンからデータを取り込むためには、RPCノードは以下のEVM JSON RPCメソッドを公開する必要があります。

  • eth_getLogs
  • eth_call _(for historical blocks, with EIP-1898 - requires archive node):
  • eth_getBlockByNumber
  • eth_getBlockByHash
  • net_version
  • eth_getTransactionReceipt, in a JSON-RPC batch request
  • trace_filter (optionally required for Graph Node to support call handlers)

ローカル環境を準備することから始めます

  1. Clone Graph Node
  2. この行 を変更して、新しいネットワーク名と EVM JSON RPC 準拠の URL を含めます。

    環境変数名自体は変更しないでください。ネットワーク名が異なる場合でも、「ethereum」という名前のままである必要があります。

  3. IPFSノードを実行するか、The Graphが使用するものを使用してください: https://api.thegraph.com/ipfs/

サブグラフをローカルにデプロイして統合をテストします。

  1. Install graph-cli
  2. 簡単なサブグラフの例を作成します。 いくつかのオプションを以下に示します。
    1. 事前にパックされた Gravitar スマート コントラクトとサブグラフは良い出発点です。
    2. 既存のスマート コントラクトまたは Solidity 開発環境からローカル サブグラフをブートストラップする グラフ プラグインで Hardhat を使用
  3. Adapt the resulting subgraph.yaml by changing dataSources.network to the same name previously passed on to Graph Node.
  4. グラフ ノードでサブグラフを作成します: graph create $SUBGRAPH_NAME --node $GRAPH_NODE_ENDPOINT
  5. サブグラフをGraph Nodeに公開するには、次のコマンドを使用します:graph deploy $SUBGRAPH_NAME --ipfs $IPFS_ENDPOINT --node $GRAPH_NODE_ENDPOINT

Graph Nodeはエラーがない場合、デプロイされたサブグラフを同期するはずです。同期が完了するのを待ってから、ログに表示されたAPIエンドポイントに対していくつかのGraphQLクエリを送信してください。


新しい Firehose 対応チェーンの統合

このセクションへのリンク

新しいチェーンを統合することは、Firehoseアプローチを使用しても可能です。これは、非EVMチェーン向けの現在の最良のオプションであり、サブストリームサポートの要件でもあります。追加のドキュメントでは、Firehoseの動作方法、新しいチェーンへのFirehoseサポートの追加、およびGraph Nodeとの統合に焦点を当てています。統合者に推奨されるドキュメント:

  1. General docs on Firehose
  2. 新チェーンのFirehoseサポート追加
  3. Integrating Graph Node with a new chain via Firehose
ページを編集

チェーン統合プロセスの概要
Firehose
ページを編集