Показать сообщение отдельно
Непрочитано 23.12.2022, 13:21   #3
Ekaterina Kulikova
Member
 
Регистрация: 20.07.2022
Сообщений: 99
По умолчанию

Задание 3
Создаем стейкинг пул


Код:
near call factory.shardnet.near create_staking_pool '{"staking_pool_id": "<pool name>", "owner_id": "<accountId>", "stake_public_key": "<public key>", "reward_fee_fraction": {"numerator": 5, "denominator": 100}, "code_hash":"DD428g9eqLL8fWUxv8QSpVFzyHi1Qd16P8ephYCTmMSZ"}' --accountId="<accountId>" --amount=30 --gas=300000000000000
#<pool name> - XX
#<accountId> - XX.shardnet.near
#<public key> - берем из файла validator_key.json
Выполнив эту команду - Вы уже застейкаете минимальное количество токенов (30) в свой пул, если хотите застейкать еще:

Код:
near call <pool_id> deposit_and_stake --amount <amount> --accountId <accountId> --gas=300000000000000
#<pool_id> - XX.factory.shardnet.near
#<amount> - количество токенов, которое хотите застейкать
#<accountId> - XX.shardnet.near

Задание 4

В этом задании нам необходимо познакомится с мониторингом ноды и установить RPC на порт 3030.

Проверка логов:

Код:
journalctl -n 100 -f -u neard | ccze -A
RPC

Обычно RPC используется для проверки статистики валидатора, версии узла и просмотра доли делегатора, хотя его можно использовать для взаимодействия с блокчейном, учетными записями и контрактами в целом.

Подробнее о многих командах и о том, как их использовать, можно узнать здесь:
https://docs.near.org/api/rpc/introduction

Для работы RPC необходимо открыть порт 3030 (сразу откроем еще несколько, которые могут Вам понадобиться для дальнейших заданий)
Сервис должен быть остановлен (или его потом нужно будет перезапустить для правильной работы):

Код:
sudo ufw allow 22

sudo ufw allow 3030

sudo ufw allow 9090

sudo ufw allow 3000

sudo ufw allow 24567

sudo ufw enable
Проверяем открыты ли порты:

Идем на любой сайт из гугла по запросу "проверить открыты ли порты на сервере", например этот, вводим свой айпи и нужный порт.

Устанавливаем вспомогательную тулзу JQ

Код:
sudo apt install curl jq
Проверить версию вашего узла:

Код:
curl -s http://127.0.0.1:3030/status | jq .version
Проверяйте делегатов и делайте ставки

Код:
near view <your pool>.factory.shardnet.near get_accounts '{"from_index": 0, "limit": 10}' --accountId <accountId>.shardnet.near
Проверить причину отказа валидатора

Код:
curl -s -d '{"jsonrpc": "2.0", "method": "validators", "id": "dontcare", "params": [null]}' -H 'Content-Type: application/json' 127.0.0.1:3030 | jq -c '.result.prev_epoch_kickout[] | select(.account_id | contains ("<POOL_ID>"))' | jq .reason
#<POOL_ID> - заменить на XX.factory.shardnet.near
Проверить блоки, произведенные / ожидаемые

Код:
curl -r -s -d '{"jsonrpc": "2.0", "method": "validators", "id": "dontcare", "params": [null]}' -H 'Content-Type: application/json' 127.0.0.1:3030 | jq -c '.result.current_validators[] | select(.account_id | contains ("<POOL_ID>"))'

Задание 5

В этом задании необходимо написать свой собственный гайд, в котором детально описать как выполнять задания 1-4. Разместить свою статью на популярном ресурсе, например Медиум. Это задание нужно отправить на проверку, заполнив форму. В нее нужно прикрепить ссылку на Вашу статью.


Задание 6

В этом задании нужно создать скрипт, который будет подавать Ваш пул в активный сет валидаторов, а так же настроить джобу.

Для начала создаем папку/директорию, в которой будет храниться файл со скриптом и директорию для логов:

Код:
mkdir /root/scripts

mkdir /root/logs
Далее создаем файл скрипта ping.sh:

Код:
vi /root/scripts/ping.sh
Открывается редактор файла, в него вставляем:

Код:
#!/bin/sh
# Ping call to renew Proposal added to crontab

export NEAR_ENV=shardnet
export LOGS=/root/logs
export POOLID=<YOUR_POOL_ID>
export ACCOUNTID=<YOUR_ACCOUNT_ID>

echo "---" >> $LOGS/all.log
date >> $LOGS/all.log
near call $POOLID.factory.shardnet.near ping '{}' --accountId $ACCOUNTID.shardnet.near --gas=300000000000000 >> $LOGS/all.log
near proposals | grep $POOLID >> $LOGS/all.log
near validators current | grep $POOLID >> $LOGS/all.log
near validators next | grep $POOLID >> $LOGS/all.log
Код:
#<YOUR_POOL_ID> - заменить на имя ХХ
#<YOUR_ACCOUNT_ID> - заменить на имя ХХ
Добавляем нашему файлу право на исполнение:

Код:
chmod +x root/scripts/ping.sh
Создаем джобу. Джоба - это некое задание, которое будет выполняться раз в определенное время. В нашем случае будет исполняться скрипт ping.sh раз в два часа:

Код:
crontab -e
Откроется вим, в него вставляем следующую строку:

Код:
0 */2 * * * sh /root/scripts/ping.sh
Просмотр логов джобы(будут видны хоть какие-то логи после того, как хотя бы 1 раз выполнится джоба):

Код:
cat root/logs/all.log
Нужно отправить отчет о выполнении задания в эту форму. В нее нужно прикрепить ссылку с эксплорера на Ваш пул и скрин из этого же эксплорера, где видно, что метод пинг вызывается каждые 2 часа(пример скрина ниже)


Задание 7

В этом задании нужно провести работу с данными, которые генерирует блокчейн. Тут нет строгих критериев, лично я попробую выполнить это задание, используя прометеус и графану. Постараюсь написать гайд по этому заданию отдельно.

А пока даю Вам ссылку на оф доки с описанием задания, если у Вас есть идеи и навыки - дерзайте! Удачи!)
Ekaterina Kulikova вне форума   Ответить с цитированием