Stake with Nodeist

Androma Testnet Services



  • ANDROMA
    androma.png



    Embark on a cosmic adventure in Andromaverse: Escape Alysia. Collect, breed, and battle with friendly creatures known as Ami as you explore the enchanting Alysian Islands. Uncover the secrets of this mystical land while training, evolving, unlocking, farming, customizing, trading, and crafting. Restore balance and reclaim the lands from the evil void that threatens their existence. Discover the hidden potential of each Ami and immerse yourself in a rich tapestry of mythology, magic, and mystery. Compete, cooperate, and forge connections with fellow players as you build a vibrant community within this awe-inspiring universe. The fate of the Ami and the destiny of Alysia rest in your hands.​

    Chain Explorer:

    Public Endpoints:
    Bash:
    # API ENDPOINT
    https://api-androma.nodeist.net
    
    # RPC ENDPOINT
    https://rpc-androma.nodeist.net
    
    # GRPC ENDPOINT
    https://grpc-androma.nodeist.net

    Peering:

    addrbook:

    Bash:
    curl -Ls https://ss.nodeist.net/t/androma/addrbook.json > $HOME/.androma/config/addrbook.json

    live-peers:
    Bash:
    peers="[email protected]:26656,[email protected]:26856,[email protected]:27786,[email protected]:21656,[email protected]:17656"
    sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.androma/config/config.toml



  • Manual Installation
    This section contains a list of commands to install the node in manual mode.

    Server Preparation
    Bash:
    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 tar clang bsdmainutils ncdu unzip libleveldb-dev -y

    Install GO
    Bash:
    ver="1.20.3"
    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

    Node Installation
    Replace Nodeist_Guide in the first line with your moniker name.
    Bash:
    NODE_MONIKER="Nodeist_Guide"
    
    cd || return
    git clone https://github.com/AndromaverseLabs/testnet androma
    cd androma
    git checkout v1
    make install
    
    andromad config chain-id androma-1
    andromad init "$NODE_MONIKER" --chain-id androma-1
    
    curl -s https://ss.nodeist.net/t/androma/genesis.json > $HOME/.androma/config/genesis.json
    curl -s https://ss.nodeist.net/t/androma/addrbook.json > $HOME/.androma/config/addrbook.json
    
    SEEDS=""
    PEERS=""
    sed -i 's|^seeds *=.*|seeds = "'$SEEDS'"|; s|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.androma/config/config.toml
    
    sed -i 's|^pruning *=.*|pruning = "custom"|g' $HOME/.androma/config/app.toml
    sed -i 's|^pruning-keep-recent  *=.*|pruning-keep-recent = "100"|g' $HOME/.androma/config/app.toml
    sed -i 's|^pruning-interval *=.*|pruning-interval = "10"|g' $HOME/.androma/config/app.toml
    sed -i 's|^snapshot-interval *=.*|snapshot-interval = 0|g' $HOME/.androma/config/app.toml
    
    sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.025uandr"|g' $HOME/.androma/config/app.toml
    sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.androma/config/config.toml
    
    sudo tee /etc/systemd/system/andromad.service > /dev/null << EOF
    [Unit]
    Description=Androma Node
    After=network-online.target
    [Service]
    User=$USER
    ExecStart=$(which andromad) start
    Restart=on-failure
    RestartSec=10
    LimitNOFILE=10000
    [Install]
    WantedBy=multi-user.target
    EOF
    
    andromad tendermint unsafe-reset-all --home $HOME/.androma --keep-addr-book
    
    curl -L https://ss.nodeist.net/t/androma/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.androma --strip-components 2
    
    
    sudo systemctl daemon-reload
    sudo systemctl enable andromad
    sudo systemctl start andromad
    
    sudo journalctl -fu andromad -o cat



  • HEIGHT SIZE TIMESTAMP DOWNLOAD


    Instructions
    Stop the service and reset the data

    Bash:
    sudo systemctl stop andromad
    cp $HOME/.androma/data/priv_validator_state.json $HOME/.androma/priv_validator_state.json.backup
    rm -rf $HOME/.androma/data

    Download latest snapshot
    Bash:
    curl -L https://ss.nodeist.net/t/androma/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.androma --strip-components 2
    mv $HOME/.androma/priv_validator_state.json.backup $HOME/.androma/data/priv_validator_state.json

    Restart the service and check the log
    Bash:
    sudo systemctl restart andromad && sudo journalctl -fu andromad -o cat



  • Instructions
    Stop the service and reset the data

    Bash:
    sudo systemctl stop andromad
    cp $HOME/.androma/data/priv_validator_state.json $HOME/.androma/priv_validator_state.json.backup
    andromad tendermint unsafe-reset-all --home $HOME/.androma

    Get and configure the state sync information
    Bash:
    SNAP_RPC="https://rpc-androma.nodeist.net:443"
    LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
    BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000)); \
    TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
    sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
    s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
    s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
    s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.androma/config/config.toml
    
    mv $HOME/.androma/priv_validator_state.json.backup $HOME/.androma/data/priv_validator_state.json

    Restart the service and check the log
    Bash:
    sudo systemctl restart andromad && sudo journalctl -fu andromad -o cat


  • 🔑 Key management

    Add new key

    Bash:
    andromad keys add wallet

    Recover existing key
    Bash:
    andromad keys add wallet --recover

    List all keys
    Bash:
    andromad keys list

    Delete key
    Bash:
    andromad keys delete wallet

    Export key to the file
    Bash:
    andromad keys export wallet

    Import key from the file
    Bash:
    andromad keys import wallet wallet.backup

    Query wallet balance
    Bash:
    andromad q bank balances $(andromad keys show wallet -a)

    👷 Validator management
    - Please make sure you have adjusted moniker, identity, details and website to match your values.

    Create new validator
    Bash:
    andromad tx staking create-validator \
    --amount 1000000uandr \
    --pubkey $(andromad tendermint show-validator) \
    --moniker "YOUR_MONIKER_NAME" \
    --identity "YOUR_KEYBASE_ID" \
    --details "YOUR_DETAILS" \
    --website "YOUR_WEBSITE_URL" \
    --chain-id androma-1 \
    --commission-rate 0.05 \
    --commission-max-rate 0.20 \
    --commission-max-change-rate 0.01 \
    --min-self-delegation 1 \
    --from wallet \
    --gas-adjustment 1.4 \
    --gas auto \
    --gas-prices 0.025uandr \
    -y

    Edit existing validator
    Bash:
    andromad tx staking edit-validator \
    --new-moniker "YOUR_MONIKER_NAME" \
    --identity "YOUR_KEYBASE_ID" \
    --details "YOUR_DETAILS" \
    --website "YOUR_WEBSITE_URL" \
    --chain-id androma-1 \
    --commission-rate 0.05 \
    --from wallet \
    --gas-adjustment 1.4 \
    --gas auto \
    --gas-prices 0.025uandr \
    -y

    Unjail validator
    Bash:
    andromad tx slashing unjail --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    Jail reason
    Bash:
    andromad query slashing signing-info $(andromad tendermint show-validator)

    List all active validators
    Bash:
    andromad q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

    List all inactive validators
    Bash:
    andromad q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

    View validator details
    Bash:
    andromad q staking validator $(andromad keys show wallet --bech val -a)

    💲 Token management

    Withdraw rewards from all validators

    Bash:
    andromad tx distribution withdraw-all-rewards --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    Withdraw commission and rewards from your validator
    Bash:
    andromad tx distribution withdraw-rewards $(andromad keys show wallet --bech val -a) --commission --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    Delegate tokens to yourself
    Bash:
    andromad tx staking delegate $(andromad keys show wallet --bech val -a) 1000000uandr --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    Delegate tokens to validator
    Bash:
    andromad tx staking delegate <TO_VALOPER_ADDRESS> 1000000uandr --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    Redelegate tokens to another validator
    Bash:
    andromad tx staking redelegate $(andromad keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000uandr --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    Unbond tokens from your validator
    Bash:
    andromad tx staking unbond $(andromad keys show wallet --bech val -a) 1000000uandr --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    Send tokens to the wallet
    Bash:
    andromad tx bank send wallet <TO_WALLET_ADDRESS> 1000000uandr --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    🗳 Governance

    List all proposals

    Bash:
    andromad query gov proposals

    View proposal by id
    Bash:
    andromad query gov proposal 1

    Vote 'Yes'
    Bash:
    andromad tx gov vote 1 yes --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    Vote 'No'
    Bash:
    andromad tx gov vote 1 no --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    Vote 'Abstain'
    Bash:
    andromad tx gov vote 1 abstain --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    Vote 'NoWithVeto'
    Bash:
    andromad tx gov vote 1 NoWithVeto --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y

    ⚡️ Utility

    Update Indexer

    Bash:
    sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.androma/config/config.toml

    Update pruning
    Bash:
    sed -i \
      -e 's|^pruning *=.*|pruning = "custom"|' \
      -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
      -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
      -e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
      $HOME/.androma/config/app.toml

    🚨 Maintenance

    Get validator info

    Bash:
    andromad status 2>&1 | jq .ValidatorInfo

    Get sync info
    Bash:
    andromad status 2>&1 | jq .SyncInfo

    Get node peer
    Bash:
    echo $(andromad tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.androma/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')

    Check if validator key is correct
    Bash:
    [[ $(andromad q staking validator $(andromad keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(andromad status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"

    Get live peers
    Bash:
    curl -sS http://localhost:27657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'

    Set minimum gas price
    Bash:
    sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025uandr\"/" $HOME/.androma/config/app.toml

    Enable prometheus
    Bash:
    sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.androma/config/config.toml

    Reset chain data
    Bash:
    andromad tendermint unsafe-reset-all --home $HOME/.androma --keep-addr-book

    Remove node
    - Please, before proceeding with the next step! All chain data will be lost! Make sure you have backed up your priv_validator_key.json!


    Bash:
    cd $HOME
    sudo systemctl stop andromad
    sudo systemctl disable andromad
    sudo rm /etc/systemd/system/andromad.service
    sudo systemctl daemon-reload
    rm -f $(which andromad)
    rm -rf $HOME/.androma
    rm -rf $HOME/androma

    ⚙️ Service Management

    Reload service configuration

    Bash:
    sudo systemctl daemon-reload

    Enable service
    Bash:
    sudo systemctl enable andromad

    Disable service
    Bash:
    sudo systemctl disable andromad

    Start service
    Bash:
    sudo systemctl start andromad

    Stop service
    Bash:
    sudo systemctl stop andromad

    Restart service
    Bash:
    sudo systemctl restart andromad

    Check service status
    Bash:
    sudo systemctl status andromad

    Check service logs
    Bash:
    sudo journalctl -u andromad -f --no-hostname -o cat

 
Last edited:
Up