Здравей свят (Хоствано от SubQuery)

SubQuery TeamAbout 5 min

Здравей свят (Хоствано от SubQuery)

Целта на този наръчник е да покаже как можете да стартирате проект по подразбиране в SubQuery Projects (нашата управлявана услуга) в няколко лесни стъпки.

Ще вземем простия стартов проект (и всичко, което научихме досега), но вместо да го изпълняваме локално в Docker, ще се възползваме от управляваната хостинг инфраструктура на SubQuery. С други думи, ние позволяваме на SubQuery да върши цялата работа по стартиране и управление на производствената инфраструктура.

Учебни Цели

В края на този курс вие трябва да:

  • разберете необходимите предпоставки
  • можете да хостнете проект SubQuery Managed Serviceopen in new window
  • изпълнете проста заявка, за да получите височината на блока от основната мрежа на Polkadot
  • изпълнете проста GET заявка, за да получите височината на блока от основната мрежа на Polkadot, като използвате cURL

Аудитория

Това ръководство е насочено към нови разработчици, които имат известен опит в разработката и се интересуват да научат повече за SubQuery.

Видео ръководство


Необходими условия

Ще ви трябва:

  • gitHub акаунт

1. Създай проект

Нека създадем проект, наречен subqlHelloWorld, като стартираме subql init и изберем да изградим проекта с мрежата Polkadot и инициализираме проекта с subql-starter шаблон. Трябва да изпълним задължителната инсталация, кодиране и изграждане с любимия ви мениджър на пакети.

> subql init subqlHelloWorld
yarn install
yarn codegen
yarn build

Въпреки това НЕ изпълнявайте командите на docker.

2. Създаване на GitHub хранилище

В GitHub създайте ново публично хранилище. Въведете име и задайте видимостта си на обществена. Тук всичко се запазва по подразбиране засега.

създаване на GitHub хранилище

Обърнете внимание на вашия URL адрес на GitHub, той трябва да е публичен, за да може SubQuery да има достъп до него.

създаване на GitHub хранилище

3. Натиснете към GitHub

Обратно в директорията на вашия проект, инициализирайте я като директория git. В противен случай може да получите грешката "fatal: not a git repository (or any of the parent directories): .git"

git init

След това добавете отдалечено хранилище с командата:

git remote add origin https://github.com/seandotau/subqlHelloWorld.git

Това настройва вашето отдалечено хранилище на “https://github.com/seandotau/subqlHelloWorld.git” и му дава името „origin“, което е стандартната номенклатура за отдалечено хранилище в GitHub.

След това добавяме кода към нашето репо със следните команди:

> git add .
> git commit -m "First commit"
[master (root-commit) a999d88] First commit
10 files changed, 3512 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 docker-compose.yml
create mode 100644 package.json
create mode 100644 project.yaml
create mode 100644 schema.graphql
create mode 100644 src/index.ts
create mode 100644 src/mappings/mappingHandlers.ts
create mode 100644 tsconfig.json
create mode 100644 yarn.lock
> git push origin master
Enumerating objects: 14, done.
Counting objects: 100% (14/14), done.
Delta compression using up to 12 threads
Compressing objects: 100% (13/13), done.
Writing objects: 100% (14/14), 59.35 KiB | 8.48 MiB/s, done.
Total 14 (delta 0), reused 0 (delta 0)
To https://github.com/seandotau/subqlHelloWorld.git
 * [new branch]      master -> master

Командата за натискане означава "моля, натиснете моя код КЪМ първоначалното репо ОТ моето главно локално репо". Обновяването на GitHub трябва да покаже целия код в GitHub.

Първи ангажимент

Сега, след като имате кода си в GitHub, нека да разгледаме как можем да го хостваме в SubQuery Projects.

4. Създай проект

Отидете до https://managedservice.subquery.networkopen in new window и влезте с вашия GitHub акаунт.

Добре дошли в SubQuery Projects

След това създайте нов проект,

Добре дошли в SubQuery Projects

И попълнете различните полета със съответните данни.

  • GitHub account: Ако имате повече от един акаунт в GitHub, изберете под кой акаунт ще бъде създаден този проект. Проектите, създадени в акаунт на организация в GitHub, се споделят между членовете в тази организация.
  • Project Name: Дайте име на вашия проект тук.
  • Subtitle: Предоставете подзаглавие за вашия проект.
  • Description: Обяснете какво прави вашият SubQuery проект.
  • GitHub Repository URL: Това трябва да е валиден URL адрес на GitHub към публично хранилище, което съдържа вашия SubQuery проект. Файлът schema.graphql трябва да е в корена на вашата директория.
  • Скриване на проект: Ако е маркирано, това ще скрие проекта от публичния SubQuery експлорър. Запазете това немаркирано, ако искате да споделите вашият SubQuery с общността!

Създайте параметри на SubQuery

Когато щракнете върху създаване, ще бъдете отведени до таблото си за управление.

Панел за управление на SubQuery Project

Таблото за управление съдържа много полезна информация като мрежата, която използва, URL адреса на хранилището на GitHub на изходния код, който изпълнява, кога е създаден и последно актуализиран, и по-специално подробности за внедряването.

5. Внедрете първия си проект

Сега, когато сте създали своя проект в SubQuery Projects, настройвайки поведението на началния екран, следващата стъпка е да стартирате проекта си, като го направите оперативен. Внедряването на версия задейства нова операция за индексиране на SubQuery и настройва необходимата услуга за заявки, за да започне да приема заявки на GraphQL. Можете също да внедрите нови версии в съществуващи проекти тук.

Можете да изберете да внедрите в различни среди, като производствен слот или слот за етапи. Тук ще внедрим в производствения слот. Щракването върху бутона "Deploy" извежда екран със следните полета:

Внедряване в производствен слот

  • Commit Hash of new Version: От GitHub изберете правилния комит на кодовата база на проекта SubQuery, която искате да бъде внедрена
  • Версия на индексатора: Това е версията на SubQuery нодът, на който искате да стартирате този SubQuery. Вижте @subql/nodeopen in new window
  • Версия на заявка: Това е версията на услугата за заявки на SubQuery, на която искате да стартирате този SubQuery. Вижте @subql/nodeopen in new window

Тъй като имаме само един комит, има само една опция в падащото меню. Ние също така ще работим с най-новата версия на индексатора и версията на заявката, така че ще приемем настройките по подразбиране и след това ще щракнем върху „Deploy Update“.

След това ще видите внедряването си в статуса „Processing“. Тук вашият код се разгръща в инфраструктурата на SubQuery. По принцип сървърът се задейства при поискване и се предоставя за вас. Това ще отнеме няколко минути, така че време да вземете кафе!

Обработка на внедряване

Внедряването вече е в ход.

Стартиране на внедряването

6. Тестване на вашия проект

За да тествате проекта си, щракнете върху 3-те многоточия и изберете "View on SubQuery Explorer".

Вижте Subquery project

Това ще ви отведе до познато "игрище" където можете да щракнете върху бутона за възпроизвеждане и да видите резултатите от заявката.

Subquery площадка

7. Бонусна стъпка

За проницателните сред нас, ще си спомните, че в учебните цели последната точка беше да се изпълни проста GET заявка. За да направим това, ще трябва да вземем „Query Endpoint“, показана в подробностите за внедряване.

Ендпойнт на заявката

След това можете да изпратите GET заявка до този еднпойнт или като използвате любимия си клиент, като напрPostmanopen in new window или Mockoonopen in new window или чрез cURL във вашия терминал. За простота, cURL ще бъде показан по-долу.

Командата curl за изпълнение е:

curl https://api.subquery.network/sq/seandotau/subqueryhelloworld -d "query=query { starterEntities (first: 5, orderBy: CREATED_AT_DESC) { totalCount nodes { id field1 field2 field3 } } }"

давайки резултатите от:

{"data":{"starterEntities":{"totalCount":23098,"nodes":[{"id":"0x29dfe9c8e5a1d51178565c2c23f65d249b548fe75a9b6d74cebab777b961b1a6","field1":23098,"field2":null,"field3":null},{"id":"0xab7d3e0316a01cdaf9eda420cf4021dd53bb604c29c5136fef17088c8d9233fb","field1":23097,"field2":null,"field3":null},{"id":"0x534e89bbae0857f2f07b0dea8dc42a933f9eb2d95f7464bf361d766a644d17e3","field1":23096,"field2":null,"field3":null},{"id":"0xd0af03ab2000a58b40abfb96a61d312a494069de3670b509454bd06157357db6","field1":23095,"field2":null,"field3":null},{"id":"0xc9f5a92f4684eb039e11dffa4b8b22c428272b2aa09aff291169f71c1ba0b0f7","field1":23094,"field2":null,"field3":null}]}}}

Четимостта не е проблем тук, тъй като вероятно ще имате някакъв фронт енд код, който да консумира и анализира този JSON отговор.

Резюме

В този наръчник, хостван на SubQuery, ние показахме колко бързо и лесно беше да вземете Subql проект и да го разположите в SubQuery Managed Serviceopen in new window, където цялата инфраструктура е предоставена за ваше удобство. Има вградена площадка за изпълнение на различни заявки, както и крайна точка на API, с която вашият код да се интегрира.