> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tenderly.co/llms.txt
> Use this file to discover all available pages before exploring further.

# The Graph и Virtual Environments

> Руководство по настройке и использованию Tenderly Virtual Environments вместе с The Graph.

Это руководство содержит подробные шаги для настройки и использования Tenderly Virtual Environments вместе с The Graph.

Чтобы использовать The Graph с Virtual Environments, вам нужно запустить собственную Graph-ноду. Если вы разворачиваете dapp в стейджинге, инстанс The Graph нужно будет разместить у выбранного вами облачного провайдера.

## Предварительные условия

Убедитесь, что в вашей системе установлено следующее:

* Node.js и npm
* Docker
* [Аккаунт Tenderly](https://dashboard.tenderly.co/login?redirectTo=testnets)
* RPC Virtual Environment
* Смарт-контракт, задеплоенный в Virtual Environment с помощью [Hardhat](/virtual-environments/develop/deploy-contracts#hardhat) или [Foundry](/virtual-environments/develop/deploy-contracts#foundry)

## Настройка The Graph

<Steps>
  ### Установите Graph CLI глобально

  Установите Graph CLI глобально в вашей системе с помощью npm:

  ```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  npm install -g @graphprotocol/graph-cli
  ```

  Подробности см. в официальной [документации Graph CLI](https://thegraph.com/docs/en/developer/cli/).

  ### Настройте проект The Graph

  В директории вашего проекта инициализируйте проект The Graph.

  Замечания:

  * Настройте `--abi`, чтобы указывать на ABI контракта в вашей локальной системе
  * Измените `--contract-name` и `--from-contract` на имя и адрес контракта соответственно
  * Задайте `--start-block`
  * Измените `--network` так, чтобы оно ссылалось на сеть, на основе которой создана ваша Virtual Environment (например, `mainnet`, `base` и т. д.).

  <Note>
    Мы рекомендуем, чтобы `network` совпадало с именем оригинальной сети, без приставки `virtual_`. Это обеспечивает лёгкое переключение RPC при развёртывании в разных окружениях стейджинга и демо.
  </Note>

  ```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  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
  ```

  <Card title="Документация по инициализации The Graph" href="" />

  ### Обновите `docker-compose.yml`

  Отредактируйте файл `docker-compose.yml` (ниже) и обновите `environment.ethereum` так, чтобы он указывал на RPC Virtual Environment.

  ```yaml showLineNumbers lines={15} theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  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'
  ```

  <Card title="Документация Graph Docker" href="" />

  ### Запустите Docker Compose локально

  После настройки конфигурации docker-compose выполните:

  ```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  docker-compose up
  ```

  ### Создайте и задеплойте ваш subgraph

  Выполните следующие команды, заменив `your-subgraph-name` на желаемое имя вашего subgraph.

  ```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  graph codegen
  graph create --node http://localhost:8020 your-subgraph-name
  graph deploy --node http://localhost:8020 --ipfs http://localhost:5001 your-subgraph-name
  ```

  <Card title="Документация по развёртыванию Graph" href="" />

  ### Доступ к subgraph

  После развёртывания доступ к вашему subgraph осуществляется по URL ниже. Откройте этот URL в браузере, чтобы получить доступ к subgraph и выполнять запросы:

  `Deployed to http://localhost:8000/subgraphs/name/your-subgraph-name`

  <Card title="Документация по запросам к Graph" href="" />

  ### Разверните в облаке

  Для стейджинга dapp разверните ноду The Graph у выбранного вами облачного провайдера и подключите UI/бэкенд вашего dapp к этой ноде для выполнения запросов.
</Steps>
