May 15, 2022

Aptos FullNode Testnet

#выйти из интерактивного режиме ctrl+c
#удаление старых файлов на диске

(Для vps, на которых уже был развернут Aptos в devnet)

cd /var/log/journal/
rm -rf *
cd 
rm -rf aptos*
rm -rf .rustup/ .aptos/
rm -rf .cargo/ .cache/ anaconda-ks.cfg 
rm -rf update_2205*
rm -rf /usr/local/bin/aptos-*
cd /opt
rm -rf aptos/ minima/


#проверка на zombie pids - Если ничего нету под aptos-node пропускаем этот шаг

sudo lsof -i -P -n | grep LISTEN


#если видим слева aptos-nodes она все еще запущена и нужно удалить перед переустановкой пример ниже
#aptos-nod 58362 root 9u IPv4 290432 0t0 TCP *:6191 (LISTEN)
#aptos-nod 58362 root 16u IPv4 291065 0t0 TCP *:9101 (LISTEN)
#aptos-nod 58362 root 19u IPv4 290433 0t0 TCP *:9102 (LISTEN)
#aptos-nod 58362 root 42u IPv4 289153 0t0 TCP 127.0.0.1:6666 (LISTEN)
#aptos-nod 58362 root 47u IPv4 289154 0t0 TCP 127.0.0.1:6186 (LISTEN)
#aptos-nod 58362 root 53u IPv4 289155 0t0 TCP 127.0.0.1:6180 (LISTEN)
#aptos-nod 58362 root 78u IPv4 291067 0t0 TCP 127.0.0.1:8080 (LISTEN)

#дальше запускаем команду чтобы найти номер pid на удаление

sudo lsof -i:6191

#COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
#aptos-nod 58362 root 9u IPv4 290432 0t0 TCP *:6191 (LISTEN)
#удаляем pid

kill -9 58362

Для установки Aptos FullNode на чистом vps начинаем установку с этого момента

#обновление системных утилит

apt-get update -y 
apt-get install ncdu curl cargo screen net-tools jq wget git openssl-dev librust-openssl-sys-dev make clang pkg-config -y

##### устанавливаем ноду по новому
#переходим в домашний каталог

cd 

#создаем директорию

mkdir aptos-source

#переходим в него

cd aptos-source

#клонируем репозиторий

git clone https://github.com/aptos-labs/aptos-core

#переходим в директорию для сборки

cd aptos-core

#запускаем скрипт сборки

bash scripts/dev_setup.sh

#задаем переменное окружение

source ~/.cargo/env

переходим на ветку с дополнительными параметрами для ФУЛ Нод

git checkout --track origin/devnet

#качаем конфиг файлы

wget https://devnet.aptoslabs.com/genesis.blob
wget https://devnet.aptoslabs.com/waypoint.txt

создаем файл в директории /root/aptos-source/aptos-core

public_full_node.yaml

#сохраняем это в файл

base:
    # Update this value to the location you want the node to store its database
    data_dir: "/opt/aptos/data"
    role: "full_node"
    waypoint:
        # Update this value to that which the blockchain publicly provides. Please regard the directions
        # below on how to safely manage your genesis_file_location with respect to the waypoint.
      from_file: "waypoint.txt"
execution:
    # Update this to the location to where the genesis.blob is stored, prefer fullpaths
    # Note, this must be paired with a waypoint. If you update your waypoint without a
    # corresponding genesis, the file location should be an empty path.
    genesis_file_location: "genesis.blob"
full_node_networks:
    - discovery_method: "onchain"
      # The network must have a listen address to specify protocols. This runs it locally to
      # prevent remote, incoming connections.
      listen_address: "/ip4/127.0.0.1/tcp/6180"
      network_id: "public"
      # Define the upstream peers to connect to
      seeds:
        bb14af025d226288a3488b4433cf5cb54d6a710365a2d95ac6ffbd9b9198a86a:
            addresses:
            - "/dns4/pfn0.node.devnet.aptoslabs.com/tcp/6182/ln-noise-ik/bb14af025d226288a3488b4433cf5cb54d6a710365a2d95ac6ffbd9b9198a86a/ln-handshake/0"
            role: "Upstream"
        7fe8523388084607cdf78ff40e3e717652173b436ae1809df4a5fcfc67f8fc61:
            addresses:
            - "/dns4/pfn1.node.devnet.aptoslabs.com/tcp/6182/ln-noise-ik/7fe8523388084607cdf78ff40e3e717652173b436ae1809df4a5fcfc67f8fc61/ln-handshake/0"
            role: "Upstream"
        f6b135a59591677afc98168791551a0a476222516fdc55869d2b649c614d965b:
            addresses:
            - "/dns4/pfn2.node.devnet.aptoslabs.com/tcp/6182/ln-noise-ik/f6b135a59591677afc98168791551a0a476222516fdc55869d2b649c614d965b/ln-handshake/0"
            role: "Upstream"
api:
    enabled: true
    address: 127.0.0.1:8080

#закрываем и запускаем среду в screen

screen -S public_full_node

#запускаем сборку

cargo run -p aptos-node --release -- -f ./public_full_node.yaml

#жмем ctrl+a d для выхода из screen сессии
#ждем пока сборка пройдет и проверяем состояние

curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_state_sync_version{.*\"synced\"}" | awk '{print $2}'

#здесь увидите значение актуальной синхронизированной ноды