Aptos Гайд для Incentivized Тестнета
May 15, 2022
Aptos самый безопасный и масштабируемый Layer 1 блокчейн
- Официальный Гайд
- Регистрация На Тестнет
- Проверить Статус Ноды: https://node.aptos.zvalid.com/
- Мой discord: drawrowfly#4024
Последнее Обновление от 15 Мая 2022
-Содержание Гайда
-Пару Заметок:
- Это не официальный гайд
- Однострочный запуск ноды
- Минимальные требования: CPU: Intel Xeon Skylake или новвее, 4 ядра, 8GB RAM
- Я тестировал данный гайд на 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
Содержание Гайда
- Заметки
- Установка/Обновление на Linux
- Обновить список пиров
- Посмотреть идентификатор вашей ноды
- Проверка синхронизации ноды
Пару Заметок:
- Это не официальный гайд
- Однострочный запуск ноды сразу генерирует вам статичный уникальный идентификатор для ноды
- Aptos находится в стадии devnet - запускаем ноду без наград(пока еще)
- Инсентивайзд тестнет начнется в 2022 Q2
- Мэйннет в 2022 Q3
- Минимальные требования для продакшн: CPU: Intel Xeon Skylake или новвее, 4 ядра, 8GB RAM
- Минимальные требования для тестов и разработок: CPU: 2 ядра, 4GB RAM
- Я тестировал данный гайд на 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 минут
- Устанавливаем 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ю...
- Устанавливаем 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
- Создаем папку 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
- Создаем папку identity где будем хранить уникальный ID ноды
mkdir $HOME/aptos/identity
- Генерируем уникальный 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
- Устанавливаем уникальный 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
- Запускаем ноду
Если нода не запущена тогда
docker compose up -d
Если нода уже запущена тогда
docker compose restart
- Проверяем статус синхронизации
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
Обновление Вариант 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
Удачи