Гайд: Як запустити свою ноду на Near Protocol Stake Wars III

Повний гайд, як швидко та без зайвих рухів запустити ноду для Stake Wars III

Near Ukraine Guild 🇺🇦
7 min readJul 23, 2022

Що таке Stake Wars III і для чого примати в ньому участь ви можете дізнатися у нашій статті. Зараз ми виконаємо 1–4 завдання і покажемо вам кнопку “Гроші”, раз два — поїхали! Виконання 6, 8, 9 завданнь ви знайдете тут. Відповіді на найчастіші питання ви знайдете тут.

План гайду:

1. Вимоги до ноди, вибір хостінгу та сервісу
2. Встановлення залежностей
3. Запуск валідатора
4. Створення стейкінг пулу

  1. Вимоги до ноди, вибір хостінгу та сервісу
Рекомендовані вимоги

Якщо дивитися на мінімальні вимоги, то на час Stake Wars III вам буде досить і 200гб SSD, то ж дивіться по своєму гаманцю.

Як виявилось згодом, рекомендовані вимоги, трішки більше, ніж указано в гайді. Мінімум, який ван потрібен для стабільної роботи це — 16гб RAM, а краще взагалі 32. Також не рекомендую обирати для себе хостінг Контабо.

Рекомендовані сервіси

Проаналізувавши рекомендовані хостінг сервіси, я зробив свій вибір — Hetzner, свій вибір пояснюю тим, що окремий сервер буде коштувати дешевше ніж VMs та він є один з рекомендованих організаторами челенджу.
Наприклад VMs на AWS або DO з нашими вимогами мають ціни від 100$+- на місяць.

Ціна VMs на DO за рекомендованими вимогами
Ціна VMs на AWS за рекомендованими вимогами

На Hetzner за 40$ на місяць ви отримуєте дуже міцну машину, якої вам досить на багато речей ще зверху, тож дивіться самі.
Я взяв таку машину — AX41-NVMe, нижче її характеристики.

Характеристики моєї машини
Характеристики моєї машини
Характеристики моєї машини

IPv4 можна не доплачювати, але ви можете зіштовхнутися із такою проблемою, тож я оплачую. Обираємо Лінукс(мій Ubuntu 22.04 без контрольної панелі) та локацію, яка дешевше (я обрав Фінляндію) та оплачуєм сервер, отримаємо ip-address, ім’я та пароль на пошту, та підключаємось по ssh через термінал.

Якщо вам не зрозуміло як це зробити, напішіть в комментарі, розповім про це в іншому гайді.

ssh [1]@[2]

[1] — ім’я користувача, наприклад root
[2] — ip адреса — наприклад 66.111.22.444

Натискаємо Enter та вводимо пароль з пошти.

Успішне підключення по ssh

Перевіряємо вашу машину

lscpu | grep -P '(?=.*avx )(?=.*sse4.2 )(?=.*cx16 )(?=.*popcnt )' > /dev/null && echo "Supported" || echo "Not supported"

Якщо все гарно, то ви побачите наступне

Успішний результат перевірки серверу

Вітаю! У вас є особистий сервер, готовий для налаштування ноди!

2. Встановлення залежностей

По-перше, давайте переконаємося, що машина Linux оновлена.

sudo apt update && sudo apt upgrade -y

Встановлюємо nodejs

Усі команди далі по гайду виконвути по одній, тобто виконав строку, копіюй наступну та вставляй

curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install build-essential nodejs
PATH=”$PATH”

Перевіряємо чи встановилось

node -v

Якщо все гарно, ви побачите версію ноди

Версія ноди

Встановлюємо near-cli

sudo npm install -g near-cli
echo 'export NEAR_ENV=shardnet' >> ~/.bashrc
echo 'export NEAR_ENV=shardnet' >> ~/.bash_profile
source $HOME/.bash_profile

Перевіряємо

near proposals

Якщо все гарно ви побачите щось таке

Результат near proposals

Встановлюємо залежності потрібні для валідатора

sudo apt install -y git binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev cmake gcc g++ python3 protobuf-compiler libssl-dev pkg-config clang llvm cargo

Якщо у вас проблеми із встановленням python або docker, спробуйте наступні команди:

sudo apt install python3
sudo apt install docker-ce
sudo apt install python3-pipUSER_BASE_BIN=$(python3 -m site — user-base)/binexport PATH=”$USER_BASE_BIN:$PATH”sudo apt install clang build-essential make

Установка расту

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

Вводимо 1 та Enter

source $HOME/.cargo/env

3. Запуск валідатора

Обираємо місце, де буде знаходитись наш валідатор, створюємо папку та вигружаємо туди код валідатору, наприклад

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

Викачуємо останній комміт з шардінг фічею.

Актуальний комміт ви можете знайти тут

git checkout 0f81dca95a55f975b6e54fe6f311a71792e21698

У тій же папці білдимо раст код

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

Ініціалізуємо валідатора

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

Що і навіщо ми ініціалізували ви можете подивитися тут

Далі нам потрібно замінити згенерений конфіг на потрібний для Stake Wars

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

Після оновлення, треба ще модифікувати config.json файл, як і що можна подивитися тут

Тепер нам потрібно створити гаманець тут

Після того, як створили гаманець авторизуємось у терміналі

Наразі є проблеми зі створенням гаманця, слідкуйте за статусом створення в нашому каналі та чаті

near login
Початок авторизації

Копіюємо посилання у браузер, авторизуємся через наш аккаунт, та у терміналі пишемо повне ім’я свого гаманця, наприклад мій: nearuaguild.shardnet.near та клікаємо Enter

Авторизація
Успішний результат авторизації

Тепер треба згенерувати ключі валідатора також тут ви створюєте ім’я свойого staking pool

near generate-key <pool_id>

<pool_id> — xx.factory.shardnet.near де заміст хх ви створюєте ім’я вашого валідатору, наприклад мій pool_id — nearuaguild.factory.shardnet.near

Копіюємо ваш файл в папку вашого валідатору

cp ~/.near-credentials/shardnet/YOUR_WALLET.json ~/.near/validator_key.json

Замість YOUR_WALLET — ім’я вашого гаманця, наприклад мій nearuaguild.shardnet.near

Редактуємо файл ~/.near/validator_key.json, та заміняємо на наші данні

Незаповнений фай

Замініть:
1. xx.factory.shardnet.near — на ваш pool_id
2. Private_key на secret_key

Мій файл виглядає так:

Прилад заповненого файлу

Перевірте чи все працює, запускаємо ваш валідатор

./target/release/neard --home ~/.near run

Якщо все працює ви побачите щось таке:

Давайте тепер напишемо сервіс для роботи валідатора у бекграунді

Створюємо сервіс

sudo nano /etc/systemd/system/neard.service

Вставляємо та заміняємо <USER> на нашого

Незаповнений файл

Щоб зберегти та вийти з файлу вам потрібно натиснути на MacOS cmd + X або ctrl + X на windows/linux та Enter

У вас повинно бути щось таке:

Прилад заповненого файлу

Виписуємо дозвіл на сервіс

sudo systemctl enable neard

Тепер ви можете запускати, зупиняти, перезапукати валідатора у бекграунді, ваші команди:

sudo systemctl start neard
sudo systemctl stop neard
sudo systemctl restart neard

Запускаємо валідатора через

sudo systemctl start neard

Та дивимось логи

journalctl -n 100 -f -u neard

Якщо все гарно, то ви побачите щось наступне:

Логи в терміналі

4. Створення стейкінг пулу

Запускаємо команду для створення стейкінг пулу

near call factory.shardnet.near create_staking_pool '{"staking_pool_id": "<pool id>", "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 id> — ваш пул айді, такий же як ми робили вишче, в моєму випадку це — nearuaguild
  • <accountId> — ім’я гаманця, який ви створили на https://wallet.shardnet.near.org/, та через який залогінились, в моєму випадку це nearuaguild.shardnet.near
  • <public key>-ваш публічний ключ, вводити команду нижче та копіюєте publickey сюди cat ~/.near/validator_key.json
  • reward_fee_fraction — змінюєте numerator на проценти із 100 скільки валідатор буде брати комісії, у середньому то 3–7%

Запускаєте команду якщо в терміналі ви побачли Success! — вітаю ви створили ваш перший Staking Pool.

Тепер на explorer ви можете побачити ваш валідатор

На провіднику ви побачите такий статус поряд із вашим валідатором.

Статус валідатора: Пропозиція

Тепер, щоб ваш валідатор став активним, та почав отримувати комісію треба делегувати йому трішки Near, ціна валідатора динамічна, тож її можна подивитися у провіднику.

Наразі крани закрили, але все ще є декілька способів отримати токени, наприлад спитати у discord, або в нашому чаті

Ціна місця валідатора

Теперь делегуємо потрібну кількість Near на наш валідатор.

near call <staking_pool_id> deposit_and_stake --amount <amount> --accountId <accountId> --gas=300000000000000

Замість:

  • <staking_pool_id> — ім’я вашого стейкінг пулу, що ви писали раніше
  • <amount> — кількість Near
  • <accountId> — ім’я акаунту з якого ви будете знімати гроши на стейкінг

Тепер ви побачите, що стан вашого валідатору змінився на

Стан валідатору після делігації потрібній кількості токенів

Після цього вам потрібно почекати одну епоху, щоб ви почали отримувати комісію та ваш стейкінг пул додали до переліку валідаторів.

Наразі є проблеми із потраплянням до активних валідаторів, за статусом слідкуйте в нашому каналі або чаті.

Вітаю, ось ви і зробили 1–4 челендж для Stake Wars III, запустили свого валідатора та отримуєте комісію! Якщо якісь моменти були не зрозумілі, пишіть у коментарях, відповім на всі питання! Дякую за увагу та бажаю вам крутого челенджу та перемог!

Більше команд для взаємодії із валідатором ви можете подивитися тут.

Якщо ви знайшли цю статтю корисною, натисніть кнопку 👏 стільки разів, наскільки вам сподобалося читати цю публікацію. Ваші коментарі також дуже мотивують рухатись далі.

Twitter автора | Телеграм автора: @kiskesis

Долучайтеся до нашої гильдії:
Telegram канал | Telegram чат | Twitter

--

--

Near Ukraine Guild 🇺🇦

Fast-growing guild aimed at providing high-quality content and assistance to grow a strong community of developers/entrepreneurs in the Near Protocol ecosystem