SubQuery Frontier Public Testnet (Phase 3) v0.3.11
SubQuery это набор инструментов для разработчиков блокчейнов, облегчающий создание приложений Web3 будущего.
Содержание
Информация о проекте
Описание
⠀Проект SubQuery — это полный API для организации и запроса данных из , Layer 1. В настоящее время обслуживая проекты Polkadot, Substrate, Avalanche, Terra и Cosmos (начиная с Juno), эти данные как услуга позволяют разработчикам сосредоточиться на своем основном сценарии использования и внешнем интерфейсе, не тратя время на создание собственного бэкенда для обработки данных.
Фазы
⠀На данной фазе в тестнет допущен каждый желающий. Необходимо будет выполнять задания, за которые будут начисляться очки. Обещают сделать доступным дашборд, в котором вы будете видеть выполненные задания и сумму очков.
Награды
⠀⠀Согласно информации, которую предоставила команда, награда будет выдана участникам набравшим большее число очков:
Требования к серверу
⠀Рекомендуемые (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
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/docker.sh)
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
systemctl enable subquery.service systemctl start subquery.service systemctl status subquery.service
Ждём 2 минуты и проверяем контейнеры
docker ps
Настройка Метамаска
Добавляем тестовую сеть Acala:
- Network Name: Acala
- New RPC URL: https://tc7-eth.aca-dev.network
- Chain ID: 595
- Currency Symbol: ACA
- Block Explorer URL: https://blockscout.mandala.acala.network/
⠀Создайте аккаунт в метамаске для Indexer, создание Controller аккаунта будет позже. На Indexer нужно запросить тестовый токен $ACA, которые можно получить из крана в дискорде на канале #faucet командой:
!drip АДРЕС_МЕТАМАСКА
⠀Убедительная просьба не доить кран, от количества токенов ваши очки в лидерборде не увеличатся. Вам кран потребуется 2-3 раза за весь тестнет.
⠀Также, необходимо добавить токен $SQТ - токен стейкинга и наград. Контракт токена:
$SQT: 0x6B3953381f777Fa7136f1EA263e37174440090D1
Настройка индексера
Для запуска индексера вам потребуется узнать IP вашего сервера, если вы его еще не знаете:
wget -qO- eth0.me
Подключаем метамаск, аккаунт 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
- Indexing Network Endpoint:
wss://polkadot.api.onfinality.io/public-ws
- Network Dictionary Endpoint:
https://api.subquery.network/sq/subquery/polkadot-dictionary
Выходим в обратно в раздел "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"
и в следующем окне указываем стоимость в токенах плана, к примеру 800
Важно! ничего не выбираем в поле "Select specific deployment Id" и создаем план.
Отмечаем выполнение задания (возможно, нужно подождать 1-2 мин):
6. Создать план для определенного проекта (50 очков)
Выполняем все те же шаги что и в задании выше, но на последнем шаге в поле "Select specific deployment Id" выберите проект из выпавшего списка:
Отмечаем выполнение задания (возможно, нужно подождать 1-2 мин):
7. Продать свой план (50 очков)
Для выполнения этого задания, другой аккаунт должен купить у вас план. Есть несколько вариантов решения этого задания:
- Вы предлагаете купить план другому участнику тестнета (может обратиться за помощью в нашу группу)
- Можете запросить токены на другой свой кошелек и купить план у самого себя же. Пример, как купить план, см. "Покупка плана (50 очков)"
Отмечаем выполнение задания (возможно, нужно подождать 1-2 мин):
8. Заклеймить награды с индексера (20 очков)
Выполняется вместе при сбора наград, см. пример: тут.
Отмечаем выполнение задания (возможно, нужно подождать 1-2 мин):
9. Произвести вывод средств на адрес индексера (50 очков)
Снять делегаций со своей ноды:
Далее пользуясь гайдом в заданиии произвести withdraw.
Задание не выполняется, хотя транзакция проходит успешно, также не исчезает запись withdraw, требуется подождать, если не поможет будем обращаться к команде.
10. Снять делегацию с другого индексера (20 очков)
Данное задание выполняется отменой дерегации индексером, который ранее делегировал вам токены:
11. Принять предложение с маркетплейса (50 очков)
Переходим на маркетплейс и выбираем заинтересовавшее нас предложение:
Нажимаем "Accept" и подписываем транзакцию
Отмечаем выполнение задания (возможно, нужно подождать 1-2 мин):
12. Обновить контроллер (30 очков)
13. Отменить регистрацию индексера (30 очков)
Задания "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
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
Discord | Twitter | GitHub | Youtube | Medium
Официальная документация | Explorer | Официальный гайд
Благодарности
Команда Let’s Node! — изучение проекта, написание статьи, администрирование русскоязычного сообщества