Перейти к основному содержанию

Hello World (localhost и Docker)

SubQuery TeamОколо 3 мин

Hello World (localhost и Docker)

Добро пожаловать в краткое руководство по SubQuery Hello World. Краткое руководство призвано показать вам, как запустить стартовый проект по умолчанию в Docker за несколько простых шагов.

Цели обучения

В конце этого краткого руководства вам следует:

  • понимать необходимые предварительные условия
  • понимать основные стандартные команды
  • иметь возможность перейти на localhost: 3000 и просмотреть игровую площадку
  • запустить простой запрос, чтобы получить высоту блока основной сети Polkadot

Целевая аудитория

Это руководство предназначено для новых разработчиков, имеющих некоторый опыт разработки и заинтересованных в получении дополнительных сведений о SubQuery.

Видео инструкция


Предпосылки

Вам понадобится:

  • yarn или npm менеджер пакетов
  • SubQuery CLI (@subql/cli)
  • Docker

Вы можете запустить следующие команды в терминале, чтобы узнать, есть ли у вас какие-либо из этих предварительных условий.

yarn -v (or npm -v)
subql -v
docker -v

Для более опытных пользователей скопируйте и вставьте следующее:

echo -e "My yarn version is:" `yarn -v` "\nMy subql version is:" `subql -v`  "\nMy docker version is:" `docker -v`

Это должно вернуть: (для пользователей npm замените yarn на npm)

Моя версия yarn: 1.22.10
Моя версия subql: @subql/cli/0.9.3 darwin-x64 node-v16.3.0
Моя версия docker: Docker version 20.10.5, build 55c4c88

Если вы получите вышеуказанное, то все в порядке. В противном случае перейдите по этим ссылкам, чтобы установить их:

1. Step 1: Initialise project

Первым шагом при запуске с SubQuery является выполнение команды subql init. Давайте инициализируем стартовый проект с именем subqlHelloWorld. Обратите внимание, что только автор является обязательным. Все остальное внизу остается пустым.

> subql init subqlHelloWorld
? > subql init subqlHelloWorld
? Выберите шаблонный проект subql-starter Стартовый проект для subquery
Клонирование проекта... готово
Конечная точка RPC: [wss://polkadot.api.onfinality.io/public-ws]:
Git-репозиторий [https://github.com/subquery/subql-starter]:
Fetching network genesis hash... done
Автор [Ian He & Jay Ji]:
Описание [Этот проект может быть использован в качестве отправной точки...]:
Версия [0.0.4]:
Лицензия [MIT]:
Подготовка проекта... готово
subqlHelloWorld готов

Не забудьте перейти в новый каталог.

cd subqlHelloWorld

2. Step 2: Install dependencies

Теперь выполните установку yarn или node, чтобы установить различные зависимости.

::: code-tabs @tab:active yarn shell yarn install @tab npm bash npm install :::

An example of yarn install

# Yarn yarn install # NPM npm install

<pre><code class="shell">> yarn install
yarn install v1.22.10
info No lockfile found.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 🔨  Building fresh packages...
success Saved lockfile.
✨  Done in 31.84s.

3. Step 3: Generate code

Теперь запустите yarn codegen, чтобы сгенерировать Typescript из схемы GraphQL.

# Yarn yarn codegen # NPM npm run-script codegen

&gt; yarn codegen
yarn run v1.22.10
$ ./node_modules/.bin/subql codegen
===============================
---------Subql Codegen---------
===============================
* Schema StarterEntity generated !

<pre><code class="shell">> yarn codegen
yarn run v1.22.10
$ ./node_modules/.bin/subql codegen
===============================
---------Subql Codegen---------
===============================
* Schema StarterEntity generated !
* Models index generated !
* Types index generated!
✨  Done in 1.02s.

** Предупреждение ** При внесении изменений в файл схемы, пожалуйста, не забудьте повторно запустить yarn codegen, чтобы заново сгенерировать каталог типов.

4. Step 4: Build code

Следующим шагом является создание кода с помощью yarn build.

# Yarn yarn build # NPM npm run-script build

> yarn build
yarn run v1.22.10
$ tsc -b
✨  Done in 5.68s.
> yarn build
yarn run v1.22.10
$ tsc -b
✨  Done in 5.68s.

5. Запустите Docker

Использование Docker позволяет очень быстро запустить этот пример, поскольку вся необходимая инфраструктура может быть предоставлена в образе Docker. Run docker-compose pull && docker-compose up.

Это запустит все заново и в конечном итоге вы получите извлекаемые блоки.

> #SNIPPET
subquery-node_1   | 2021-06-05T22:20:31.450Z <subql-node> INFO node started
subquery-node_1   | 2021-06-05T22:20:35.134Z <fetch> INFO fetch block [1, 100]
subqlhelloworld_graphql-engine_1 exited with code 0
subquery-node_1   | 2021-06-05T22:20:38.412Z <fetch> INFO fetch block [101, 200]
graphql-engine_1  | 2021-06-05T22:20:39.353Z <nestjs> INFO Starting Nest application...
graphql-engine_1  | 2021-06-05T22:20:39.382Z <nestjs> INFO AppModule dependencies initialized
graphql-engine_1  | 2021-06-05T22:20:39.382Z <nestjs> INFO ConfigureModule dependencies initialized
graphql-engine_1  | 2021-06-05T22:20:39.383Z <nestjs> INFO GraphqlModule dependencies initialized
graphql-engine_1  | 2021-06-05T22:20:39.809Z <nestjs> INFO Nest application successfully started
subquery-node_1   | 2021-06-05T22:20:41.122Z <fetch> INFO fetch block [201, 300]
graphql-engine_1  | 2021-06-05T22:20:43.244Z <express> INFO request completed

6. Поиск playground

Перейдите по адресу http: // localhost: 3000 / и вставьте запрос ниже в левую часть экрана, а затем нажмите кнопку воспроизведения.

{
 query{
   starterEntities(last:10, orderBy:FIELD1_ASC ){
     nodes{
       field1
     }
   }
 }
}

Площадка подзапросов на localhost.

playground localhost

Количество playground блоков должно совпадать с количеством блоков (технически высотой блока) в терминале.

Заключение

В этом кратком руководстве мы продемонстрировали основные шаги по запуску проекта и запуску с помощью Docker, а затем перешли на localhost: 3000 и выполнили запрос, чтобы вернуть номер блока сети Polkadot в основной сети.