Розміщення проекту за допомогою IPFS
# Розміщення проекту за допомогою IPFS
У цьому посібнику описано, як опублікувати локальний проект SubQuery в IPFS (opens new window) і розгорнути його в нашій інфраструктурі хостингу.
Hosting a project in IPFS makes it available for all and reduces your reliance on centralised services like GitHub.
# Вимоги
@subql/cli
version 0.21.0 or above.- Маніфест
specVersion
0.2.0 або вище. - Підготуйте свій SUBQL_ACCESS_TOKEN.
- Щоб переконатися в успіху вашого розгортання, ми наполегливо рекомендуємо вам створити проект за допомогою команди
subql build
і протестувати його локально перед публікацією.
# Підготуйте свій SUBQL_ACCESS_TOKEN
- Крок 1. Перейдіть до SubQuery Projects (opens new window) та увійдіть.
- Крок 2. Натисніть свій профіль у верхньому правому куті навігаційного меню, а потім натисніть Оновити токен
- Крок 3: скопіюйте згенерований токен.
- Крок 4. Щоб використовувати цей токен:
- Варіант 1. Додайте SUBQL_ACCESS_TOKEN у змінні середовища.
EXPORT SUBQL_ACCESS_TOKEN=<token>
- Варіант 2. Незабаром
subql/cli
підтримуватиме локальне зберігання вашого SUBQL_ACCESS_TOKEN.
- Варіант 1. Додайте SUBQL_ACCESS_TOKEN у змінні середовища.
# Як опублікувати проект
Ми пропонуємо два способи опублікувати ваш проект,
# Варіант 1
Оскільки у вас уже встановлено @subql/cli
, ви можете запустити таку команду, яка прочитає проект і необхідну інформацію з його маніфесту за замовчуванням project.yaml
// Опублікувати його з кореневого каталогу вашого проекту
subql опублікувати
// АБО вказуйте на корінь вашого проекту
subql опублікувати -f ~/мій-проект/
2
3
4
5
# Варіант 2
Крім того, припустімо, що у вашому проекті є кілька файлів маніфесту, наприклад, ви підтримуєте кілька мереж, але використовуєте однакове відображення та бізнес-логіку та маєте таку структуру проекту:
L projectRoot
L src/
L package.json
L polkadot.yaml (Manifest for Polkadot network)
L kusama.yaml (Manifest for Kusama network)
...
2
3
4
5
6
Ви завжди можете опублікувати проект із вибраним файлом маніфесту.
# Це опублікує підтримку проекту індексування мережі Polkadot
subql опублікувати -f ~/my-projectRoot/polkadot.yaml
2
# Після публікації
Після успішної публікації проекту наведені нижче журнали вказують, що проект було створено в кластері IPFS і повернуто його CID
(ідентифікатор вмісту).
Побудова та код упаковки... виконано
Завантаження проекту SupQuery в IPFS
Проект SubQuery, завантажений до IPFS: QmZ3q7YZSmhwBiot4PQCK3c7Z6HkteswN2Py58gkkZ8kNd //CID
2
3
Будь ласка, зверніть увагу на CID
. За допомогою цього CID
ви можете розглядати свій опублікований проект як те, що ми називаємо розгортанням IPFS
# Розгортання в IPFS
Розгортання IPFS являє собою незалежне та унікальне існування проекту SubQuery в децентралізованій мережі. Тому будь-які зміни коду в проекті вплинуть на його унікальність. Якщо вам потрібно налаштувати свою бізнес-логіку, напр. змінити функцію відображення, ви повинні повторно опублікувати проект, і CID
зміниться.
Наразі, щоб переглянути опублікований вами проект, скористайтеся інструментом API REST
, таким як Postman (opens new window), і скористайтеся методом POST
з наступним прикладом URL-адреси щоб отримати його. https://ipfs.subquery.network/ipfs/api/v0/cat?arg=<YOUR_PROJECT_CID>
Ви повинні побачити приклад розгортання проекту, як показано нижче:
Це розгортання дуже схоже на ваш файл маніфесту. Ви можете очікувати цих описових полів, а кінцеву точку мережі та словника було видалено, оскільки вони не впливали безпосередньо на результат виконання проекту.
Ці файли, які використовувалися у вашому локальному проекті, також були запаковані та опубліковані в IPFS.
dataSources:
- kind: substrate/Runtime
mapping:
file: ipfs://QmTTJKrMVzCZqmRCd5xKHbKymtQQnHZierBMHLtHHGyjLy
handlers:
- handler: handleBlock
kind: substrate/BlockHandler
- filter:
method: Deposit
module: balances
handler: handleEvent
kind: substrate/EventHandler
- handler: handleCall
kind: substrate/CallHandler
startBlock: 8973820
network:
genesisHash: "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3"
schema:
file: ipfs://QmTP5BjtxETVqvU4MkRxmgf8NbceB17WtydS6oQeHBCyjz
specVersion: 0.2.0
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Запустіть проект SubQuery на розміщеній службі
# Створіть проект із розгортанням IPFS
Ви можете дотримуватись посібника з Опублікувати проект SubQuery , але там, де ви встановите джерело розгортання, ви можете вибрати IPFS.
Потім виберіть свій робочий слот, скопіюйте та вставте свій CID розгортання IPFS (без початкового ipfs://
).
Ви повинні побачити розгортання IPFS у розділі попереднього перегляду. І ви можете вибрати мережу, кінцеві точки словника тощо.
Після успішного розгортання розгортання IPFS на нашій розміщеній службі він повинен бути доступний для перегляду в SubQuery Explorer, ви можете отримати доступ до служби запитів так само, як і локально.