1. Створіть новий проєкт
1. Створіть новий проєкт
Мета цього короткого керівництва по початку роботи надати вам повну настройку розробки й покрокові інструкції по створенню вашого першого проєкт блокчейн SubQuery. Він орієнтований на досвідчених розробників і тих, хто тільки починає свій шлях в блокчейнові.
Цей короткий посібник з початку роботи повинен зайняти близько 10-15 хвилин.
Після завершення цього короткого посібника у вас буде робочий проєкт SubQuery, який буде виконуватися на вузлі SubQuery. Ви зможете адаптувати стандартний стартовий проєкт і індексувати переклади з вашої улюбленої блокчейн-мережі, такий як Polkadot, Avalanche, Cosmos і т. д.
Почнім процес створення Вашого першого SubQuery блокчейн проєкту.
Передумова
Перш ніж ви почнете створювати свій перший блокчейн проєкт за допомогою SubQuery, переконайтеся, що у вас встановлені необхідні допоміжні програмні додатки. Це:
- Node: сучасна (наприклад, версія LTS) інсталяція Node.
- Docker: У цьому посібнику буде використовуватися необхідний Docker.
Тепер ви все готові почати з першого кроку, який полягає в установці CLI SubQuery.
1. Встановити SubQuery CLI
Встановіть SubQuery CLI глобально на свій термінал за допомогою NPM:
# NPM
npm install -g @subql/cli
Небезпека! Ми Не заохочуємо використання yarn global
для встановлення @subql/cli
через його погане управління залежностями. Це може призвести до численних помилок. :::
Погляньте на всі доступні команди та їх використання. Виконайте наведену нижче команду в командному рядку:
subql help
2. Ініціалізуйте проект SubQuery Starter
Виконайте таку команду всередині каталогу, в якому ви хочете створити проєкту SubQuery:
subql init
Важливе попередження
Для користувачів Cosmos
Cosmos ще не підтримується в CLI SubQuery's (subql
). Отже, якщо ви використовуєте Cosmos, ви повинні почати з клону Juno або розгалузити це стартовий проєкт.
Щоб ініціалізувати свій проєкт за допомогою Cosmos, зверніться до цих 4 кроків, показаних у цьому посиланні. Як тільки ви виконаєте ці 4 кроки, перейдіть у розділ Внести зміни у свій проєкт. :::
У міру просування вперед вам будуть ставити собі певні питання:
- ** Project name **: ім'я проєкт для вашого проєкту SubQuery.
- ** Network family **: сімейство мереж блокчейн рівня 1, яке буде індексуватися цим проєкт SubQuery. Використовуйте клавіші зі стрілками, щоб вибрати один з доступних варіантів. Наприклад, Polka dot, Avalanche, Cosmos або будь-яка інша підтримувана мережа.
- Network: конкретна мережа, яку буде індексувати цей проєкт SubQuery. Використовуйте клавіші зі стрілками, щоб вибрати один з доступних варіантів. Наприклад, Polka dot, Avalanche або будь-яка інша підтримувана мережа.
- ** Template project **: Виберіть проєкт шаблону вкладеного запиту, який стане відправною точкою в розробці. Ми пропонуємо вибрати проєкт "subql-starter".
- ** RPC endpoint **: Вкажіть URL-адресу HTTPS для запущеної кінцевої точки RPC, яка буде використовуватися за замовчуванням для цього проєкту. Ви можете швидко отримати доступ до загальнодоступних кінцевих точок для різних мереж, створити свій власний приватний виділений вузол, використовуючи OnFinality, або просто використовувати кінцеву точку за замовчуванням. Цей вузол RPC повинен бути вузлом архіву (мати стан повного ланцюга). У цьому посібнику ми будемо використовувати значення за замовчуванням. Залежно від вибраної вами мережі значення за замовчуванням може бути:
- Для Polkadot - "https://polkadot.api.onfinality.io",
- Для Avalanche - "https://avalanche.api.onfinality.io",
- Для Terra - “https://terra-columbus-5.beta.api.onfinality.io” і аналогічно для інших мереж.
- ** Git repository **: вкажіть URL-адресу Git для звіту, в якому буде розміщений цей проєкт SubQuery (при розміщенні в провіднику SubQuery), або прийміть вказане значення за замовчуванням.
- ** Authors **: введіть тут власника цього проєкту SubQuery (наприклад, ваше ім'я!) або прийміть вказане значення за замовчуванням.
- ** Description **: вкажіть короткий абзац про Ваш проєкт, в якому описується, які дані він містить і що користувачі можуть з ним робити, або прийміть надане значення за замовчуванням.
- ** Version **: введіть номер користувача версії або використовуйте значення за замовчуванням (
1.0.0
). - ** License **: надайте ліцензію на програмне забезпечення для цього проєкту або прийміть стандартну (
MIT
).
Розгляньмо приклад:
$ subql init
Project name [subql-starter]: HelloWorld
? Select a network family Substrate
? Select a network Polkadot
? Select a template project subql-starter Starter project for subquery
RPC endpoint: [wss://polkadot.api.onfinality.io/public-ws]:
Git repository [https://github.com/subquery/subql-starter]:
Fetching network genesis hash... done
Author [Ian He & Jay Ji]: Sean
Description [This project can be used as a starting po...]:
Version [1.0.0]:
License [MIT]:
Preparing project... done
HelloWorld is ready
Після завершення процесу ініціалізації ви побачите тека з ім'ям вашого проєкту, створену всередині каталогу. Будь ласка, зверніть увагу, що вміст цього каталогу має бути ідентичним тому, що вказано в структурі каталогів.
Нарешті, виконайте таку команду, щоб встановити залежності нового проєкту з каталогу нового проєкту.
::: code-tabs @tab:active yarn shell cd PROJECT_NAME yarn install
Тепер ви ініціалізували свій перший проєкт SubQuery всього за кілька простих кроків. Давайте тепер налаштуємо стандартний шаблон проєкту для конкретного цікавить блокчейну. Це допоможе вам краще зрозуміти команди
3. Внесіть зміни до свого проєкту
Є 3 важливих файлу, які необхідно змінити. Це:
- Схема GraphQL в
schema.graphql
. - Маніфест проєкту в
project.yaml
. - Функції відбивання в
src/mappings/
каталогу.
SubQuery supports various blockchain networks and provides a dedicated guide for each of them. Select your preferred blockchain under 2. Specific Chains and continue the quick start guide.