May 14, 2022

Incentivized testnet Aptos

ШАГ 1

Нам нужно взять в аренду сервер, на нем мы будем поднимать ноду.

Существует много различных сервисов, для примера покажу сервис Vultr, если зарегистрируетесь по этой ссылке получите 100$ на счет, при условии что пополните на 10-15$,по желанию выбирайте любой другой сервис принцип везде один, я же покажу на примере этого сервиса.

  • Регистрируемся по ссылке
  • Пополняем баланс
  • Берем в аренду сервис (об этом поподробнее)

Нажимаем на вкладку PRODUCTS далее жмем на DEPLOY SERVER

Далее нам нужно выбрать характеристики сервера

Смотрим в руководство APTOS DEVELOPER NETWORK тут

Видим что основные характеристики:

  • CPU: 4 cores (Intel Xeon Skylake or newer).
  • Memory: 8GiB RAM.
  • 300GB of disk space

Подбираем подходящий нам сервер (постараемся сэкономить, думаю сильно не отразится на производительности):

Choose Server

CPU & Storage Technology

Server Location

Тут выбираем любой кроме USA, на цену это не влияет (я выбрал Южную Корею)

Server Image

Операционную систему выбираем UBUNTU 20.04 LTS x64

Server Size

Рекомендуемые параметры

  • CPU: 4 cores (Intel Xeon Skylake or newer).
  • Memory: 8GiB RAM.
  • 300GB of disk space

В руководстве пишут

"Мы рекомендуем узлам иметь не менее 300 ГБ дискового пространства, чтобы обеспечить достаточное пространство для хранения данных для нагрузочного тестирования. У вас есть возможность начать с меньшего размера и настроить его в соответствии с требованиями. Вы будете нести ответственность за мониторинг использования диска вашего узла и соответствующую настройку для обеспечения бесперебойной работы узла."

Поэтому я выберу что то среднее:

Add Auto Backups

Это резервное восстановление, я его отключу для экономии, но если вас это волнует можете оставить

Additional Features

Тут оставляем одну галочку Enable IPv6

Все готово жмем Deploy Now

Ждем когда настроится сервер

ШАГ 2

Пока настраивается сервер нам нужна программа чтобы подключится к нему

я пользуюсь WinSCP, скачать можете тут.

Ни чего сложно там нет обычная установка.

После установки открываем клиент и видим такое окно:

Создаем новую сессию, два клика сюда

И видим такое окно:

Возвращаемся VULTR и смотрим данные сервера

Копируем и вставляем данные в следующей последовательности

IP Address - Host name

Username - User name

Password - Password

Жмем LOGIN

Жмем YES

После входа, жмем сюда для открытии командной строки

Вводим пароль из данных сервера который вводили при входе

ВНИМАНИЕ!!! Вставить тут работает немного по-другому ни как мы привыкли CTRC+V, вставляется тут правой кнопкой мыши. (после того как вставите пароль значения вы не увидите, поэтому ваши действия скопировали пароль-вставили правой кнопкой мыши-нажали ENTER)

Если все сделали правильно все поздравляю на сервер вы вошли)

ШАГ 3

Устанавливаем валидатора и fullnode

Подготовим среду для установки валидатора и фуллноды

  • открываем порты
iptables -I INPUT -p tcp --dport 6180 -j ACCEPT
iptables -I INPUT -p tcp --dport 6182 -j ACCEPT
iptables -I INPUT -p tcp --dport 9101 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

  • обновим пакеты и установим зависимости:
sudo apt update && sudo apt upgrade && \
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common wget unzip

  • устанавливаем docker
sudo apt-get install ca-certificates curl gnupg lsb-release -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
  • устанавливаем docker compose
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
sudo chown $USER /var/run/docker.sock
  • Проверяем версию docker и docker-compose
docker version && docker compose version

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

  • Зададим свои переменные для установки:

Имя можете заменить на свое, в моем случае GHIDORAH

export APTOS_NAME=GHIDORAH

export APTOS_DIR=$HOME/.aptos-testnet
export APTOS_VERSION=0.1.1
export APTOS_NAME=GHIDORAH

Установим aptos-cli:

cd $HOME && mkdir $APTOS_DIR && cd $APTOS_DIR &&\
wget https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v0.1.1/aptos-cli-$APTOS_VERSION-Ubuntu-x86_64.zip && \
unzip aptos-cli-$APTOS_VERSION-Ubuntu-x86_64.zip && \
rm aptos-cli-$APTOS_VERSION-Ubuntu-x86_64.zip && \
sudo mv aptos /usr/local/bin && \
aptos --version

На выходе должна быть версия aptos 0.1.1

Генерируем ключи для тестнета

cd $APTOS_DIR &&\
aptos genesis generate-keys --output-dir $APTOS_DIR

В результате в папке будут три файла validator-identity.yaml, private-keys.yaml и validator-full-node-identity.yaml

Устанавливаем конфигурацию валидатора

  • Загружаем 3 необходимых файла:
wget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose.yaml && \
wget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/validator.yaml && \
wget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/fullnode.yaml

  • Устанавливаем имя и хост валидатора и ноды:
aptos genesis set-validator-configuration \
 --keys-dir $APTOS_DIR --local-repository-dir $APTOS_DIR \
 --username $APTOS_NAME \
 --validator-host $(curl -s ifconfig.me):6180 \
 --full-node-host $(curl -s ifconfig.me):6182
  • Получим на выходе файл с именем вашей ноды.yaml. Проверим всё ли там верно:
cat $APTOS_NAME.yaml

В данном случае валидатор будет работать на порту 6180, а нода на порту 6182

  • Далее нужно создать файл layout.yaml при помощи например nano:
nano layout.yaml
  • Всставляем следующий значения:

root_key можно оставить как в примере, это пока не важно.

Имя GHIDORAH нужно заменить на имя которое вы указали ранее

---
root_key: "0x5243ca72b0766d9e9cbf2debf6153443b01a1e0e6d086c7ea206eaf6f8043956"
users:
 - GHIDORAH
chain_id: 23

  1. Сохраням файл ctrl+O
  2. Жмем ENTER
  3. выходим ctrl+X

Загружаем фрэймворк:

wget https://github.com/aptos-labs/aptos-core/releases/download/aptos-framework-v0.1.0/framework.zip && \
unzip framework.zip && \
rm framework.zip

Компилируем генезис:

aptos genesis generate-genesis --local-repository-dir $APTOS_DIR --output-dir $APTOS_DIR

На выходе получим два файла genesis.blob и waypoint.txt

  • Откроем порты в фаерволе:
sudo ufw allow 8080 && \
sudo ufw allow 9101 && \
sudo ufw allow 6180 && \
sudo ufw allow 6182

Запускаем ноду

docker compose up -d

Итого у вас в папке должны быть следующие файлы:

  • validator.yaml конфиг валидатора
  • fullnode.yaml конфиг ноды
  • docker-compose.yaml docker compose файл для запуска ноды и валидатора
  • private-keys.yaml ключи для аккаунта, консенсуса, нетворкинга
  • validator-identity.yaml ключи для id валидатора
  • validator-full-node-identity.yaml ключи для id ноды
  • <username>.yaml полная информация по ноде/валидатору
  • layout.yaml лэйаут файл
  • framework папка с фрэймворком
  • waypoint.txt waypoint файл
  • genesis.blob genesis файл

Несколько команд для удобства:

  • Проверяем логи ноды:
docker logs -f --tail 100 aptos-testnet-fullnode-1
  • Логи валидатора:
docker logs -f --tail 100 aptos-testnet-validator-1
  • Проверка статуса ноды
curl 127.0.0.1:9101/metrics 2> /dev/null | grep aptos_state_sync_version | grep type
  • Рестарт контенера
cd .aptos-testnet
docker compose restart
  • Просмотр информации о ноде
cd .aptos-testnet
cat $APTOS_NAME.yaml

Тут удобно проверять статус ноды:

Здесь https://aptos-node.info/ очень удобно смотреть статус своего узла, пока SYNC должен быть розовым.

Копируем IP сервера тут:

Вставляем тут:

Если все сделали првильно все должно выглядеть вот так:

При проверке статуса ноды командой

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

Первое значение всегда отстает или равно 0, не переживайте это нормально.

Для мониторинга можно пользоваться Телеграм ботом от @NodesGuru

https://t.me/NodesGuru_bot

ШАГ 4

Регистрируемся на сайте

Переходим на сайт https://community.aptoslabs.com/

Выбираем Signup for testnet, и через что будем регистрироваться: дискорд или гитхаб аккаунт.

Далее вводим свою почту и переходим по ссылке пришедшей на почту.

Затем нажимаем Register и заполняем свои данные из файла <Имя ноды>.yaml

<Имя ноды>.yaml фаил находится в папке aptos-testnet, если не можете найти посмотрите наше видео.

Нажимаем Validate Node и проходим KYC

Если всё успешно, то остаётся ждать 23 мая для подтверждения регистрации.

Всем удачи и спасибо за внимание!