Завершённые
June 27, 2022

SubQuery Frontier Public Testnet (Phase 3) v0.3.11

Let's Node!

SubQuery это набор инструментов для разработчиков блокчейнов, облегчающий создание приложений Web3 будущего.


Содержание


Информация о проекте

К содержанию

Описание

⠀Проект SubQuery — это полный API для организации и запроса данных из , Layer 1. В настоящее время обслуживая проекты Polkadot, Substrate, Avalanche, Terra и Cosmos (начиная с Juno), эти данные как услуга позволяют разработчикам сосредоточиться на своем основном сценарии использования и внешнем интерфейсе, не тратя время на создание собственного бэкенда для обработки данных.

Фазы

⠀На данной фазе в тестнет допущен каждый желающий. Необходимо будет выполнять задания, за которые будут начисляться очки. Обещают сделать доступным дашборд, в котором вы будете видеть выполненные задания и сумму очков.

Награды

⠀⠀Согласно информации, которую предоставила команда, награда будет выдана участникам набравшим большее число очков:

  1. Гарантированная аллокация в сейле
  2. Шанс попасть в генезис индексеры (валидаторы)

Требования к серверу

К содержанию

⠀Рекомендуемые (VPS/VDS/DS):
4 CPU, 8GB RAM, SSD 160+ GB, Ubuntu 20.04

Подходящие сервера:


Список заданий

К содержанию

⠀Список заданий разделен на 3 категории и доступен по ссылке, а результат выполнения можно посмотреть в лидерборде по адресу вашего индексера.

Задания "Indexer"

Fully index a project from projects list⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀10 Points
Get your first delegator⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀ 20 Points
Either increase of decrease commission rate ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 10 Points
Create a default plan ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 50 Points
Create a deployment-specific plan ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 50 Points
Update controller account to new one⠀⠀ 30 Points
Get a service agreement from consumer 50 Points
Indexer to accept an offer in the offer market 50 Points
Indexer gets undelegated from delegator 20 Points
Indexer claims a reward from reward distributor 20 Points
Indexer withdraws unstaked amount from staking contract 50 Points
Index all projects from projects list 200 Points

Задания "Delegator"

Delegator add delegation to an indexer 50 Points
Delegator undelegate from an indexer 50 Points
Delegator claims a reward from reward distributor 20 Points
Delegator withdraws undelegated amount from an indexer 50 Points

Задания "Consumer"

Consumer purchase a plan from an indexer 50 Points
Get service agreement from an indexer 50 Points
A purchase offer is created by consumer 50 Points
Cancel offer before it expires 30 Points
Withdraw SQT locked in the offer after it expires 30 Points

Подготовка сервера

К содержанию

⠀Обновить пакеты и систему

sudo apt update && sudo apt upgrade -y

⠀Установить необходимые пакеты

sudo apt install wget jq build-essential nano unzip -y

⠀Установить Docker

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/docker.sh)

⠀Нам понадобиться Firewall

sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 8000
sudo ufw allow 9090
sudo ufw allow 9100
sudo ufw allow 3000:3100/tcp

Установка

К содержанию

Запуск ноды

⠀Клонируем репозитарий

mkdir subquery-indexer
curl https://raw.githubusercontent.com/subquery/indexer-services/main/docker-compose.yml -o $HOME/subquery-indexer/docker-compose.yml

⠀Создать сервисный файл

printf "[Unit]
Description=Subquery systemd service
After=network.target
StartLimitIntervalSec=0

[Service]
User=$USER
Type=simple
Restart=on-failure
RestartSec=10
User=root
SyslogIdentifier=subquery
SyslogFacility=local7
KillSignal=SIGHUP
WorkingDirectory=$HOME/subquery-indexer
ExecStart=`which docker-compose` up -d

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/subquery.service

⠀Запускаем service

systemctl enable subquery.service 
systemctl start subquery.service 
systemctl status subquery.service

Ждём 2 минуты и проверяем контейнеры

docker ps

Установка ноды окончена.

Настройка Метамаска

Добавляем тестовую сеть Acala:

  1. Network Name: Acala
  2. New RPC URL: https://tc7-eth.aca-dev.network
  3. Chain ID: 595
  4. Currency Symbol: ACA
  5. Block Explorer URL: https://blockscout.mandala.acala.network/

⠀Создайте аккаунт в метамаске для Indexer, создание Controller аккаунта будет позже. На Indexer нужно запросить тестовый токен $ACA, которые можно получить из крана в дискорде на канале #faucet командой:

!drip АДРЕС_МЕТАМАСКА

⠀Убедительная просьба не доить кран, от количества токенов ваши очки в лидерборде не увеличатся. Вам кран потребуется 2-3 раза за весь тестнет.

⠀Также, необходимо добавить токен $SQТ - токен стейкинга и наград. Контракт токена:

$SQT: 0x6B3953381f777Fa7136f1EA263e37174440090D1

Настройка индексера

Для запуска индексера вам потребуется узнать IP вашего сервера, если вы его еще не знаете:

wget -qO- eth0.me

и в браузере открыть URL

http://ВАШ_IP:8000/

Подключаем метамаск, аккаунт Indexer

Нажимаем "Get Started" и "Approve".

Регистрируем индексер

Синхронизируем индексер

Устанавливаем контроллер

Пополняем Account 1 (можно запросить токены в кране в дискорде), он же контроллер и нажимаем "Active".

После активации можно выйти в основной раздел: Account.

Всё, нода настроена, переходим к выполнению заданий. Кстати, проверяем список наших заданий: https://frontier.subquery.network/missions/my-missions

Два задания уже должны засчитаться или засчитаются в скором времени.


Выполнение Заданий

Задания "Indexer"

К содержанию

1. Проиндексировать 1 проект (10 очков)

Переходим в Проекты и добавляем свой первый проект

В это поле нужно указать ID проекта, который мы находим в Explorer

Важно! Выбирайте ваш 1ый проект для индексации Polkadot. На время написания гайда 29.06.2022 проект Avalanch и Juno, со слов команды, не готовы для индексации.

После добавления нажимаем на проект

Далее стартуем индексер: Start Indexing

Заполняем форму

Выходим в обратно в раздел "Projects" и ждём полной индексации проекта

После запуска индексации вместо кнопки "Start Indexing" появится "Announce Indexing". Если кнопка не появилась - Ctrl+F5 должно решить проблему.

Нажимаем на Announce Indexing, подписываем транзакцию. Повторяем процедуру с "Announce Ready" и подписываем транзакцию.

Конец.

После выполнения, проверяем список наших заданий: https://frontier.subquery.network/missions/my-missions

2. Проиндексировать все проекты (Джуно и Аваланч)

06.07.2022 добавили индексацию Аваланч.

ВАЖНО! Перед добавлением проекта Аваланч нужно обязательно обновить coordinator_service до > v0.3.6. Перейдите здесь в гайде в раздел "Обновление".

  • Deployment ID: QmWaCmiiNNSPKVuXGfwb7m67UuUeb39MjdNTSfz6K5A9S1
  • NEW Deployment ID: QmTXSopHWTDhei9ukMAJ1huy83jM9KnGsNEkBcpQkZUCVP
  • Network Endpoint: http://avalanche.api.onfinality.io:9650
  • Dictionary Endpoint: https://api.subquery.network/sq/subquery/avalanche-dictionary

07.07.2022 добавили индексацию Джуно.

ВАЖНО! Перед добавлением проекта Аваланч нужно обязательно обновить coordinator_service до > v0.3.6. Перейдите здесь в гайде в раздел "Обновление".

  • DeploymentID: QmPZrgnpCrhU3bBXvNQG8qX3VBQTyNVj7agx1hiav14imM
  • Network Endpoint: https://juno-rpc.polkachu.com
  • Dictionary Endpoint: https://api.subquery.network/sq/subquery/cosmos-juno-dictionary

После индексации 2ух последних проектов выполняется данное задание:

3. Привлечь делегацию со стороны (20 очков)

Идем в чат нашей группы или в дискорд, в канал #frontier-delegator-chat и просим заделегировать на вашу ноду или взаимную делегацию. Чтобы делегатор знал, на кого делегировать, предоставьте ему свой адрес аккаунта Indexer.

Пример сообщения:

Договариваетесь о делегации

Далее проверяем задание:

4. Изменить комиссию индексера (10 очков)

Выполнено при установки ноды

5. Создать общий план по умолчанию для всех проектов (50 очков)

Переходим в "Plan & Offer" и раздел "My Plans"

Нажимаем "Create Plan"

Выбираем любой темплейт плана

и в следующем окне указываем стоимость в токенах плана, к примеру 800

Важно! ничего не выбираем в поле "Select specific deployment Id" и создаем план.

Отмечаем выполнение задания (возможно, нужно подождать 1-2 мин):

6. Создать план для определенного проекта (50 очков)

Выполняем все те же шаги что и в задании выше, но на последнем шаге в поле "Select specific deployment Id" выберите проект из выпавшего списка:

Отмечаем выполнение задания (возможно, нужно подождать 1-2 мин):

7. Продать свой план (50 очков)

Для выполнения этого задания, другой аккаунт должен купить у вас план. Есть несколько вариантов решения этого задания:

  1. Вы предлагаете купить план другому участнику тестнета (может обратиться за помощью в нашу группу)
  2. Можете запросить токены на другой свой кошелек и купить план у самого себя же. Пример, как купить план, см. "Покупка плана (50 очков)"

Отмечаем выполнение задания (возможно, нужно подождать 1-2 мин):

8. Заклеймить награды с индексера (20 очков)

Выполняется вместе при сбора наград, см. пример: тут.

Отмечаем выполнение задания (возможно, нужно подождать 1-2 мин):

9. Произвести вывод средств на адрес индексера (50 очков)

Снять делегаций со своей ноды:

Далее пользуясь гайдом в заданиии произвести withdraw.

Ождиаем выполнение задания:

Задание не выполняется, хотя транзакция проходит успешно, также не исчезает запись withdraw, требуется подождать, если не поможет будем обращаться к команде.

10. Снять делегацию с другого индексера (20 очков)

Данное задание выполняется отменой дерегации индексером, который ранее делегировал вам токены:

11. Принять предложение с маркетплейса (50 очков)

Переходим на маркетплейс и выбираем заинтересовавшее нас предложение:

Нажимаем "Accept" и подписываем транзакцию

Отмечаем выполнение задания (возможно, нужно подождать 1-2 мин):

12. Обновить контроллер (30 очков)

Выполнено при установки ноды.

13. Отменить регистрацию индексера (30 очков)

todo

Задания "Delegator"

К содержанию

1. Делегировать токены индексеру

Чтобы делегировать токены, убедитесь что у вас есть $SQT токен,

если их нет, запросите их в #faucet, далее перейдите в Explorer и дальше в раздел "Indexers":

Для поиска конкретного валидатора можете воспользоваться поиском валидатора по адресу и далее нажимайте "Delegate":

Убедитесь, что транзакция прошла успешно:

Далее проверяем задание:

2. Заклеймить награды с индексера

Переходим в "Stake & Delegate" снимаем награды:

После 2ух минут, проверяем выполнение задания:

3. Снять делегацию с индексера

Необходима отменить ("Undelegate") делегацию:

Далее проверяем задание:

4. Собрать награды с делегаций

Чтобы выполнить это задание, вы должны предварительно произвести "Undelegate" процедуру, см Задание 3.

Далее проверяем задание:

Задания "Consumer"

К содержанию

1. Покупка плана (50 очков)

Перейдите в Explorer, раздел Indexers, в поиске найдите желаемого индексера, откройте список его планов и нажимайте "Purchase"

Завершайте покупку плана

Проверяем выполнение задания (возможно, нужно подождать 1-2 мин):

2. Принять предложение с маркетплейса (50 очков)

Данное задание выполняется параллельно с заданием: "Принять предложение с маркетплейса (50 очков)"

Проверяем выполнение задания (возможно, нужно подождать 1-2 мин):

3. Создать предложение (50 очков)

Нажимаем "Create offer" и даем разрешение на использование этого смарконтракта.

После подтверждения повторно нажимаем на "Create offer" и ищем проект по ID: QmduAur8aCENpuizuTGLAsXumG2BX8zSgWLsVpp5b8GEGN

Далее, следуем примеру на скриншотах ниже:

Проверяем выполнение задания:

4. Отменить предложение до его окончания (30 очков)

Создаем офер, как описано в задании выше, и отменяем его до того, как закончится его действие.

Проверяем выполнение задания:

5. Собрать награды с завершенного офера (30 очков)

Переходим в нужный раздел (см. на скриншот) и если вы раньше создавали оферы и их кто-то выкупал, то у вас появятся доступные для вывода средства по истечению вашего офера.

Через 2 минуты проверяем результат:


Обновление

К содержанию

⠀Скачиваем обновленный файл докера

curl https://raw.githubusercontent.com/subquery/indexer-services/main/docker-compose.yml -o $HOME/subquery-indexer/docker-compose.yml

⠀Перезапустить Docker Compose

cd $HOME/subquery-indexer && docker rm -f coordinator_service && docker-compose up -d; sleep 50; docker-compose restart; cd

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

docker ps

Полезные команды

К содержанию

Посмотреть лог

cd $HOME/subquery-indexer && docker-compose logs; cd

⠀Перезапустить ноду

cd $HOME/subquery-indexer && docker-compose restart; cd

⠀Остановить ноду

cd $HOME/subquery-indexer && docker-compose down; cd

Удаление

cd $HOME/subquery-indexer && docker-compose down; cd; rm -rf subquery-indexer;

Полезные ссылки

К содержанию

Сайт проекта | Официальная группа Telegram

Русскоязычная группа Telegram

Discord | Twitter | GitHub | Youtube | Medium

Официальная документация | Explorer | Официальный гайд


Благодарности

К содержанию

Команда Let’s Node! — изучение проекта, написание статьи, администрирование русскоязычного сообщества

Выразить благодарность