5 минуты
Быстрый старт
Узнайте, как легко создать, опубликовать и запросить Субграф на The Graph.
Предварительные требования
- Криптовалютный кошелек
- Адрес смарт-контракта в поддерживаемой сети
- Node.js установлен
- Менеджер пакетов на Ваш выбор (
npm,yarnилиpnpm)
Как создать субграф
1. Создайте Субграф в Subgraph Studio
Перейдите в Subgraph Studio и подключите свой кошелек.
Subgraph Studio позволяет создавать, управлять, развертывать и публиковать Субграфы, а также создавать и управлять API-ключами.
Нажмите “Создать субграф”. Рекомендуется называть субграф с использованием Заглавного регистра: “Subgraph Name Chain Name”.
2. Установка Graph CLI
Выполните одну из следующих команд на своём локальном компьютере:
Использование npm:
1npm install -g @graphprotocol/graph-cli@latestИспользование yarn:
1yarn global add @graphprotocol/graph-cli3. Инициализируйте ваш субграф
Вы можете найти команды для вашего конкретного субграфа на странице субграфа в Subgraph Studio.
Команда graph init автоматически создаст каркас субграфа на основе событий вашего контракта.
Следующая команда инициализирует ваш субграф на основе существующего контракта:
1graph initЕсли Ваш контракт верифицирован на соответствующем блоксканере, где он развернут (например, Etherscan), то ABI будет автоматически создан в CLI.
Когда вы инициализируете свой субграф, CLI запросит у вас следующую информацию:
- Протокол: Выберите протокол, данные из которого будет индексировать ваш субграф.
- Слаг субграфа: Создайте имя для вашего субграфа. Слаг субграфа — это идентификатор для вашего субграфа.
- Каталог: Выберите каталог, в котором будет создан ваш субграф.
- Сеть Ethereum (необязательно): Вам может понадобиться указать, из какой совместимой с EVM сети ваш субграф будет индексировать данные.
- Адрес контракта: Найдите адрес смарт-контракта, из которого Вы хотите запрашивать данные.
- ABI: Если ABI не заполнен автоматически, Вам придется ввести его вручную в формате JSON.
- Начальный блок: Вы должны ввести начальный блок для оптимизации индексирования данных субграфа. Найдите начальный блок, определив блок, в котором был развернут ваш контракт.
- Имя контракта: Введите имя Вашего контракта.
- Индексирование событий контракта как объектов: Рекомендуется установить это значение в “true”, так как это автоматически добавит мэппинги для каждого сгенерированного события в ваш субграф.
- Добавление еще одного контракта (опционально): Вы можете добавить еще один контракт.
Вот скриншот, который демонстрирует, чего ожидать при инициализации вашего субграфа:

4. Редактирование вашего субграфа
Команда init на предыдущем шаге создает скелет субграфа, который вы можете использовать в качестве отправной точки для создания вашего субграфа.
При внесении изменений в субграф вы будете в основном работать с тремя файлами:
- Манифест (
subgraph.yaml) — определяет, какие источники данных ваш субграф будет индексировать. - Схема (
schema.graphql) — определяет, какие данные вы хотите извлекать из субграфа. - AssemblyScript Mappings (mapping.ts) - это код, который преобразует данные из Ваших источников данных в объекты, определенные в схеме.
Для подробного объяснения того, как писать ваш субграф, ознакомьтесь с разделом Создание субграфа.
5. Развертывание Вашего субграфа
Помните, развертывание — это не то же самое, что публикация.
Когда вы разворачиваете субграф, вы отправляете его в Subgraph Studio, где можете тестировать, настраивать и проверять его. Индексирование развернутого субграфа выполняется с помощью Upgrade Indexer, который является единственным Индексатором, принадлежащим и управляемым Edge & Node, а не многими децентрализованными Индексаторами в сети The Graph. Развернутый субграф бесплатен для использования, имеет ограничения по количеству запросов, не виден для общественности и предназначен для разработки, настройки и тестирования.
Как только ваш субграф написан, выполните следующие команды:
1```sh2graph codegen && graph build3```Аутентифицируйтесь и разверните ваш субграф. Ключ для развертывания можно найти на странице субграфа в Subgraph Studio.

1```sh23graph auth <DEPLOY_KEY>45graph deploy <SUBGRAPH_SLUG>6```CLI запросит метку версии. Настоятельно рекомендуется использовать семантическую версию, например, 0.0.1.
6. Просмотр Вашего субграфа
Если вы хотите протестировать свой субграф перед его публикацией, вы можете использовать Subgraph Studio для выполнения следующих действий:
-
Запустить пример запроса.
-
Анализируйте свой субграф в панели управления, чтобы проверить информацию.
-
Проверьте логи на панели управления, чтобы узнать, есть ли ошибки в вашем субграфе. Логи работающего субграфа будут выглядеть так:

Subgraph logs
7. Опубликуйте свой субграф в сети The Graph
Когда ваш субграф готов к использованию в рабочей среде, вы можете опубликовать его в децентрализованную сеть. Публикация — это действие в сети, которое выполняет следующие задачи:
- Это делает ваш субграф доступным для индексирования децентрализованными Индексаторами в сети The Graph.
- Это снимает ограничения по количеству запросов и делает ваш субграф общедоступным для поиска и запросов в Graph Explorer.
- Это делает ваш субграф доступным для Кураторов, чтобы они могли его курировать.
Чем больше GRT вы и другие курируете на вашем субграфе, тем больше Индексаторов будут мотивированы индексировать ваш субграф, что улучшит качество обслуживания, уменьшит задержку и повысит избыточность сети для вашего субграфа.
Публикация с помощью Subgraph Studio
Чтобы опубликовать ваш субграф, нажмите кнопку “Опубликовать” на панели управления.

Выберите сеть, в которую вы хотите опубликовать свой субграф.
Публикация с помощью CLI
Начиная с версии 0.73.0, вы также можете опубликовать свой субграф с помощью Graph CLI.
Откройте graph-cli.
Используйте следующие команды:
1```sh2graph codegen && graph build3```45Затем,67```sh8graph publish9```- Откроется окно, где Вы сможете подключить свой кошелек, добавить метаданные и развернуть финализированный субграф в выбранной Вами сети.

Чтобы настроить ваше развертывание, смотрите раздел Публикация субграфа.
Добавление сигнала к Вашему субграфу
-
Чтобы привлечь Индексаторов для запросов к вашему субграфу, вам следует добавить сигнал курирования GRT.
- Это действие улучшает качество обслуживания, снижает задержку и повышает сетевую избыточность и доступность для вашего субграфа.
-
Если индексаторы имеют право на получение вознаграждений за индексацию, они получат вознаграждения в GRT, в соответствии с количеством поданного сигнала.
- Рекомендуется курировать как минимум 3,000 GRT, чтобы привлечь 3 Индексаторов. Проверьте право на вознаграждения в зависимости от использования функций субграфа и поддерживаемых сетей.
Чтобы узнать больше о кураторстве, прочитайте статью Курирование.
Чтобы сэкономить на газовых расходах, вы можете закрепить свой субграф в той же транзакции, в которой его публикуете, выбрав эту опцию:

8. Запрос Вашего субграфа
Теперь у вас есть доступ к 100 000 бесплатных запросов в месяц для вашего субграфа в The Graph Network!
Вы можете выполнять запросы к своему субграфу, отправляя запросы GraphQL по его URL для запросов, который можно найти, нажав кнопку “Запрос”.
Для получения дополнительной информации о том, как выполнять запросы к данным из вашего субграфа, прочитайте статью Запросы к данным в The Graph.