Stake with Nodeist

Empowerchain Testnet Services



  • EMPOWER
    empower.png



    A world without waste. The digital platform for a decentralized, transparent and fair Circular Economy.​

    Chain Explorer:

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

    Peering:

    addrbook:

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

    live-peers:
    Bash:
    peers="[email protected]:26656,[email protected]:26656"
    sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.empowerchain/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/EmpowerPlastic/empowerchain &&
    cd empowerchain &&
    git checkout circulus-1 &&
    cd chain &&
    make install
    
    empowerd config chain-id circulus-1
    empowerd init "$NODE_MONIKER" --chain-id circulus-1
    
    curl -s https://ss.nodeist.net/t/empower/genesis.json > $HOME/.empowerchain/config/genesis.json
    curl -s https://ss.nodeist.net/t/empower/addrbook.json > $HOME/.empowerchain/config/addrbook.json
    
    SEEDS=""
    PEERS=""
    sed -i 's|^seeds *=.*|seeds = "'$SEEDS'"|; s|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.empowerchain/config/config.toml
    
    sed -i 's|^pruning *=.*|pruning = "custom"|g' $HOME/.empowerchain/config/app.toml
    sed -i 's|^pruning-keep-recent  *=.*|pruning-keep-recent = "100"|g' $HOME/.empowerchain/config/app.toml
    sed -i 's|^pruning-interval *=.*|pruning-interval = "10"|g' $HOME/.empowerchain/config/app.toml
    sed -i 's|^snapshot-interval *=.*|snapshot-interval = 0|g' $HOME/.empowerchain/config/app.toml
    
    sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.025umpwr"|g' $HOME/.empowerchain/config/app.toml
    sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.empowerchain/config/config.toml
    
    sudo tee /etc/systemd/system/empowerd.service > /dev/null << EOF
    [Unit]
    Description=Empower Node
    After=network-online.target
    [Service]
    User=$USER
    ExecStart=$(which empowerd) start
    Restart=on-failure
    RestartSec=10
    LimitNOFILE=10000
    [Install]
    WantedBy=multi-user.target
    EOF
    
    empowerd tendermint unsafe-reset-all --home $HOME/.empowerchain --keep-addr-book
    
    curl -L https://ss.nodeist.net/t/empower/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.empowerchain --strip-components 2
    
    
    sudo systemctl daemon-reload
    sudo systemctl enable empowerd
    sudo systemctl start empowerd
    
    sudo journalctl -fu empowerd -o cat





  • Instructions
    Stop the service and reset the data

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

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

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



  • Instructions
    Stop the service and reset the data

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

    Get and configure the state sync information
    Bash:
    SNAP_RPC="https://rpc-empower.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/.empowerchain/config/config.toml
    
    mv $HOME/.empowerchain/priv_validator_state.json.backup $HOME/.empowerchain/data/priv_validator_state.json

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


  • 🔑 Key management

    Add new key

    Bash:
    empowerd keys add wallet

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

    List all keys
    Bash:
    empowerd keys list

    Delete key
    Bash:
    empowerd keys delete wallet

    Export key to the file
    Bash:
    empowerd keys export wallet

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

    Query wallet balance
    Bash:
    empowerd q bank balances $(empowerd 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:
    empowerd tx staking create-validator \
    --amount 1000000umpwr \
    --pubkey $(empowerd tendermint show-validator) \
    --moniker "YOUR_MONIKER_NAME" \
    --identity "YOUR_KEYBASE_ID" \
    --details "YOUR_DETAILS" \
    --website "YOUR_WEBSITE_URL" \
    --chain-id circulus-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.025umpwr \
    -y

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

    Unjail validator
    Bash:
    empowerd tx slashing unjail --from wallet --chain-id circulus-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025umpwr -y

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

    List all active validators
    Bash:
    empowerd 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:
    empowerd 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:
    empowerd q staking validator $(empowerd keys show wallet --bech val -a)

    💲 Token management

    Withdraw rewards from all validators

    Bash:
    empowerd tx distribution withdraw-all-rewards --from wallet --chain-id circulus-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025umpwr -y

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

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

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

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

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

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

    🗳 Governance

    List all proposals

    Bash:
    empowerd query gov proposals

    View proposal by id
    Bash:
    empowerd query gov proposal 1

    Vote 'Yes'
    Bash:
    empowerd tx gov vote 1 yes --from wallet --chain-id circulus-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025umpwr -y

    Vote 'No'
    Bash:
    empowerd tx gov vote 1 no --from wallet --chain-id circulus-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025umpwr -y

    Vote 'Abstain'
    Bash:
    empowerd tx gov vote 1 abstain --from wallet --chain-id circulus-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025umpwr -y

    Vote 'NoWithVeto'
    Bash:
    empowerd tx gov vote 1 NoWithVeto --from wallet --chain-id circulus-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025umpwr -y

    ⚡️ Utility

    Update Indexer

    Bash:
    sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.empowerchain/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/.empowerchain/config/app.toml

    🚨 Maintenance

    Get validator info

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

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

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

    Check if validator key is correct
    Bash:
    [[ $(empowerd q staking validator $(empowerd keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(empowerd 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.025umpwr\"/" $HOME/.empowerchain/config/app.toml

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

    Reset chain data
    Bash:
    empowerd tendermint unsafe-reset-all --home $HOME/.empowerchain --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 empowerd
    sudo systemctl disable empowerd
    sudo rm /etc/systemd/system/empowerd.service
    sudo systemctl daemon-reload
    rm -f $(which empowerd)
    rm -rf $HOME/.empowerchain
    rm -rf $HOME/empowerd

    ⚙️ Service Management

    Reload service configuration

    Bash:
    sudo systemctl daemon-reload

    Enable service
    Bash:
    sudo systemctl enable empowerd

    Disable service
    Bash:
    sudo systemctl disable empowerd

    Start service
    Bash:
    sudo systemctl start empowerd

    Stop service
    Bash:
    sudo systemctl stop empowerd

    Restart service
    Bash:
    sudo systemctl restart empowerd

    Check service status
    Bash:
    sudo systemctl status empowerd

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

 
Up