Быстрый старт
Reading time: 5 min
This guide will quickly take you through how to initialize, create, and deploy your subgraph to Subgraph Studio.
Убедитесь, что ваш субграф будет индексировать данные из .
Это руководство написано, исходя из того, что у Вас есть:
- Криптовалютный кошелек
- Адрес смарт-контракта в выбранной Вами сети
Go to the and connect your wallet.
Once your wallet is connected, you can begin by clicking “Create a Subgraph." It is recommended to name the subgraph in Title Case: "Subgraph Name Chain Name."
The Graph CLI is written in TypeScript and you will need to have node
and either npm
or yarn
installed to use it. Check that you have the most recent CLI version installed.
Выполните одну из следующих команд на своём локальном компьютере:
npm install -g @graphprotocol/graph-cli@latest
yarn global add @graphprotocol/graph-cli
Initialize your subgraph from an existing contract by running the initialize command:
graph init --studio <SUBGRAPH_SLUG>
При инициализации субграфа инструмент CLI запросит у Вас следующую информацию:
- Протокол: выберите протокол, по которому Ваш субграф будет индексировать данные
- Слаг субграфа: создайте имя для своего субграфа. Ваш слаг субграфа — это идентификатор для Вашего субграфа.
- Директория для создания субграфа: выберите локальную директорию
- Сеть Ethereum (необязательно): Вам может потребоваться указать, из какой сети, совместимой с EVM, ваш субграф будет индексировать данные
- Адрес контракта: найдите адрес смарт-контракта, с которого хотите запросить данные
- ABI: если ABI не заполняется автоматически, Вам нужно будет ввести его вручную как файл JSON
- Стартовый блок: рекомендуется ввести стартовый блок, чтобы сэкономить время, пока Ваш субграф индексирует данные блокчейна. Вы можете найти стартовый блок, найдя блок, в котором был развернут Ваш контракт.
- Имя контракта: введите имя Вашего контракта
- Индексировать события контракта как объекты: рекомендуется установить для этого параметра значение true, поскольку он автоматически добавит сопоставления в Ваш субграф для каждого запускаемого события
- Добавить еще один контракт (опционально): Вы можете добавить еще один контракт
На следующем скриншоте показан пример того, чего следует ожидать при инициализации субграфа:
Предыдущая команда создала "скелет" субграфа, который Вы можете использовать в качестве отправной точки для построения своего субграфа. При внесении изменений в субграф Вы будете в основном работать с тремя файлами:
- Manifest (
subgraph.yaml
) - The manifest defines what datasources your subgraphs will index. - Schema (
schema.graphql
) - The GraphQL schema defines what data you wish to retrieve from the subgraph. - AssemblyScript Mappings (
mapping.ts
) - This is the code that translates data from your datasources to the entities defined in the schema.
Для получения дополнительной информации о том, как создать свой субграф, см. .
После того как Ваш субграф будет написан, выполните следующие команды:
$ 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 for versioning like 0.0.1
. That said, you are free to choose any string as version such as:v1
, version1
, asdf
.
In Subgraph Studio's playground environment, you can test your subgraph by making a sample query.
Логи сообщат вам, есть ли какие-либо ошибки с вашим субграфом. Логи рабочего субграфа будут выглядеть следующим образом:
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}}
Once your subgraph has been deployed to Subgraph Studio, you have tested it out, and you are ready to put it into production, you can then publish it to the decentralized network.
In Subgraph Studio, you will be able to click the publish button on the top right of your subgraph's page.
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 .
The (upgrade Indexer)[/sunrise/#about-the-upgrade-indexer] will begin serving queries on your subgraph regardless of subgraph curation, and it will provide you with 100,000 free queries per month.
For a higher quality of service and stronger redundancy, you can curate your subgraph to attract more Indexers. At the time of writing, it is recommended that you curate your own subgraph with at least 3,000 GRT to ensure 3-5 additional Indexers begin serving queries on your subgraph.
Чтобы сэкономить на расходах за газ, Вы можете курировать свой субграф в той же транзакции, в которой Вы его опубликовали, нажав эту кнопку при публикации своего субграфа в децентрализованной сети The Graph:
Теперь Вы можете запросить свой субграф, отправив запросы GraphQL на URL-адрес запроса Вашего субграфа, который можно найти, нажав кнопку запроса.
If you don't have your API key, you can query via the free, rate-limited development query URL, which can be used for development and staging.
For more information about querying data from your subgraph, read more .