Розміщення проекту за допомогою IPFS

... 2022-8-10 Менше 1 хвилини

# Розміщення проекту за допомогою 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/cli, ви можете запустити таку команду, яка прочитає проект і необхідну інформацію з його маніфесту за замовчуванням project.yaml

// Опублікувати його з кореневого каталогу вашого проекту
subql опублікувати

// АБО вказуйте на корінь вашого проекту
subql опублікувати -f ~/мій-проект/
1
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)
 ...
1
2
3
4
5
6

Ви завжди можете опублікувати проект із вибраним файлом маніфесту.

 # Це опублікує підтримку проекту індексування мережі Polkadot
subql опублікувати -f ~/my-projectRoot/polkadot.yaml
1
2

# Після публікації

Після успішної публікації проекту наведені нижче журнали вказують, що проект було створено в кластері IPFS і повернуто його CID (ідентифікатор вмісту).

Побудова та код упаковки... виконано
Завантаження проекту SupQuery в IPFS
Проект SubQuery, завантажений до IPFS: QmZ3q7YZSmhwBiot4PQCK3c7Z6HkteswN2Py58gkkZ8kNd //CID
1
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
1
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, ви можете отримати доступ до служби запитів так само, як і локально.

Останнє оновлення: August 10, 2022 00:49