Тестнеты
January 26

Установка ноды Namada

Namada запускает награждаемый тестнет в ролевом стиле, который будет оцениваться по системе баллов. В общей сложности 10 469 пилотов и 129 238 членов экипажа будут соревноваться друг с другом с самого начала экспедиции в гонке по добыче полезных ископаемых на астероидах.

Задания по тестнету будут опубликованы на этой странице:

https://namada.net/shielded-expedition

Некоторые ответы на популярные вопросы можно посмотреть здесь:

https://hackmd.io/ljtttUyfQOyjgMszkgTKrQ

Сайт проекта | Документация проекта | Discord | GitHub | Explorer
Telegram канал сообщества Starnodes

Фазы

30 января — целевая дата запуска награждаемой сети.

Награды

Награждаются топ 100 валидаторов и топ 100 юзеров экипажа, подробнее:

https://namada.net/blog/namada-shielded-expedition-wanted-asteroids-roids-point-system-and-rankings

Системные требования

4 CPU 8 RAM 500 SSD

Используемые порты: 26656,26657,6060,9090,9091 tcp

26656 - P2P порт должен быть открыт для всех.
26657 - RPC порт открывается опционально.

Аренда сервера:

1) Хостинг Hetzner - неплохой хостинг для аренды VPS по соотношению цена-качество, подойдет для большинства нод.

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

Установим необходимое программное обеспечение:

sudo apt install -y curl git build-essential jq lz4 unzip tar mc htop ncdu screen

Опционально установите fail2ban:

sudo apt install fail2ban -y

Установка GO:

cd $HOME && \
ver="1.20.13" && \
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" && \
sudo rm -rf /usr/local/go && \
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" && \
rm "go$ver.linux-amd64.tar.gz" && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
go version

Установка Rust:

curl https://sh.rustup.rs -sSf | sh -s -- -y && \
source "$HOME/.cargo/env" && \
echo -e "\n$(cargo --version).\n"

Установка nodejs 18:

curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - && \
sudo apt-get install nodejs -y && \
echo -e "\nnodejs > $(node --version).\nnpm  >>> v$(npm --version).\n"

Установка Protocol Buffers:

cd && mkdir protoc && cd protoc
wget https://github.com/protocolbuffers/protobuf/releases/download/v25.2/protoc-25.2-linux-x86_64.zip
unzip protoc-25.2-linux-x86_64.zip
cp $HOME/protoc/bin/protoc /usr/local/bin/
cp -r $HOME/protoc/include/* /usr/local/include/
cd && rm -rf $HOME/protoc

Установка CometBFT:

cd $HOME
rm -rf cometbft
git clone https://github.com/cometbft/cometbft.git
cd cometbft
git checkout v0.37.2
make build
cp $HOME/cometbft/build/cometbft /usr/local/bin/
cometbft version

Начало установки ноды:

Установка переменных:

ALIAS="your_validator_alias"
WALLET="your_wallet"
CHAIN="shielded-expedition.88f17d1d14"

Экспорт переменных:

echo "export MONIKER=$ALIAS" >> $HOME/.bash_profile && \
echo "export WALLET=$WALLET" >> $HOME/.bash_profile && \
echo "export CHAIN=$CHAIN" >> $HOME/.bash_profile && \
source $HOME/.bash_profile

Установка бинарных файлов:

cd $HOME
rm -rf namada
mkdir namada && cd namada
wget https://github.com/anoma/namada/releases/download/v0.31.2/namada-v0.31.2-Linux-x86_64.tar.gz
tar -xvf namada-v0.31.2-Linux-x86_64.tar.gz
rm namada-v0.31.2-Linux-x86_64.tar.gz
cd namada-v0.31.2-Linux-x86_64
cp namada namadan namadac namadaw /usr/local/bin/
namada --version

Пример открытия необходимых портов для стандартного фаервола Ubuntu:

sudo ufw allow 26656,26657,26658/tcp

Инициализация ноды:

mkdir -p $HOME/.local/share/namada
namada client utils join-network --chain-id $CHAIN

Результат должен быть таким:

Добавим пиры:

PEERS="tcp://[email protected]:26657,tcp://[email protected]:26656,[email protected]:26656,tcp://[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:30600,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' ~/.local/share/namada/shielded-expedition.88f17d1d14/config.toml

А теперь сиды:

SEEDS="20e1000e88125698264454a884812746c2eb4807@testnet-seeds.lavenderfive.com:20056,tcp://[email protected]:26656"
sed -i 's|^seeds *=.*|seeds = "'$SEEDS'"|' ~/.local/share/namada/shielded-expedition.88f17d1d14/config.toml

Теперь нужно изменить значения consensus timeouts на более быстрые:

mcedit ~/.local/share/namada/shielded-expedition.88f17d1d14/config.toml

Приводим к этому виду:

timeout_propose = "300ms"
timeout_propose_delta = "0ms"
timeout_prevote = "100ms"
timeout_prevote_delta = "0ms"
timeout_precommit = "100ms"
timeout_precommit_delta = "0ms"
timeout_commit = "1000ms"

Также можно стартовать со снапшота и быстро загрузить базу данных (спасибо itrocket):

пока_не_актуально

А теперь распакуем и заменим старые файлы:

пока_не_актуально

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

sudo tee /etc/systemd/system/namadad.service > /dev/null <<EOF
[Unit]
Description=namada
After=network-online.target

[Service]
User=$USER
WorkingDirectory=$HOME/.local/share/namada
Environment=TM_LOG_LEVEL=p2p:none,pex:error
Environment=NAMADA_CMT_STDOUT=true
Environment=NAMADA_LOG=info
ExecStart=$(which namada) node ledger run
StandardOutput=syslog
StandardError=syslog
Restart=always
RestartSec=10
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Запускаем службу и добавляем в автозапуск:

sudo systemctl daemon-reload
sudo systemctl enable namadad
sudo systemctl restart namadad && sudo journalctl -u namadad -f

Проверить статус синхронизации (false - значит синхронизировалась):

curl -s localhost:26657/status | jq .result.sync_info.catching_up

Добавить кошелек:

namada wallet address gen --alias $WALLET 

Восстановить по мнемонике:

namada wallet derive --alias $WALLET --hd-path default

Посмотреть tpknam адрес кошелька:

namada wallet find --alias $WALLET

Можно удалить кошелек, если ошиблись:

namadaw remove --alias $WALLET --do-it

Проверить баланс на кошельке:

namada client balance --owner $WALLET

Создать валидатора:

namada client init-validator \
 --alias $ALIAS \
 --account-keys $WALLET \
 --signing-keys $WALLET \
 --commission-rate 0.1 \
 --max-commission-rate-change 0.1 \
 --email <EMAIL_ADDRESS> \
 --website <WEBSITE> \
 --discord-handle <DISCORD> \
 --memo <tpknam_ADDRESS>

Спустя 2 эпохи перезапустите ноду и проверьте статус валидатора:

namadac validator-state --validator $ALIAS

Посмотреть адрес валидатора:

namadaw list | grep -A 1 ""$ALIAS"" | grep "Established"

Делегируйте токены вашему валидатору:

namada client bond \
 --source $WALLET  --validator $ALIAS  --amount 1000 --memo <tpknam_ADDRESS>

Бэкап: (обязательно)

Создаем каталог для бэкапа и копируем приватный ключ:

mkdir -p ~/backup/namada
cp ~/.local/share/namada/shielded-expedition.88f17d1d14/cometbft/config/priv_validator_key.json ~/backup/namada

Далее загрузите файл на свой ПК из папки $HOME/backup/namada

Удалить ноду:

sudo systemctl stop namadad
sudo systemctl disable namadad
sudo rm -rf /etc/systemd/system/namadad.service
sudo systemctl daemon-reload
sudo rm $(which namada)
sudo rm -rf $HOME/.local/share/namada/

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

Делегировать токены:

namada client bond \
 --source $WALLET  --validator $ALIAS  --amount 1000 --memo --memo <tpknam_ADDRESS>

Проверить делегацию:

namada client bonds --owner $ALIAS

@starnodesxyz - наш канал в Telegram с новостями и гайдами по тестнетам.
@starnodes_chat - канал, куда можно обратиться за помощью.