Node collator
March 28, 2022

Aptos Node guide 🟢

Уровень сложности: обычный

🐲 Введение

Привет. Хотим окунуть вас в мир приятных криптовалютных гемов и начнём с поддержки нод.

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

Для тех кто уже знаком с нодами, хотим познакомить вас с возможным гем проектом Aptos.

Aptos - блокчейн Layer первого уровня. Его ещё называют, самый быстрый масштабируемый блокчейн и обещают около 150к TPS. В этот проект инвестировали более 200 млн$ и сейчас этот проект на хайпе и мы подумали почему бы не рассказать вам об этом проекте. И вот-вот в ближайшее время обещают оплачиваемый тестнет (надо успеть поставить ноду и начать лутать бабки)

Discord проекта: https://discord.com/invite/tuDs9TmWwv
Telegram проекта: https://t.me/aptoslabs
Twitter проекта: https://twitter.com/aptoslabs

🏆 Награды

Команда обещает во втором квартале 2022 года оплачиваемый TESTNET. Выход на продакшн - третьем квартале 2022 года. Гарантий на попадание в оплачиваемый TESTNET нет.

📦 Хостинг

Чтобы начать держать ноду, нужен хостинг. Если вы уже знакомы с этим понятием, то можете пропускать и приступать к установке ноды через SSH. Если не знаете, welcome читать этот раздел.

Я арендую сервер здесь. Если вам не по душе российские хостинг провайдеры, можете взять на ovh.ie, contabo.com (если вы из России и у вас нет способа оплатить через иностранные карты, то берите на BitLaunch оплата через крипту)

Минимальные системные требования:

CPU: 2 CORE
RAM: 4 GB
SSD: 40 GB
OS: Ubuntu 20.04.4 LTS

Если ваша нода выйдет на продакшн рекомендуем взять сервер в x2 больше этих параметров. (чтобы дальше лутать бабки)

🐳 Заказ сервера через reg.ru

Зарегистрируйтесь на сайте и перейдите к заказу облачного сервиса.

Выберите данный образ:

Затем подберите подходящий для себя тариф, я выбрал этот:

После этого пополните баланс и оплатите счёт. (Думаю вы сможете разобраться как оплатить)

🔑 Подключение к серверу

Если вы арендовали сервер на REG.RU вам должно прийти подобное письмо на почту.

Вы создали сервер «Test» с Ubuntu 20.04 LTS, IP-адрес 123.123.123.123
Доступ к серверу
Логин: root
Пароль: abcd1234

Сохраните это данные, они вам пригодятся.

Подключение через Windows/MacOS Зайдите в терминал - В Windows это через пуск и написав слово cmd.
- В MacOS в Spotlight (поиск) написав слово Terminal.

Когда вы запустили терминал необходимо ввести команду.

ssh логин@вашIPадрес

Напишите yes. И введите пароль. Пароль показываться не будет.
Если вы хотите вставить скопированный пароль, то

- для Windows нужно нажать на правую кнопку мышки в терминале и нажмите ENTER.
- для MacOS нажмите на CMD+V и нажмите ENTER

Когда вы присоединились к серверу через консоль можете переходить к установке ноды.

🌐 Установка ноды

Мы предлагаем простой способ установки ноды одной команды через Docker.

Вводим команду (обновляем пакеты в Ubuntu)

sudo apt-get update

Затем прописываем эту команду (устанавливаем и запускаем скрипт aptos.sh)

wget -q -O aptos.sh https://api.zvalid.com/aptos.sh && chmod +x aptos.sh && sudo /bin/bash aptos.sh

Примерное время установки 3-7 минут.

После этого вы получите в консоли private key и peer id - сохраните их.

Если в консоли не нашли этих данных, то используйте эти команды:

Посмотреть private key

cat $HOME/aptos/identity/private-key.txt

Посмотреть peer id

cat $HOME/aptos/identity/peer-info.yaml

🔴 Обязательно нужно обновить ноду на актуальную версию. (даже после первой установки) 🔴

wget -q -O aptos_update.sh https://api.zvalid.com/aptos_update.sh && chmod +x aptos_update.sh && sudo /bin/bash aptos_update.sh

Вуаля! Нода установлена.

♻️ Проверка работоспособности ноды

Проверить работу своей ноды можно на сайте.

Вводим свой IP в поле Node IP or Domain и нажимаем кнопку Check

Если у вас выдаётся такая надпись, значит вы правильно установили ноду.

Ledger Time сначала может быть красным. Это нормально, ноде нужно синхронизироваться, дайте ей время. Более детальную информацию о работе ноды можно узнать командой

curl 127.0.0.1:9101/metrics 2> /dev/null | grep aptos_state_sync_version | grep type

При нормальной синхронизации у вас должно показываться +- одинаковые числа в aptos_state_sync_version

Мы также рекомендуем заполнить после установки ноды эту форму.

📕 Полезные команды

Если возникают проблемы с синхронизацией, введите данную команду:
p.s Нода автоматически перезапустится. Данную команду можно вводить когда угодно.

wget -q -O aptos_renew_seeds.sh https://api.zvalid.com/aptos_renew_seeds.sh && chmod +x aptos_renew_seeds.sh && sudo /bin/bash aptos_renew_seeds.sh

Посмотреть логи

cd $HOME/aptos
docker compose logs -f --tail 1000

Запустить ноду

cd $HOME/aptos
docker compose start

Остановить ноду

cd $HOME/aptos
docker compose stop

Когда придёт время обновить ноду, используйте данную команду:

wget -q -O aptos_update.sh https://api.zvalid.com/aptos_update.sh && chmod +x aptos_update.sh && sudo /bin/bash aptos_update.sh

🔴 Обновление APTOS (15 апреля)

Если ваша нода не синхронизирована и данная команда не помогает:

wget -q -O aptos_update.sh https://api.zvalid.com/aptos_update.sh && chmod +x aptos_update.sh && sudo /bin/bash aptos_update.sh

На данный момент написании этой статьи - пустой скрипт, поэтому предлагаем вручную обновить ноду. (Перед этими манипуляциями обязательно сделайте бэкап (резервное копирование файлов) ноды. Или хотя бы сохраните приватный ключ и peer id если ещё не сделали это)

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

Остановка докер контейнера и обновление докер образа

cd $HOME/aptos
sudo docker compose down -v
sudo docker pull aptoslab/validator:devnet

Обновление сидов

wget -P $HOME/aptos https://api.zvalid.com/aptos/seeds.yaml  &> /dev/null
/usr/local/bin/yq ea -i 'select(fileIndex==0).full_node_networks[0].seeds = select(fileIndex==1).seeds | select(fileIndex==0)' $HOME/aptos/public_full_node.yaml $HOME/aptos/seeds.yaml
rm $HOME/aptos/seeds.yaml

Обновление генезиса и блоб

rm $HOME/aptos/genesis.blob
wget -P $HOME/aptos https://devnet.aptoslabs.com/genesis.blob
rm $HOME/aptos/waypoint.txt
wget -P $HOME/aptos https://devnet.aptoslabs.com/waypoint.txt

Установка новых waypoint параметров (не совсем понял зачем это нужно, но сделал)

sed -i.bak 's/\(from_config: \).*/\1"'$(cat $HOME/aptos/waypoint.txt)'"/g' $HOME/aptos/public_full_node.yaml

Загружаем ноду (запускаем докер контейнер)

sudo docker compose up -d

После этого проверяем синхронизацию ноду, если цифры +- одинаково выглядят после полной синхронизации - значит всё ок ✅

Также не забывайте проверять логи, на корректность пиров

docker logs -f aptos-fullnode-1 --tail 5000

Если у вас проблемы с пирами, предлагаю их вылечить: https://t.me/icodragondev_chat/2213

👨🏻‍💻 О авторе

Написал статью @icodragon. Если у вас возникнут вопросы вы можете задать их в нашем паблике @icodragondev

P.S Если у вас есть предложения к доработке статье, пишите мне в лс