Предварительные условия
Убедитесь, что в вашей системе установлено следующее:- Node.js и npm
- Docker
- Аккаунт Tenderly
- RPC Virtual Environment
- Смарт-контракт, задеплоенный в Virtual Environment с помощью Hardhat или Foundry
Настройка The Graph
1
Установите Graph CLI глобально
2
Установите Graph CLI глобально в вашей системе с помощью npm:
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 (например, mainnet, base и т. д.).9
Мы рекомендуем, чтобы
network совпадало с именем оригинальной сети, без приставки virtual_. Это обеспечивает лёгкое переключение 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
Документация по инициализации The Graph
12
Обновите
docker-compose.yml13
Отредактируйте файл
docker-compose.yml (ниже) и обновите environment.ethereum так, чтобы он указывал на RPC Virtual Environment.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
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
23
Доступ к subgraph
24
После развёртывания доступ к вашему subgraph осуществляется по URL ниже. Откройте этот URL в браузере, чтобы получить доступ к subgraph и выполнять запросы:
25
Deployed to http://localhost:8000/subgraphs/name/your-subgraph-name26
Документация по запросам к Graph
27
Разверните в облаке
28
Для стейджинга dapp разверните ноду The Graph у выбранного вами облачного провайдера и подключите UI/бэкенд вашего dapp к этой ноде для выполнения запросов.