Объяснение по Hello World

SubQuery TeamОколо 2 мин

Объяснение по Hello World

В кратком руководстве Hello World мы выполнили несколько простых команд и очень быстро создали и запустили пример. Это позволило вам убедиться, что у вас есть все предварительные условия, и вы можете использовать локальную площадку для выполнения простого запроса для получения ваших первых данных из SubQuery. Здесь мы подробнее рассмотрим, что означают все эти команды.

subql init

Первая команда, которую мы выполнили, была subql init subqlHelloWorld.

Это делает тяжелую работу и создает для вас целую кучу файлов. Как указано в официальной документации, вы в основном будете работать со следующими файлами:

  • Манифест в project.yaml
  • Схема GraphQL в schema.graphql
  • Функции сопоставления в каталоге src / mappings /

key subql files

Эти файлы составляют основу всего, что мы делаем. Таким образом, мы посвятим этим файлам больше времени в другой статье. А пока просто знайте, что схема содержит описание данных, которые пользователи могут запрашивать из SubQuery API, файл yaml проекта, который содержит параметры типа «конфигурация» и, конечно же, mappingHandlers, содержащий машинописный текст, который содержит функции, преобразующие данные.

yarn install

Следующее, что мы сделали, - это yarn install. Так же можно использовать npm install.

Краткий урок истории. Node Package Manager или npm был первоначально выпущен в 2010 году и является чрезвычайно популярным менеджером пакетов среди разработчиков JavaScript. Это пакет по умолчанию, который автоматически устанавливается при установке Node.js в вашей системе. Первоначально Yarn был выпущен Facebook в 2016 году с целью устранения некоторых недостатков производительности и безопасности при работе с npm (в то время).

Что делает yarn, так это просматривает файл package.json и загружает различные другие зависимости. Глядя на файл package.json, не похоже, что существует много зависимостей, но когда вы запустите команду, вы заметите, что добавлено 18 983 файла. Это происходит из-за того, что каждая зависимость также будет иметь свои собственные зависимости.

key subql files

yarn codegen

Затем мы запустили yarn codegen или npm run-script codegen. При этом извлекается схема GraphQL (в schema.graphql) и создаются связанные файлы модели машинописного текста (следовательно, выходные файлы будут иметь расширение .ts). Вы никогда не должны изменять какие-либо из этих сгенерированных файлов, только измените исходный файл schema.graphql.

key subql files

yarn build

yarn build или npm run-script build были выполнены. Это должно быть знакомо опытным программистам. Он создает папку распространения, выполняющую такие вещи, как оптимизация кода, подготовка к развертыванию.

key subql files

docker-compose

Последним шагом была объединенная команда docker docker-compose pull && docker-compose up (также может запускаться отдельно). Команда pull берет все необходимые образы из Docker Hub, а команда up запускает контейнер.

> docker-compose pull
Pulling postgres        ... done
Pulling subquery-node   ... done
Pulling graphql-engine  ... done

Когда контейнер будет запущен, вы увидите, что терминал выдаст много текста, показывающего состояние узла и движка GraphQL. Вы видите это:

subquery-node_1   | 2021-06-06T02:04:25.490Z <fetch> INFO fetch block [1, 100]

Тогда вы понимаете, что нода SubQuery начала синхронизироваться.

Заключение

Теперь, когда вы получили представление о том, что происходит за кулисами, вопрос в том, что делать дальше? Если вы чувствуете себя уверенно, вы можете перейти к изучению того, как создать проект, и узнать больше о трех ключевых файлах. Файл manifest, the GraphQL схема, и mappings файл.

В противном случае перейдите к разделу наших руководств, где мы рассмотрим, как мы можем запустить этот пример Hello World в размещенной инфраструктуре SubQuery, мы рассмотрим изменение начального блока и более глубоко погрузимся в выполнение проектов SubQuery, запустив легкодоступные и проекты с открытым исходным кодом.