catch { snail }

Aptos Гайд для Incentivized Тестнета

May 15, 2022

Aptos самый безопасный и масштабируемый Layer 1 блокчейн

Последнее Обновление от 15 Мая 2022

-Содержание Гайда

-Пару Заметок:

  1. Это не официальный гайд
  2. Однострочный запуск ноды
  3. Минимальные требования: CPU: Intel Xeon Skylake или новвее, 4 ядра, 8GB RAM
  4. Я тестировал данный гайд на Ubuntu 20.04.4 LTS

-Установка на Linux

Вариант 1 (Docker)

Установка Валидаторсокй/Фулл ноды(Docker) через одну строку. Я устанавливал на Ubuntu 20.04.4 LTS.

Установка может занять от 2-5 минут

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

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

==============VALIDATOR/FULL NODE DETAILS==========

VALIDATOR CONSENSUS KEY: 
 0x087f86764c8a077933061e81346e4740fc0039cceb613b9a9b524c91e0fdc3f9 
 
VALIDATOR ACCOUNT KEY: 
 0x3267aa313e6b47e87ee9b3834e2c0e928892d5a5811d6a4b420d0fe775ab371e 
 
VALIDATOR NETWORK KEY: 
 0xa0a52ff76c999888117c323a2713ca2c4595db25d62ae8f2c543df6ece8b0267 
 
FULLNODE NETWORK KEY: 
 0x184713803d6ac5405c048ea75a9c841a04c93ea6d28d393c6d82879a64d81d09 
 
==================================================

Посмотреть ключи для регистрации в тестнете

cat $HOME/.aptos/НАЗВАНИЕ_ВАШЕЙ_НОДЫ.yaml

Проверяем статус синхронизации фул ноды

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

Проверяем статус синхронизации валидаторской ноды

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

Посмотреть логи фул ноды

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

Посмотреть логи валидаторской ноды

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

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

cd ~/.aptos && docker compose stop

Перезапустить ноду

cd ~/.aptos && docker compose restart

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

cd ~/.aptos && docker compose up -d

Удалить Ноду Вариант 1

cd $HOME/.aptos
docker compose down -v
rm -rf $HOME/.aptos


Старый Гайд: FullNode

Содержание Гайда

Пару Заметок:

  1. Это не официальный гайд
  2. Однострочный запуск ноды сразу генерирует вам статичный уникальный идентификатор для ноды
  3. Aptos находится в стадии devnet - запускаем ноду без наград(пока еще)
  4. Инсентивайзд тестнет начнется в 2022 Q2
  5. Мэйннет в 2022 Q3
  6. Минимальные требования для продакшн: CPU: Intel Xeon Skylake или новвее, 4 ядра, 8GB RAM
  7. Минимальные требования для тестов и разработок: CPU: 2 ядра, 4GB RAM
  8. Я тестировал данный гайд на Ubuntu 20.04.4 LTS

-Обновить Список Пиров

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

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

-Посмотреть идентификатор вашей ноды

Если вы устанавливали ноду по нашему гайду и без понятия как посмотреть peer_id, public_key и private_key, то вы можете воспользоваться данной командой и если вдруг вы захотели помочь сообществу и поделиться своими peer данными то скрипт покажит их вам.

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

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


-Установка на Linux

Вариант 1 (systemctl)

Установка/Обновление ноды(systemctl) + генерация статичного идентификатора через одну строку как сервис systemctl. Я устанавливал на Ubuntu 20.04.4 LTS.

Установка/Обновление может занять от 10 минут до нескольки часов взависимости от вашего железа

Еще раз для Обновление вы можете использовать ту же самую строку, все ваши ключи остануться прежними

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

Данные с идентификатором ноды и приватным ключем будут сохранены у вас на HDD

Посмотреть приватный ключ

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

Посмотреть данные с публичным идентификаторам

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

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

journalctl -u aptos-fullnode -f

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

systemctl stop aptos-fullnode

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

systemctl start aptos-fullnode

Удалить Ноду Вариант 1

systemctl stop aptos-fullnode
systemctl disable aptos-fullnode
rm /etc/systemd/system/aptos-fullnode.service
rm -rf $HOME/aptos
rm -rf /opt/aptos


Вариант 2 (Docker)

Установка/Обновление ноды(Docker) + генерация статичного идентификатора через одну строку. Я устанавливал на Ubuntu 20.04.4 LTS.

Установка/Обновление может занять от 5-10 минут

Еще раз для Обновление вы можете использовать ту же самую строку, все ваши ключи остануться прежними

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

Данные с идентификатором ноды и приватным ключем будут сохранены у вас на HDD

Посмотреть приватный ключ

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

Посмотреть данные с публичным идентификаторам

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

Проверяем статус синхронизации

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

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

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

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

cd $HOME/aptos
docker compose stop

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

cd $HOME/aptos
docker compose start

Удалить Ноду Вариант 2

cd $HOME/aptos
docker compose down -v
rm -rf $HOME/aptos


Вариант 3

Почувствуй себя linux guru и установи все сам. Я устанавливал на Ubuntu 20.04.4 LTS.

Установка может занять от 10-30 минут

  1. Устанавливаем docker если он не установлен
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release wget jq sed -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 update
sudo apt install docker-ce docker-ce-cli containerd.io -y

Проверяем

docker version

## Если в терминале не будет ошибки то все ок
Client: Docker Engine - Communityю...
  1. Устанавливаем 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 compose version

## Если в терминале не будет ошибки то все ок
Docker Compose version v2.2.3
  1. Создаем папку aptos в которую скачаем config файлы
mkdir $HOME/aptos
cd $HOME/aptos
wget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/public_full_node/docker-compose.yaml
wget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/public_full_node/public_full_node.yaml
wget https://devnet.aptoslabs.com/genesis.blob
wget https://devnet.aptoslabs.com/waypoint.txt
  1. Создаем папку identity где будем хранить уникальный ID ноды
mkdir $HOME/aptos/identity
  1. Генерируем уникальный ID для ноды
docker run --rm --name aptos_tools -d -i aptoslab/tools:devnet
docker exec -it aptos_tools aptos-operational-tool generate-key --encoding hex --key-type x25519 --key-file $HOME/private-key.txt
docker exec -it aptos_tools cat $HOME/private-key.txt > $HOME/aptos/identity/private-key.txt
docker exec -it aptos_tools aptos-operational-tool extract-peer-from-file --encoding hex --key-file $HOME/private-key.txt --output-file $HOME/peer-info.yaml &> /dev/null
docker exec -it aptos_tools cat $HOME/peer-info.yaml > $HOME/aptos/identity/peer-info.yaml
PEER_ID=$(sed -n 5p $HOME/aptos/identity/peer-info.yaml | sed 's/    - \(.*\)/\1/')
PRIVATE_KEY=$(cat $HOME/aptos/identity/private-key.txt)
docker stop aptos_tools
  1. Устанавливаем уникальный ID для ноды
cd $HOME/aptos
sed -i '/      discovery_method: "onchain"$/a\
    identity:\
        type: "from_config"\
        key: "'$PRIVATE_KEY'"\
        peer_id: "'$PEER_ID'"' public_full_node.yaml

Данные с идентификатором ноды и приватным ключем будут сохранены у вас на HDD

Посмотреть приватный ключ

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

Посмотреть данные с публичным идентификаторам

cat $HOME/aptos/identity/id.json
  1. Запускаем ноду

Если нода не запущена тогда

docker compose up -d

Если нода уже запущена тогда

docker compose restart
  1. Проверяем статус синхронизации
curl 127.0.0.1:9101/metrics 2> /dev/null | grep aptos_state_sync_version | grep type

Должно выглядеть примерно так

website url
  1. При большом желании можно посмотреть логи
docker logs -f aptos-fullnode-1 --tail 5000

Обновление Вариант 3

В случае если вы устанавливали ноду по гайду из Варианта 3 и вышло обновление ноды тогда вам сюда.

Идем в папку с конфигами для ноды

cd $HOME/aptos

Останавливаем Docker

sudo docker compose down -v

Проверяем если есть обновленная версия ноды Docker image

sudo docker pull aptoslab/validator:devnet

Проверяем если есть обновленная версия aptos-tools Docker image

sudo docker pull aptoslab/tools:devnet

Запускаем aptos-tools для обновления peer идентификатора

sudo docker run --rm --name aptos_tools -d -i aptoslab/tools:devnet

Обновляем идентификатор

sudo docker cp $HOME/aptos/identity/private-key.txt aptos_tools:/root
sudo docker exec -it aptos_tools aptos-operational-tool extract-peer-from-file --encoding hex --key-file $HOME/private-key.txt --output-file $HOME/peer-info.yaml
sudo docker exec -it aptos_tools cat $HOME/peer-info.yaml > $HOME/aptos/identity/peer-info.yaml

Останавливаем aptos tools Docker

sudo docker stop aptos_tools

Достаем peer идентификатор

PEER_ID=$(sed -n 2p $HOME/aptos/identity/peer-info.yaml | sed 's/..$//')

Устанавливаем новый peer инедтификатор

sed -i -e "s/peer_id:.*/peer_id: \"$PEER_ID\"/" $HOME/aptos/public_full_node.yaml

Удаляем старый файл genesis.blob

rm $HOME/aptos/genesis.blob

Скачиваем новый файл genesis.blob

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

Удаляем старый файл waypoint.txt

rm $HOME/aptos/waypoint.txt

Скачиваем новый файл waypoint.txt

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

Устанавливаем новое значение из waypoint.txt в файле с конфигурациями ноды public_full_node.yaml

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

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

sudo docker compose up -d

Удалить Ноду Вариант 3

cd $HOME/aptos
docker compose down -v
rm -rf $HOME/aptos


Два способа проверки синхронизации ноды:

1.Проверяем синхронизацию через терминал:

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

Удачи


My personal notes.
I write about code.

© 2022, Built with Gatsby and a tiny Snail