POLKADOT
October 25, 2023

Avail

🪓 Telegram канал UTSA 🪓 Telegram чат UTSA

Web Discord Github Docs Staking Telemetry

Details

Avail это базовый уровень для современных blockchains. С Avail никогда еще не было так просто создавать свои собственные blockchains

Используемые порты

  • 0.0.0.0:30333 - P2P
  • 127.0.0.1:9933 - RPC
  • 127.0.0.1:9615 - Prometheus

Подготовка сервера

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

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

Установка Ubuntu 22.04

Скачиваем бинарный файл

mkdir -p $HOME/.avail_mainnet && cd $HOME/.avail_mainnet
chmod 755 $HOME/.avail_mainnet
wget https://github.com/availproject/avail/releases/download/v2.2.5.0/x86_64-ubuntu-2204-avail-node.tar.gz
tar -xvf x86_64-ubuntu-2204-avail-node.tar.gz
mv avail-node /usr/bin/avail
rm -rf x86_64-ubuntu-2204-avail-node.tar.gz

avail --version
# avail 2.2.0-a6600ea38c9

Создаем сервисный файл

yourname=<name>
tee /etc/systemd/system/avail-mainnet.service > /dev/null << EOF
[Unit]
Description=Avail mainnet
After=network-online.target
StartLimitIntervalSec=0
[Service]
User=$USER
Restart=always
RestartSec=3
LimitNOFILE=65535
ExecStart=/usr/bin/avail \
  --base-path $HOME/.avail_mainnet/data/ \
  --chain mainnet \
  --port 30933 \
  --rpc-port 9993 \
  --prometheus-port 9695 \
  --validator \
  --name '$yourname'
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable avail-mainnet
systemctl restart avail-mainnet && journalctl -u avail-mainnet -f -o cat

Теперь наша нода начала синхронизироваться. Мы можем проверить нашу ноду в телеметрии

Важно - телеметрия показывает только 1000 нод. Поэтому Вы можете не видеть свою ноду в телеметрии при наличии больше 1000 нод

Snapshot

every 24 hours | pruning: archive

🌐 https://share.utsa.tech/avail_mainnet

# устанавливаем lz4
apt install lz4
# останавливаем ноду
systemctl stop avail-mainnet

# удаляем базу данных. При необходимости измените путь на свой
rm -r $HOME/.avail_mainnet/data/chains/avail_da_mainnet/paritydb/

# скачиваем snapshot. При необходимости измените путь на свой
curl -o - -L https://share.utsa.tech/avail_mainnet/avail-archive.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.avail_mainnet/data/chains/avail_da_mainnet/

# перезагружаем ноду
systemctl restart avail-mainnet && journalctl -u avail-mainnet -f -o cat

Настройка валидатора

ВАЖНО - дальнейшие действия следует делать только в том случае, если команда выбрала Вас в качестве валидатора в будущей тестовой сети. Также следует дождаться самой будущей сети для создания валидатора

После того как нода синхронизировалась вытаскиваем ключ из нашей ноды введя команду

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9993
Если получили подобный результат, то все замечательно {"jsonrpc":"2.0","result":"0xa0very0long0hex0string","id":1} - копируем ключ (выделено жирным) он нам понадобится в ближайшее время
  • Переходим на сайт и для начала создаем кошелек stash
  • Для stash настраиваем Set on-chain Identity для идентификации
  • Создаем валидатора. Для этого выбираем Network - Staking - Accounts - Validator

Далее вставляем наш ключ полученный с ноды валидатора, выбираем процент комиссионного вознаграждения

Как только освободится место среди валидаторов, вы появитесь во вкладке Staking Overview, а пока можете себя найти на вкладке Waiting

Полезные команды

Информация

# просмотреть логи
journalctl -u avail-mainnet -f -o cat

# 

Удалить ноду

systemctl stop avail-mainnet
systemctl disable avail-mainnet
rm /etc/systemd/system/avail-mainnet.service
systemctl daemon-reload
cd
rm -r .avail_mainnet

Поддержим природу вместе: 0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq