跳转到主要内容
本指南详细介绍了设置和使用 Tenderly Virtual Environments 与 The Graph 协同工作的步骤。 要在 Virtual Environments 中使用 The Graph,您需要运行自己的 Graph 节点。如果您正在暂存 dapp,则需要在您选择的云提供商上托管 The Graph 实例。

前提条件

请确保您的系统上已安装以下前提条件:
  • Node.js 和 npm
  • Docker
  • 一个 Tenderly 账户
  • 一个 Virtual Environment RPC
  • 一个使用 HardhatFoundry 部署到 Virtual Environment 的智能合约

设置 The Graph

1
全局安装 Graph CLI
2
使用 npm 在您的系统上全局安装 Graph CLI:
3
npm install -g @graphprotocol/graph-cli
4
有关更多详细信息,请参阅官方 Graph CLI 文档
5
设置 The Graph 项目
6
在您的项目目录中,初始化 The Graph 项目。
7
注意事项:
8
  • 调整 --abi 使其指向本地系统上的合约 ABI
  • 使用合约名称和地址修改 --contract-name--from-contract
  • 设置 --start-block
  • 更改 --network,使其引用您的 Virtual Environment 所基于的网络(例如 mainnetbase 等)。
  • 9
    我们建议让 network 与原始网络的名称匹配,而不将其标记为 virtual_。这使得在部署到不同的 staging 和演示环境时可以轻松切换 RPC。
    10
    graph init your-subgraph-name subgraph-dir \
    --protocol ethereum \
    --studio \
    --abi path/to/abi/ERC20Token.json \
    --contract-name ERC20TokenFactory \
    --from-contract 0x7F2Fa32C991fD2F8dF3EB23C394f550376e9b30d \
    --start-block 0 \
    --network mainnet
    
    11

    Graph Initialization documentation

    12
    更新 docker-compose.yml
    13
    编辑 docker-compose.yml 文件(如下),并更新 environment.ethereum 使其引用 Virtual Environment RPC。
    14
    version: '3'
    services:
      graph-node:
        image: graphprotocol/graph-node
        ports:
          - '8020:8020'
          - '8000:8000'
          - '5001:5001'
        environment:
          postgres_host: postgres
          postgres_user: graph-node
          postgres_pass: let-me-in
          postgres_db: graph-node
          ipfs: 'ipfs:5001'
          ethereum: 'mainnet:https://virtual.mainnet.rpc.tenderly.co/d0a6...-40..2c-81..0f-a5..90'
    
    15

    Graph Docker documentation

    16
    在本地运行 Docker Compose
    17
    设置 docker-compose 配置后,运行以下命令:
    18
    docker-compose up
    
    19
    创建并部署您的 subgraph
    20
    运行以下命令,将 your-subgraph-name 替换为您希望的 subgraph 名称。
    21
    graph codegen
    graph create --node http://localhost:8020 your-subgraph-name
    graph deploy --node http://localhost:8020 --ipfs http://localhost:5001 your-subgraph-name
    
    22

    Graph Deployment documentation

    23
    访问 subgraph
    24
    部署后,通过下面的 URL 访问您的 subgraph。在浏览器中打开此 URL 以访问 subgraph 并运行查询:
    25
    Deployed to http://localhost:8000/subgraphs/name/your-subgraph-name
    26

    Graph Query documentation

    27
    部署到云端
    28
    对于 dapp staging,请将 The Graph 节点部署到您选择的云提供商,并将您的 dapp UI/后端连接到该节点以进行查询。