July 27, 2022

Гайд по установке ноды NEAR: Stakewars

Near Protocol запускает третий эпизод тестнета Stake Wars, целью которого является децентрализация сети NEAR, путем привлечение новых валидаторов. Анонсированные награды составляют 50к $NEAR на ноду в мейнете и 500 $NEAR токенов за успешное выполнение всех заданий.

Информацию о челлендже можете посмотреть по ссылке.


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

Задание 1.1. Выбираем и покупаем сервер

Нам предлагают взять вот такие сервера:

Ниже можете посмотреть рекомендуемые системные требования:
- CPU: 4 CORE
- RAM: 8 GB
- HDD/SSD: 500 GB

Я выбрал сервер Contabo.com, так как уже не один раз работал с ним и меня все устраивает.

Арендовал средний сервер за 8.99 евро в месяц + 4 евро за установку, итого вышло 12,99 евро. Вы же можете взять сервер за 8 евро в месяц, он тоже справится с своей задачей.

PS. Вся установка проводилась на Linux Ubuntu 20.04.

Задание 1.2. Подготавливаем сервер к работе

Для подключения к серверу я использую MobaXterm.

Все команды для ввода берем по одной строке.

Обновляем Linux.

sudo apt update && sudo apt upgrade -y

Устанавливаем Node.js и npm.

sudo apt install -y git binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev cmake gcc g++ python docker.io protobuf-compiler libssl-dev pkg-config llvm cargo
sudo apt install clang build-essential make
sudo apt install curl jq
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -  
sudo apt install nodejs
PATH="$PATH"

Устанавливаем near-cli.

sudo npm install -g near-cli

Устанавливаем все необходимое для работы валидатора.

export NEAR_ENV=shardnet
echo 'export NEAR_ENV=shardnet' >> ~/.bashrc

sudo apt install python3-pip

USER_BASE_BIN=$(python3 -m site --user-base)/bin
export PATH="$USER_BASE_BIN:$PATH"

Устанавливаем Rust.

sudo apt install curl build-essential gcc make -y

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Нажимаем 1 и нажимаем ENTER.

source ~/.profile
source ~/.cargo/env

Задание 1.3. Создаем кошелек

Переходим по ссылке и создаем кошелек NEAR для тестовой сети.

Выбираем имя пользователя.

Обязательно сохраняем мнемонику в надежном месте.

Задание 2.1. Устанавливаем ноду

Клонируем репозиторий с github.

git clone https://github.com/near/nearcore
cd nearcore
git fetch

Берем актуальный коммит по ссылке.

git checkout 0d7f272afabc00f4a076b1c89a70ffc62466efe9

Собираем бинарные файлы.

cargo build -p neard --release --features shardnet

Инициализируем валидатора.

./target/release/neard --home ~/.near init --chain-id shardnet --download-genesis

Дальше нужно поменять конфиг.

rm ~/.near/config.json
wget -O ~/.near/config.json https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/shardnet/config.json

Создаем сервисный файл.

printf "[Unit]
Description=NEARd Daemon Service

[Service]
Type=simple
User=root
#Group=near
WorkingDirectory=/root/.near
ExecStart=/root/nearcore/target/release/neard run
Restart=on-failure
RestartSec=30
KillSignal=SIGINT
TimeoutStopSec=45
KillMode=mixed

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

Запускаем сервис.

sudo systemctl daemon-reload
sudo systemctl enable neard
sudo systemctl restart neard

Добавляем цвета к выводу логов.

sudo apt install ccze

Смотрим наши логи.

journalctl -n 100 -f -u neard | ccze -A

Задание 2.1. Создаем валидатора

Пишем в консоль.

near login

Нажимаем n.

Копируем ссылку и открываем в браузере, в котором устанавливали кошелек.

Нажимаете NEXT.

Потом нажимаете подключить.

Если появилась вот такая страница, значит вы все сделали правильно.
Можно закрыть эту страницу.

Возвращаемся в консоль и вводим имя своего кошелька.

Создаем ключ валидатора.

near generate-key [pool_id]

Вместо [pool_id] пишем имя вашего валидатора - имя.factory.shardnet.near.

Открываем файл

nano ~/.near-credentials/shardnet/[pool_id].json

Вместо [pool_id] пишем имя вашего валидатора - имя.factory.shardnet.near.

Теперь в этом файле ищете слово private_key и меняете его на secret_key.

Нажимаем Ctrl + X.

Перезапускаем ноду.

sudo systemctl daemon-reload
sudo systemctl enable neard
sudo systemctl restart neard

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

near call factory.shardnet.near create_staking_pool '{"staking_pool_id":
"[pool_id]", "owner_id": "[account_id]", "stake_public_key":
"<public key>", "reward_fee_fraction": {"numerator": 5, "denominator":
100}, "code_hash":"DD428g9eqLL8fWUxv8QSpVFzyHi1Qd16P8ephYCTmMSZ"}'
--accountId="[account_id]" --amount=30 --gas=300000000000000

[pool_id] — ваш пул айди, например имя.factory.shardnet.near
[account_id] — имя кошелька, который вы создали, например имя.shardnet.near
<public key>- ваш публичный ключ с файлаvalidator_key.json
reward_fee_fraction — здесь можно поменять, сколько валидатор будет брать комиссии, я поставил 5%.

Стейкаем немного токенов Near.

near call [pool_id] deposit_and_stake --amount [amount] --accountId [account_id] --gas=300000000000000

[pool_id] — ваш пул айди, например имя.factory.shardnet.near
[amount] — количество токетов Near
[account_id] — имя кошелька, который вы создали, например имя.shardnet.near

Задание 4. Мониторинг и проверка

Здесь вы можете проверить своего валидатора - ТЫК.

Ниже команды для этого задания.

Проверка версии ноды.

curl -s http://127.0.0.1:3030/status | jq .version

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

journalctl -n 100 -f -u neard | ccze -A

Проверка делегатора.

near view [pool_id] get_accounts '{"from_index": 0, "limit": 10}' --accountId [account_id]

Проверка произведенных блоков.

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.current_validators[] | select(.account_id | contains ("[pool_id]"))'

Поздравляю! Вот вы и сделали первые 4-е задания.
Теперь нужно продолжать делать следующие задания.

Список всех заданий
Отчитаться за выполнение 5, 6, 7, 8, 9 и т.д. задания

Контакты NEAR

Discord проекта Near
Website проекта Near
Twitter проекта Near

Контакты

Discord: Epidemik1989#3842

Последнее обновление: 27.07.2022