Предварительные условия
Убедитесь, что в вашей системе установлено следующее:- Node.js и npm
- Docker
- Аккаунт Tenderly
- RPC Virtual Environment
- Смарт-контракт, задеплоенный в Virtual Environment с помощью Hardhat или Foundry
Настройка The Graph
Подробности см. в официальной документации Graph CLI.
--abi, чтобы указывать на ABI контракта в вашей локальной системе--contract-name и --from-contract на имя и адрес контракта соответственно--start-block--network так, чтобы оно ссылалось на сеть, на основе которой создана ваша Virtual Environment (например, mainnet, base и т. д.).Мы рекомендуем, чтобы
network совпадало с именем оригинальной сети, без приставки virtual_. Это обеспечивает лёгкое переключение RPC при развёртывании в разных окружениях стейджинга и демо.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
Отредактируйте файл
docker-compose.yml (ниже) и обновите environment.ethereum так, чтобы он указывал на RPC Virtual Environment.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'
graph codegen
graph create --node http://localhost:8020 your-subgraph-name
graph deploy --node http://localhost:8020 --ipfs http://localhost:5001 your-subgraph-name
После развёртывания доступ к вашему subgraph осуществляется по URL ниже. Откройте этот URL в браузере, чтобы получить доступ к subgraph и выполнять запросы: