APTOS
August 31, 2022

APTOS AIT3 (FullNode)

FullNode ставиться на отдельный сервер от ноды валидатора!!! Подразумевается, что нода валидатора уже запущена

Новая установка

# обновляем репозитории
apt update && apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

Устанавливаем docker + docker-compose

# https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-ru
apt update && \
apt install apt-transport-https ca-certificates curl software-properties-common -y && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" && \
apt update && \
apt-cache policy docker-ce && \
sudo apt install docker-ce -y && \
docker --version
# ручная установка docker-compose https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04-ru
# проверяем версию https://github.com/docker/compose/releases и подставляем в команду установки
curl -L "https://github.com/docker/compose/releases/download/v2.10.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

# проверить версию
docker-compose --version

Создаем каталог и переходим в него

WORKSPACE=aptos-fullnode
mkdir ~/$WORKSPACE 
cd ~/$WORKSPACE

Скачиваем необходимые файлы

wget -qO genesis.blob "https://github.com/aptos-labs/aptos-ait3/raw/main/genesis.blob"
wget -qO waypoint.txt "https://raw.githubusercontent.com/aptos-labs/aptos-ait3/main/waypoint.txt"
wget -qO docker-compose.yaml "https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose-fullnode.yaml"
wget -qO fullnode.yaml "https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/fullnode.yaml"

Меняем тег образа в docker-compose.yaml

# nano $HOME/$WORKSPACE/docker-compose.yaml
image: "aptoslabs/validator:testnet_18b8c628ea9424fe3cb03e2f65172ecef7ca678c"

ОПЦИОНАЛЬНО - ИЗМЕНИТЬ РАЗМЕР ЗАНИМАЕМОГО МЕСТА ЛОГ ФАЙЛА

# для ограничения размера лога, в docker-compose.yaml прописать
# nano $HOME/$WORKSPACE/docker-compose.yaml

    logging:
      options:
        max-file: "3"
        max-size: "100m"

В файле fullnode.yaml вписываем ip адрес Вашего валидатора

nano $HOME/$WORKSPACE/fullnode.yaml

Копируем с сервера ноды validator файл $HOME/$WORKSPACE/keys/validator-full-node-identity.yaml в аналогичную папку на сервере fullnode

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

docker-compose up -d

Проверяем логи

docker-compose logs -f --tail 100
# проверяем синхронизацию
curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_state_sync_version{.*\"synced\"}" | awk '{print $2}'

# проверяем высоту сети
curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_state_sync_version"

# проверяем пиры. Должно быть больше 0
curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_connections{direction=\"outbound\""

Теперь на сервере валидатора (не на этом сервере) обновляем информацию о Вашей фулноде

# full-node-network-public-key берем из keys/public-keys.yaml
aptos node update-validator-network-addresses \
--pool-address <owner-address> \
--operator-config-file ~/$WORKSPACE/$NODENAME/operator.yaml \
--profile ait3-operator \
--full-node-host <fullnode-host:6182> \
--full-node-network-public-key <fullnode-public-key>

Проверка FullNode

После того, как fullnode синхронизировалась можно проверить ее с помощью nhc чекера aptos, заменив <your_ip> на ip fullnode и заменив порт 80 на свой, если меняли

curl 'https://node-checker.prod.gcp.aptosdev.com/check_node?node_url=http://<your_ip>&api_port=80&baseline_configuration_name=ait3_vfn' | jq

В конце проверки должны увидеть "summary_explanation":"100: Awesome!"

Всем удачи!

cd ~/$WORKSPACE
# рестарт ноды
docker-compose restart
# остановить ноду
docker-compose stop


# Остановить ноду и удалить тома данных
docker-compose down -v

# также можем удалить .aptos
cd $HOME
rm -rf aptos-fullnode