February 15, 2023

Andromeda Protocol Testnet

Discord | Twitter | Github | Explorer

Сервер


Мінімальні рекомендовані апаратні вимоги для запуску валідатора:

  • 4 ядра ЦП
  • 8 ГБ оперативної пам'яті
  • 150 ГБ SSD
  • Ubuntu 20.04

Нода

# підготовка сервера
sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y
# ставимо Go (однією командою)
ver="1.19" && \
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
# задаємо перемінні

#придумуємо назву ноди та міняємо замість <your_moniker>
ANDROMEDA_MONIKER=<your_node_name>
# зберігаємо перемінні в bash
echo 'export ANDROMEDA_MONIKER='$ANDROMEDA_MONIKER >> $HOME/.bash_profile
echo "export ANDROMEDA_CHAIN_ID=andromeda-testnet-1" >> $HOME/.bash_profile
echo "export ANDROMEDA_PORT=16" >> $HOME/.bash_profile
source $HOME/.bash_profile
# качаємо бінарні файли
cd $HOME
git clone https://github.com/andromedaprotocol/andromedad.git
cd andromedad
git checkout galileo-3-v1.1.0-beta1
make install

andromedad version --long
# version: galileo-3-v1.1.0-beta1
# commit: b3f8d880dfcdb3265d321e465b47b04071d9480f
# ініціалізовуємо ноду
andromedad init $ANDROMEDA_MONIKER --chain-id $ANDROMEDA_CHAIN_ID
# качаємо генезис
wget -O $HOME/.andromedad/config/genesis.json "https://raw.githubusercontent.com/obajay/nodes-Guides/main/AndromedaProtocol/genesis.json"

sha256sum $HOME/.andromedad/config/genesis.json
# звіряємо рядок нижче з тим що в терміналі
# 26cefef408b9cdc013e7427d5fb05bbd44a006d80b7e0db36aaf125edda9b4e6

Налаштовуємо порти

#config.toml 
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${ANDROMEDA_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${ANDROMEDA_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${ANDROMEDA_PORT}061\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${ANDROMEDA_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${ANDROMEDA_PORT}660\"%" $HOME/.andromedad/config/config.toml
 
# app.toml 
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${ANDROMEDA_PORT}90\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${ANDROMEDA_PORT}91\"%; s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:1${ANDROMEDA_PORT}7\"%" $HOME/.andromedad/config/app.toml
 
# client.toml 
sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:${ANDROMEDA_PORT}657\"%" $HOME/.andromedad/config/client.toml
 
external_address=$(wget -qO- eth0.me) 
sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:${ANDROMEDA_PORT}656\"/" $HOME/.andromedad/config/config.toml

Налаштовуємо конфіг

andromedad config chain-id $ANDROMEDA_CHAIN_ID
andromedad config keyring-backend test

# налаштовуємо мінімальну ціну за газ, додаємо сіди/піри
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0uandr\"/;" ~/.andromedad/config/app.toml
SEEDS=""
PEERS="9d058b4c4eb63122dfab2278d8be1bf6bf07f9ef@andromeda-testnet.nodejumper.io:26656,9d058b4c4eb63122dfab2278d8be1bf6bf07f9ef@andromeda-testnet.nodejumper.io:26656,e4d0c8cf6a3dbee8af43582bb14e6e1077028341@198.244.179.125:30170,f17030edb4e4ec7143c3e3bbbfaeee3dd1a619f2@194.34.232.224:56656,5e5186020063f7f8a3f3c6c23feca32830a18f33@65.109.174.30:56656,6006190d5a3a9686bbcce26abc79c7f3f868f43a@37.252.184.230:26656,aeccd559d0d6f8dfb4efcf311fbad3e80ae0e87f@217.160.26.225:26656,67b79549c8890782e3cf44e3fe4688e15ff37929@65.109.19.93:27412,50ca8e25cf1c5a83aa4c79bb1eabfe88b20eb367@65.108.199.120:61356,06d4ab2369406136c00a839efc30ea5df9acaf11@10.128.0.44:26656,43d667323445c8f4d450d5d5352f499fa04839a8@192.168.0.237:26656,29a9c5bfb54343d25c89d7119fade8b18201c503@192.168.101.79:26656,6006190d5a3a9686bbcce26abc79c7f3f868f43a@37.252.184.230:26656"
sed -i 's|^seeds *=.*|seeds = "'$SEEDS'"|; s|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.andromedad/config/config.toml
# Налаштовуємо прунінг
pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.andromedad/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.andromedad/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.andromedad/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.andromedad/config/app.toml

Снапшот

cd $HOME
apt install lz4
cp $HOME/.andromedad/data/priv_validator_state.json $HOME/.andromedad/priv_validator_state.json.backup
rm -rf $HOME/.andromedad/data
curl -o - -L http://andromedad.snapshot.stavr.tech:1021/andromedad/andromedad-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.andromedad --strip-components 2
curl -o - -L http://andromedad.wasm.stavr.tech:1002/wasm-andromedad.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.andromedad --strip-components 2
mv $HOME/.andromedad/priv_validator_state.json.backup $HOME/.andromedad/data/priv_validator_state.json
wget -O $HOME/.andromedad/config/addrbook.json "https://raw.githubusercontent.com/obajay/nodes-Guides/main/AndromedaProtocol/addrbook.json"
# cтворюємо сервісний файл (Одна команда)
sudo tee /etc/systemd/system/andromedad.service > /dev/null <<EOF
[Unit]
Description=andromedad
After=network-online.target

[Service]
User=$USER
ExecStart=$(which andromedad) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
# запускаємо ноду
sudo systemctl daemon-reload
sudo systemctl enable andromedad
sudo systemctl restart andromedad && sudo journalctl -u andromedad -f -o cat
# подивитись логи
sudo journalctl -u andromedad -f -o cat

# Вихід з логів через ctrl+c

Addrbook

wget -O $HOME/.andromedad/config/addrbook.json "https://raw.githubusercontent.com/obajay/nodes-Guides/main/AndromedaProtocol/addrbook.json"

systemctl restart andromedad && journalctl -u andromedad -f -o cat
# перевірити статус синхронізації
andromedad status 2>&1 | jq "{catching_up: .SyncInfo.catching_up}"

# "catching_up": false - означає що нода синхронізувалась (чекаємо false)
# створюємо/відновлюємо гаманець
andromedad keys add wallet
andromedad keys add wallet --recover
# зберігаємо адресу 
# Замініть <your_address> на адресу вашого гаманця
ANDROMEDA_ADDRESS=<your_address>
echo "export ANDROMEDA_ADDRESS=$ANDROMEDA_ADDRESS" >> $HOME/.bash_profile
source $HOME/.bash_profile
# перевіряємо баланс
andromedad q bank balances $ANDROMEDA_ADDRESS

Валідатор

andromedad tx staking create-validator \
--amount=1900000uandr \
--pubkey=$(andromedad tendermint show-validator) \
--moniker="назва ноди" \
--website="Посилання на свій сайт чи сторінку в інтернеті" \
--identity=<identity> \
--details="Кілька слів про себе" \
--chain-id=galileo-3 \
--commission-rate=0.1 \
--commission-max-rate=0.2 \
--commission-max-change-rate=0.05 \
--min-self-delegation=1 \
--fees=1000uandr \
--from=wallet \
-y
# записуємо valoper_address в bash 
# Замінюємо <your_valoper_address> на адресу валідатора, починається на nibivaloper...
ANDROMEDA_VALOPER=<your_valoper_address> 
echo "export ANDROMEDA_VALOPER=$ANDROMEDA_VALOPER" >> $HOME/.bash_profile 
source $HOME/.bash_profile
Зберігаємо priv_validator_key.json що знаходиться за адресою /root/.andromedad/config/