Гайд: Як запустити свою ноду на Near Protocol Stake Wars III
Повний гайд, як швидко та без зайвих рухів запустити ноду для Stake Wars III
Що таке Stake Wars III і для чого примати в ньому участь ви можете дізнатися у нашій статті. Зараз ми виконаємо 1–4 завдання і покажемо вам кнопку “Гроші”, раз два — поїхали! Виконання 6, 8, 9 завданнь ви знайдете тут. Відповіді на найчастіші питання ви знайдете тут.
План гайду:
1. Вимоги до ноди, вибір хостінгу та сервісу
2. Встановлення залежностей
3. Запуск валідатора
4. Створення стейкінг пулу
- Вимоги до ноди, вибір хостінгу та сервісу
Якщо дивитися на мінімальні вимоги, то на час Stake Wars III вам буде досить і 200гб SSD, то ж дивіться по своєму гаманцю.
Як виявилось згодом, рекомендовані вимоги, трішки більше, ніж указано в гайді. Мінімум, який ван потрібен для стабільної роботи це — 16гб RAM, а краще взагалі 32. Також не рекомендую обирати для себе хостінг Контабо.
Проаналізувавши рекомендовані хостінг сервіси, я зробив свій вибір — Hetzner, свій вибір пояснюю тим, що окремий сервер буде коштувати дешевше ніж VMs та він є один з рекомендованих організаторами челенджу.
Наприклад VMs на AWS або DO з нашими вимогами мають ціни від 100$+- на місяць.
На Hetzner за 40$ на місяць ви отримуєте дуже міцну машину, якої вам досить на багато речей ще зверху, тож дивіться самі.
Я взяв таку машину — AX41-NVMe, нижче її характеристики.
IPv4 можна не доплачювати, але ви можете зіштовхнутися із такою проблемою, тож я оплачую. Обираємо Лінукс(мій Ubuntu 22.04 без контрольної панелі) та локацію, яка дешевше (я обрав Фінляндію) та оплачуєм сервер, отримаємо ip-address, ім’я та пароль на пошту, та підключаємось по ssh через термінал.
Якщо вам не зрозуміло як це зробити, напішіть в комментарі, розповім про це в іншому гайді.
ssh [1]@[2]
[1] — ім’я користувача, наприклад root
[2] — ip адреса — наприклад 66.111.22.444
Натискаємо Enter та вводимо пароль з пошти.
Перевіряємо вашу машину
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
Якщо все гарно ви побачите щось таке
Встановлюємо залежності потрібні для валідатора
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