Быстрый старт
Reading time: 5 min
This guide will quickly take you through how to initialize, create, and deploy your subgraph to the Subgraph Studio or the hosted service.
Убедитесь, что ваш субграф будет индексировать данные из поддерживаемой сети.
Это руководство написано, исходя из того, что у Вас есть:
- Адрес смарт-контракта в выбранной Вами сети
- GRT для курирования вашего субграфа
- Криптовалютный кошелек
Go to the Subgraph Studio and connect your wallet.
После подключения Вы можете начать с нажатия кнопки «Создать субграф». Выберите нужную сеть и нажмите «Продолжить».
Графический интерфейс Graph CLI написан на JavaScript, и для его использования Вам потребуется установить либо npm
, либо yarn
.
Выполните одну из следующих команд на своём локальном компьютере:
Using npm:
npm install -g @graphprotocol/graph-cli
Using yarn:
yarn global add @graphprotocol/graph-cli
You can find commands for your specific subgraph on the subgraph page in Subgraph Studio.
При инициализации субграфа инструмент CLI запросит у Вас следующую информацию:
- Протокол: выберите протокол, по которому Ваш субграф будет индексировать данные
- Слаг субграфа: создайте имя для своего субграфа. Ваш слаг субграфа — это идентификатор для Вашего субграфа.
- Директория для создания субграфа: выберите локальную директорию
- Сеть Ethereum (необязательно): Вам может потребоваться указать, из какой сети, совместимой с EVM, ваш субграф будет индексировать данные
- Адрес контракта: найдите адрес смарт-контракта, с которого хотите запросить данные
- ABI: если ABI не заполняется автоматически, Вам нужно будет ввести его вручную как файл JSON
- Стартовый блок: рекомендуется ввести стартовый блок, чтобы сэкономить время, пока Ваш субграф индексирует данные блокчейна. Вы можете найти стартовый блок, найдя блок, в котором был развернут Ваш контракт.
- Имя контракта: введите имя Вашего контракта
- Индексировать события контракта как объекты: рекомендуется установить для этого параметра значение true, поскольку он автоматически добавит сопоставления в Ваш субграф для каждого запускаемого события
- Добавить еще один контракт (опционально): Вы можете добавить еще один контракт
Инициализируйте свой субграф из существующего контракта, выполнив следующую команду:
graph init --studio <SUBGRAPH_SLUG>
На следующем скриншоте показан пример того, чего следует ожидать при инициализации субграфа:
Предыдущая команда создала "скелет" субграфа, который Вы можете использовать в качестве отправной точки для построения своего субграфа. При внесении изменений в субграф Вы будете в основном работать с тремя файлами:
- Манифест (subgraph.yaml) - Манифест определяет, какие источники данных будут индексироваться Вашими субграфами.
- Схема (schema.graphql) - Схема GraphQL определяет, какие данные Вы хотите извлечь из субграфа.
- AssemblyScript Mappings (mapping.ts) - это код, который преобразует данные из ваших источников данных в объекты, определенные в схеме.
Для получения дополнительной информации о том, как написать свой подграф, см. Creating a Subgraph.
После того как Ваш субграф будет написан, выполните следующие команды:
$ graph codegen$ graph build
- Аутентифицируйте и разверните свой субграф. Ключ развертывания можно найти на странице Subgraph в Subgraph Studio.
$ graph auth --studio <DEPLOY_KEY>$ graph deploy --studio <SUBGRAPH_SLUG>
You will be asked for a version label. It's strongly recommended to use semver for versioning like 0.0.1
. That said, you are free to choose any string as version such as:v1
, version1
, asdf
.
Вы можете протестировать свой субграф, осуществив пример запроса в разделе игровой площадки.
Логи сообщат вам, есть ли какие-либо ошибки с вашим субграфом. Логи рабочего субграфа будут выглядеть следующим образом:
If your subgraph is failing, you can query the subgraph health by using the GraphiQL Playground. Note that you can leverage the query below and input your deployment ID for your subgraph. In this case, Qm...
is the deployment ID (which can be located on the Subgraph page under Details). The query below will tell you when a subgraph fails, so you can debug accordingly:
{indexingStatuses(subgraphs: ["Qm..."]) {nodesyncedhealthfatalError {messageblock {numberhash}handler}nonFatalErrors {messageblock {numberhash}handler}chains {networkchainHeadBlock {number}earliestBlock {number}latestBlock {number}lastHealthyBlock {number}}entityCount}}
После того как Ваш субграф был развернут в Subgraph Studio, Вы его протестировали и готовы запустить в производство, Вы можете опубликовать его в децентрализованной сети.
В Subgraph Studio кликните по своему субграфу. На странице субграфа Вы сможете нажать кнопку публикации в правом верхнем углу.
Select the network you would like to publish your subgraph to. It is recommended to publish subgraphs to Arbitrum One to take advantage of the faster transaction speeds and lower gas costs.
Прежде чем Вы сможете запросить свой субграф, индексаторы должны начать обслуживать запросы к нему. Чтобы упростить этот процесс, Вы можете создать свой собственный субграф, используя GRT.
На момент написания этой статьи рекомендуется создать собственный субграф с 10 000 GRT, чтобы обеспечить его индексацию и доступность для запросов как можно скорее.
Чтобы сэкономить на расходах за газ, Вы можете курировать свой субграф в той же транзакции, в которой Вы его опубликовали, нажав эту кнопку при публикации своего субграфа в децентрализованной сети The Graph:
Теперь Вы можете запросить свой субграф, отправив запросы GraphQL на URL-адрес запроса Вашего субграфа, который можно найти, нажав кнопку запроса.
Вы можете сделать запрос из своего децентрализованного приложения, если у Вас нет ключа API, с помощью бесплатного временного URL-адреса запроса с ограниченной скоростью, который можно использовать для разработки и подготовки.
For more information about querying data from your subgraph, read more here.