SubQuery Module 1
Выполнение 1 модуля для получения статуса Спартанца в проекте SubQuery
Что нам понадобиться для успешного запуска модуля:
- Сервер - арендуем любой самый дешевый сервер, он на нам необходим исключительно для запуска ноды, далее мы будем его гасить. если используем Hetzner подойдет даже CX11 за 5 евро в месяц, учитывая , что на запуск нам понадобиться максимум пару часов в итого заплатим 10 центов.
- Putty или MobaXterm тут дело каждого, мне больше нравиться MobaXterm скачать можно тут https://mobaxterm.mobatek.net/download.html
- WinSCP при помощи данной приложухи без проблем закинем необходимые нам файлы. одним словом обязательно к установки, качаем тут - https://winscp.net/eng/download.php
- GitHub тут мы будем хранить наши результаты работы . регистрация тут -https://github.com
Module 1 - начинаем установку
Подключаемся к наше арендованному серверу через MobaXterm
1. Для начала обновляем пакеты используя команду (все команды просто копируем с гайда и при помощи правой кнопки мыши вставляем в MobaXterm ):
и нажимаем Enter по аналогии мы будем вводить все последующие команды
2. Ожидаем пока обновятся все пакеты и вводим следующие команды
apt install nodejs - нас попросят подтвердить действие, нажимаем Y и Enter
3. Далее меняем версию на 14.18.0
после того как мы введем команду "n" у нас выскачит вот такое окно:
нажимаем Enter тем самым соглашаемся поменять версию на v14.18.0
apt install docker-compose - нас попросят подтвердить действие, нажимаем Y и Enter
npm install -g @subql/cli - если выскачит ошибка не обращаем внимания
9. Приступаем к созданию проекта:
после того как вставим команду "sudo subql init --starter HelloWorld" нас попросят ввести информацию :
- Git repository - жмем просто Enter
- RPC endpoint - жмем Enter и ждем секунд 5-10
- Authors - вводим Ваше имя (к примеру я ввожу ник дискорда leader2869)
- Description - жмем просто Enter
- Version - жмем Enter
- License - жмем Enter
Если видим вот такую строчку, значит делаем все правильно:
10. Двигаемся дальше, заходим в наш проект
ТЕПЕРЬ ОЧЕНЬ ВАЖНАЯ ЧАСТЬ ПРОЕКТА!!!! НЕОБХОДИМО ЗАМЕНИТЬ СОДЕРЖИМОЕ 3 ФАЙЛОВ В ПРОЕКТЕ.
Для этого нам понадобиться программа которую мы скачали вот тут - https://winscp.net/eng/download.php.
устанавливаем себе на компа, подключаемся к арендованному серверу
2 - пишем IP aдрес VPS сервера
3- имя пользователя (стандартно root )
4- пароль который пришел нам на почту при аренде сервера(если не меняли)
После того как сохранили себе подключение нажимаем войти
После подключения к серверу нам необходимо полностью изменить 3 файла,а именно находим файл project.yaml.
путь к нему root->SubQk->HelloWorld-> project.yaml
11. открываем файл и полностью удаляем содержимое и вставляем следующий код:
specVersion: 0.0.1
description: ''
repository: ''
schema: ./schema.graphql
network:
endpoint: wss://polkadot.api.onfinality.io/public-ws
dictionary: https://api.subquery.network/sq/subquery/dictionary-polkadot
dataSources:
- name: main
kind: substrate/Runtime
startBlock: 1
mapping:
handlers:
- handler: handleBlock
kind: substrate/BlockHandler12. сохраняем файл и теперь ищем файл в этой же папке с названием schema.graphql
открываем файл и полностью удаляем содержимое и вставляем следующий код:
13. и последний файл mappingHandler.ts находится по следующему пути
root->SubQk->HelloWorld->src->mappings->mappingHandler.ts
открываем файл и полностью удаляем содержимое и вставляем следующий код:
import {SubstrateExtrinsic,SubstrateEvent,SubstrateBlock} from "@subql/types"; import {StarterEntity} from "../types"; import {Balance} from "@polkadot/types/interfaces"; export async function handleBlock(block: SubstrateBlock): Promise<void> { let record = new StarterEntity(block.block.header.hash.toString()); record.blockHeight = block.block.header.number.toNumber(); await record.save();
cохраняем файл и на этом с редактированием в этом модуле закончили!!
14. открываем снова наш MobaXterm
ОЧЕНЬ ВАЖНО!!!!! главное, что бы вы находитесь в директории нашего проекта, это должно выглядеть вот так:
Если находимся в нужной нам директории переходим сразу к установки зависимостей, если вдруг вы в корне пути , пишем пункт 1 и 2, а потом идем к установки зависимостей
ждем пока установится (может выдать ошибку, не обращаем внимания) и идем
далее открываем браузер на вашем компьютере и вписываем следующее:
http:\\ IP адрес вашего арендованного VPS сервера:3000
пример: http:\\65.108.59.163:3000
должно открыться следующее окно :
в левой его части пишем следующий код (копируем с гайда и вставляем) :
{
query{
starterEntities(last:10, orderBy: ID_ASC){
nodes{
blockHeight
}
}
}
}
после вставки и нажатия кнопки (указано стрелкой) должно появиться в правом окне примерно похожий текст, это означает, что задание мы выполнили правильно и теперь неjбходимо залить его на GitHub.
вкладку можем закрыть, возвращаемся обратно MobaXterm и нажимаем Ctrl+C тем самым останавливаем нашу ноду.
17. дальше пишем следующие команды
указываем ваше имя на GitHabe которое вы зарегистрировали !! ковычки оставляем!!! ,пример:
git config --global user.name "leader2869"
git config --global user.email "свой email" - указываем свой E-mail !! ковычки оставляем!!!
опять не забываем вставить свой e-mail
ssh-keygen -t rsa -b 4096 -C "vitaly.create@gmail.com" -f ~/.ssh/id_rsa
далее жмем 3 подряд раза Enter
копируем все что выделено красным и записываем куда нибудь в блокнот.
далее открываем в вашем браузере сайт
20. Далее вводим имя названия репозитория и выбираем Public и жмем create repository
21. Далее переходим в настройки
22. теперь добавляем ключ SSH ключ который мы скопировали в терминале
23. вставляем ключ и жмем Add SSH key:
24. Теперь создаем свой Personal access tokens который будем использовать и в первом и втором модуле:
Идем по пути Settings -> Developer Settings -> Personal Access Token -> Generate new token
25. Даем название своему токену, выбираем период который он будет действовать, выбираем галочки как на скрине и создаем его.
26. ВНИМАНИЕ!!! После того как мы нажмем Generate token нам покажут acess token один раз, после этого нигде увидеть мы его не сможем, поэтому сохраняем и не теряем, тем более он нам сейчас понадобиться.
27. Возвращаемся в наш терминал и пишем следующие команды:
git remote add origin https://github.com/ник_гитхаб/название_репозитория.git
не забываем изменить ник гитхаба и названия вашего репозитория, полностью готовую ссылку вы можете взять тут:
29. далее вас попросит ввести свой ник на GitHub, в моем случае leader2869 и жмем Enter
Если видите эту строку, значит вы всё правильно подключили
* [new branch] master -> master.
30. Осталось совсем чуть чуть, заходим на сайт https://project.subquery.network/ и логинимся через GitHub
Создаем новый проект- Create Project.
Заполняем Project Name и вставляем ссылку на свой репозиторий и нажимаем Create Ptoject
31. Дальше будут два таких поля, жмем Deploy и внутри еще одна кнопка Deploy update%