Stake with Nodeist

Services

 
Okp4 OKP4 is a revolutionary public blockchain protocol where communities are incentivized to share data and services confidently. To maximize value from data, it needs to be processed by complex algorithms and pooled with other datasets, to create valuable knowledge. okp4
 
Ojo Ojo is a decentralized security-first oracle network built to support the Cosmos Ecosystem. Ojo will source price data from a diverse catalog of on and off-chain sources and use advanced security mechanisms to guarantee the integrity of the data it provides. ojo
 
fa-info-circle Info EMPOWER A world without waste. The digital platform for a decentralized, transparent and fair Circular Economy. Chain Explorer: https://exp.nodeist.net/Empower Public Endpoints: # API ENDPOINT https://api-empower.nodeist.net # RPC ENDPOINT https://rpc-empower.nodeist.net # GRPC ENDPOINT https://grpc-empower.nodeist.net Peering: addrbook: curl -Ls https://ss.nodeist.net/t/empower/addrbook.json > $HOME/.empowerchain/config/addrbook.json live-peers: peers="[email protected]:26656,[email protected]:26656" sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.empowerchain/config/config.toml fa-spinner fa-spin Install Manual Installation This section contains a list of commands to install the node in manual mode. Server Preparation 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 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. 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 fa-camera-alt Snapshot Instructions Stop the service and reset the data 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 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 sudo systemctl restart empowerd && sudo journalctl -fu empowerd -o cat fa-sync fa-spin State Sync Instructions Stop the service and reset the data 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 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 sudo systemctl restart empowerd && sudo journalctl -fu empowerd -o cat fa-terminal CLI Cheatsheets 🔑 Key management Add new key empowerd keys add wallet Recover existing key empowerd keys add wallet --recover List all keys empowerd keys list Delete key empowerd keys delete wallet Export key to the file empowerd keys export wallet Import key from the file empowerd keys import wallet wallet.backup Query wallet balance 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 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 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 empowerd tx slashing unjail --from wallet --chain-id circulus-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025umpwr -y Jail reason empowerd query slashing signing-info $(empowerd tendermint show-validator) List all active validators 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 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 empowerd q staking validator $(empowerd keys show wallet --bech val -a) 💲 Token management Withdraw rewards from all validators 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 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 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 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 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 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 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 empowerd query gov proposals View proposal by id empowerd query gov proposal 1 Vote 'Yes' 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' 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' 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' 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 sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.empowerchain/config/config.toml Update pruning 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 empowerd status 2>&1 | jq .ValidatorInfo Get sync info empowerd status 2>&1 | jq .SyncInfo Get node peer 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 [[ $(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 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 sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025umpwr\"/" $HOME/.empowerchain/config/app.toml Enable prometheus sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.empowerchain/config/config.toml Reset chain data 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! 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 sudo systemctl daemon-reload Enable service sudo systemctl enable empowerd Disable service sudo systemctl disable empowerd Start service sudo systemctl start empowerd Stop service sudo systemctl stop empowerd Restart service sudo systemctl restart empowerd Check service status sudo systemctl status empowerd Check service logs sudo journalctl -u empowerd -f --no-hostname -o cat
 
fa-info-circle Info ELYS Elys is a fast layer 1 blockchain powered by the Cosmos-SDK. It is the first, and only, decentralized suite of financial applications in the Cosmos ecosystem that has built-in native bridging capabilities for optimal user experience and value capture, and native margin trading capabilities that are powered by liquidity pools & liquidity providers. Chain Explorer: https://exp.nodeist.net/Elys Public Endpoints: # API ENDPOINT https://api-elys.nodeist.net # RPC ENDPOINT https://rpc-elys.nodeist.net # GRPC ENDPOINT https://grpc-elys.nodeist.net Peering: addrbook: curl -Ls https://ss.nodeist.net/t/elys/addrbook.json > $HOME/.elys/config/addrbook.json live-peers: peers="[email protected]:21956,[email protected]:21956,[email protected]:27656,[email protected]:34656,[email protected]:27296" sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.elys/config/config.toml fa-spinner fa-spin Install Manual Installation This section contains a list of commands to install the node in manual mode. Server Preparation 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 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. NODE_MONIKER="Nodeist_Guide" cd || return rm -rf elys git clone https://github.com/elys-network/elys.git cd elys git checkout v0.4.0 make install elysd config chain-id elystestnet-1 elysd init "$NODE_MONIKER" --chain-id elystestnet-1 curl -s https://ss.nodeist.net/t/elys/genesis.json > $HOME/.elys/config/genesis.json curl -s https://ss.nodeist.net/t/elys/addrbook.json > $HOME/.elys/config/addrbook.json SEEDS="" PEERS="" sed -i 's|^seeds *=.*|seeds = "'$SEEDS'"|; s|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.elys/config/config.toml sed -i 's|^pruning *=.*|pruning = "custom"|g' $HOME/.elys/config/app.toml sed -i 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|g' $HOME/.elys/config/app.toml sed -i 's|^pruning-interval *=.*|pruning-interval = "10"|g' $HOME/.elys/config/app.toml sed -i 's|^snapshot-interval *=.*|snapshot-interval = 0|g' $HOME/.elys/config/app.toml sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.025uelys"|g' $HOME/.elys/config/app.toml sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.elys/config/config.toml sudo tee /etc/systemd/system/elysd.service > /dev/null << EOF [Unit] Description=Elys Node After=network-online.target [Service] User=$USER ExecStart=$(which elysd) start Restart=on-failure RestartSec=10 LimitNOFILE=10000 [Install] WantedBy=multi-user.target EOF elysd tendermint unsafe-reset-all --home $HOME/.elys --keep-addr-book curl -L https://ss.nodeist.net/t/elys/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.elys --strip-components 2 sudo systemctl daemon-reload sudo systemctl enable elysd sudo systemctl start elysd sudo journalctl -fu elysd -o cat fa-camera-alt Snapshot elys Instructions Stop the service and reset the data sudo systemctl stop elysd cp $HOME/.elys/data/priv_validator_state.json $HOME/.elys/priv_validator_state.json.backup rm -rf $HOME/.elys/data Download latest snapshot curl -L https://ss.nodeist.net/t/elys/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.elys --strip-components 2 mv $HOME/.elys/priv_validator_state.json.backup $HOME/.elys/data/priv_validator_state.json Restart the service and check the log sudo systemctl restart elysd && sudo journalctl -fu elysd -o cat fa-sync fa-spin State Sync Instructions Stop the service and reset the data sudo systemctl stop elysd cp $HOME/.elys/data/priv_validator_state.json $HOME/.elys/priv_validator_state.json.backup elysd tendermint unsafe-reset-all --home $HOME/.elys Get and configure the state sync information SNAP_RPC="https://rpc-elys.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/.elys/config/config.toml mv $HOME/.elys/priv_validator_state.json.backup $HOME/.elys/data/priv_validator_state.json Restart the service and check the log sudo systemctl restart elysd && sudo journalctl -fu elysd -o cat fa-terminal CLI Cheatsheets 🔑 Key management Add new key elysd keys add wallet Recover existing key elysd keys add wallet --recover List all keys elysd keys list Delete key elysd keys delete wallet Export key to the file elysd keys export wallet Import key from the file elysd keys import wallet wallet.backup Query wallet balance elysd q bank balances $(elysd keys show wallet -a) 👷 Validator management - Please make sure you have adjusted moniker, identity, details and website to match your values. Create new validator elysd tx staking create-validator \ --amount 1000000uelys \ --pubkey $(elysd tendermint show-validator) \ --moniker "YOUR_MONIKER_NAME" \ --identity "YOUR_KEYBASE_ID" \ --details "YOUR_DETAILS" \ --website "YOUR_WEBSITE_URL" \ --chain-id elystestnet-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.025uelys \ -y Edit existing validator elysd tx staking edit-validator \ --new-moniker "YOUR_MONIKER_NAME" \ --identity "YOUR_KEYBASE_ID" \ --details "YOUR_DETAILS" \ --website "YOUR_WEBSITE_URL" \ --chain-id elystestnet-1 \ --commission-rate 0.05 \ --from wallet \ --gas-adjustment 1.4 \ --gas auto \ --gas-prices 0.025uelys \ -y Unjail validator elysd tx slashing unjail --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y Jail reason elysd query slashing signing-info $(elysd tendermint show-validator) List all active validators elysd 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 elysd 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 elysd q staking validator $(elysd keys show wallet --bech val -a) 💲 Token management Withdraw rewards from all validators elysd tx distribution withdraw-all-rewards --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y Withdraw commission and rewards from your validator elysd tx distribution withdraw-rewards $(elysd keys show wallet --bech val -a) --commission --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y Delegate tokens to yourself elysd tx staking delegate $(elysd keys show wallet --bech val -a) 1000000uelys --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y Delegate tokens to validator elysd tx staking delegate <TO_VALOPER_ADDRESS> 1000000uelys --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y Redelegate tokens to another validator elysd tx staking redelegate $(elysd keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000uelys --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y Unbond tokens from your validator elysd tx staking unbond $(elysd keys show wallet --bech val -a) 1000000uelys --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y Send tokens to the wallet elysd tx bank send wallet <TO_WALLET_ADDRESS> 1000000uelys --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y 🗳 Governance List all proposals elysd query gov proposals View proposal by id elysd query gov proposal 1 Vote 'Yes' elysd tx gov vote 1 yes --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y Vote 'No' elysd tx gov vote 1 no --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y Vote 'Abstain' elysd tx gov vote 1 abstain --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y Vote 'NoWithVeto' elysd tx gov vote 1 NoWithVeto --from wallet --chain-id elystestnet-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uelys -y ⚡️ Utility Update Indexer sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.elys/config/config.toml Update pruning 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/.elys/config/app.toml 🚨 Maintenance Get validator info elysd status 2>&1 | jq .ValidatorInfo Get sync info elysd status 2>&1 | jq .SyncInfo Get node peer echo $(elysd tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.elys/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//') Check if validator key is correct [[ $(elysd q staking validator $(elysd keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(elysd 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 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 sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025uelys\"/" $HOME/.elys/config/app.toml Enable prometheus sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.elys/config/config.toml Reset chain data elysd tendermint unsafe-reset-all --home $HOME/.elys --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! cd $HOME sudo systemctl stop elysd sudo systemctl disable elysd sudo rm /etc/systemd/system/elysd.service sudo systemctl daemon-reload rm -f $(which elysd) rm -rf $HOME/.elys rm -rf $HOME/elysd ⚙️ Service Management Reload service configuration sudo systemctl daemon-reload Enable service sudo systemctl enable elysd Disable service sudo systemctl disable elysd Start service sudo systemctl start elysd Stop service sudo systemctl stop elysd Restart service sudo systemctl restart elysd Check service status sudo systemctl status elysd Check service logs sudo journalctl -u elysd -f --no-hostname -o cat
 
fa-info-circle Info CARDCHAIN Crowd Control is not a company, but a Decentralized Autonomous Organization (DAO). This is realized with a blockchain built on Cosmos technology. Chain Explorer: https://exp.nodeist.net/Cardchain Public Endpoints: # API ENDPOINT https://api-cardchain.nodeist.net # RPC ENDPOINT https://rpc-cardchain.nodeist.net # GRPC ENDPOINT https://grpc-cardchain.nodeist.net Peering: addrbook: curl -Ls https://ss.nodeist.net/t/cardchain/addrbook.json > $HOME/.Cardchain/config/addrbook.json live-peers: peers="[email protected]:27656,[email protected]:26656,[email protected]:31656,[email protected]:18656" sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.Cardchain/config/config.toml fa-spinner fa-spin Install Manual Installation This section contains a list of commands to install the node in manual mode. Server Preparation 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 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. NODE_MONIKER="Nodeist_Guide" cd $HOME curl -L https://github.com/DecentralCardGame/Cardchain/releases/download/v0.81/Cardchain_latest_linux_amd64.tar.gz > Cardchain_latest_linux_amd64.tar.gz tar -xvzf Cardchain_latest_linux_amd64.tar.gz chmod +x Cardchaind mkdir -p $HOME/go/bin mv Cardchaind $HOME/go/bin rm Cardchain_latest_linux_amd64.tar.gz Cardchaind config chain-id testnet3 Cardchaind init "$NODE_MONIKER" --chain-id testnet3 curl -s https://ss.nodeist.net/t/cardchain/genesis.json > $HOME/.Cardchain/config/genesis.json curl -s https://ss.nodeist.net/t/cardchain/addrbook.json > $HOME/.Cardchain/config/addrbook.json SEEDS="" PEERS="" sed -i 's|^seeds *=.*|seeds = "'$SEEDS'"|; s|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.Cardchain/config/config.toml sed -i 's|^pruning *=.*|pruning = "custom"|g' $HOME/.Cardchain/config/app.toml sed -i 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|g' $HOME/.Cardchain/config/app.toml sed -i 's|^pruning-interval *=.*|pruning-interval = "10"|g' $HOME/.Cardchain/config/app.toml sed -i 's|^snapshot-interval *=.*|snapshot-interval = 0|g' $HOME/.Cardchain/config/app.toml sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.025ubpf"|g' $HOME/.Cardchain/config/app.toml sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.Cardchain/config/config.toml sudo tee /etc/systemd/system/Cardchaind.service > /dev/null << EOF [Unit] Description=Cardchain Node After=network-online.target [Service] User=$USER ExecStart=$(which Cardchaind) start Restart=on-failure RestartSec=10 LimitNOFILE=10000 [Install] WantedBy=multi-user.target EOF Cardchaind tendermint unsafe-reset-all --home $HOME/.Cardchain --keep-addr-book curl -L https://ss.nodeist.net/t/cardchain/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.Cardchain --strip-components 2 sudo systemctl daemon-reload sudo systemctl enable Cardchaind sudo systemctl start Cardchaind sudo journalctl -fu Cardchaind -o cat fa-camera-alt Snapshot cardchain Instructions Stop the service and reset the data sudo systemctl stop Cardchaind cp $HOME/.Cardchain/data/priv_validator_state.json $HOME/.Cardchain/priv_validator_state.json.backup rm -rf $HOME/.Cardchain/data Download latest snapshot curl -L https://ss.nodeist.net/t/cardchain/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.Cardchain --strip-components 2 mv $HOME/.Cardchain/priv_validator_state.json.backup $HOME/.Cardchain/data/priv_validator_state.json Restart the service and check the log sudo systemctl restart Cardchaind && sudo journalctl -fu Cardchaind -o cat fa-sync fa-spin State Sync Instructions Stop the service and reset the data sudo systemctl stop Cardchaind cp $HOME/.Cardchain/data/priv_validator_state.json $HOME/.Cardchain/priv_validator_state.json.backup Cardchaind tendermint unsafe-reset-all --home $HOME/.Cardchain Get and configure the state sync information SNAP_RPC="https://rpc-cardchain.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/.Cardchain/config/config.toml mv $HOME/.Cardchain/priv_validator_state.json.backup $HOME/.Cardchain/data/priv_validator_state.json Restart the service and check the log sudo systemctl restart Cardchaind && sudo journalctl -fu Cardchaind -o cat fa-terminal CLI Cheatsheets 🔑 Key management Add new key Cardchaind keys add wallet Recover existing key Cardchaind keys add wallet --recover List all keys Cardchaind keys list Delete key Cardchaind keys delete wallet Export key to the file Cardchaind keys export wallet Import key from the file Cardchaind keys import wallet wallet.backup Query wallet balance Cardchaind q bank balances $(Cardchaind keys show wallet -a) 👷 Validator management - Please make sure you have adjusted moniker, identity, details and website to match your values. Create new validator Cardchaind tx staking create-validator \ --amount 1000000ubpf \ --pubkey $(Cardchaind tendermint show-validator) \ --moniker "YOUR_MONIKER_NAME" \ --identity "YOUR_KEYBASE_ID" \ --details "YOUR_DETAILS" \ --website "YOUR_WEBSITE_URL" \ --chain-id testnet3 \ --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.025ubpf \ -y Edit existing validator Cardchaind tx staking edit-validator \ --new-moniker "YOUR_MONIKER_NAME" \ --identity "YOUR_KEYBASE_ID" \ --details "YOUR_DETAILS" \ --website "YOUR_WEBSITE_URL" \ --chain-id testnet3 \ --commission-rate 0.05 \ --from wallet \ --gas-adjustment 1.4 \ --gas auto \ --gas-prices 0.025ubpf \ -y Unjail validator Cardchaind tx slashing unjail --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y Jail reason Cardchaind query slashing signing-info $(Cardchaind tendermint show-validator) List all active validators Cardchaind 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 Cardchaind 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 Cardchaind q staking validator $(Cardchaind keys show wallet --bech val -a) 💲 Token management Withdraw rewards from all validators Cardchaind tx distribution withdraw-all-rewards --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y Withdraw commission and rewards from your validator Cardchaind tx distribution withdraw-rewards $(Cardchaind keys show wallet --bech val -a) --commission --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y Delegate tokens to yourself Cardchaind tx staking delegate $(Cardchaind keys show wallet --bech val -a) 1000000ubpf --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y Delegate tokens to validator Cardchaind tx staking delegate <TO_VALOPER_ADDRESS> 1000000ubpf --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y Redelegate tokens to another validator Cardchaind tx staking redelegate $(Cardchaind keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000ubpf --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y Unbond tokens from your validator Cardchaind tx staking unbond $(Cardchaind keys show wallet --bech val -a) 1000000ubpf --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y Send tokens to the wallet Cardchaind tx bank send wallet <TO_WALLET_ADDRESS> 1000000ubpf --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y 🗳 Governance List all proposals Cardchaind query gov proposals View proposal by id Cardchaind query gov proposal 1 Vote 'Yes' Cardchaind tx gov vote 1 yes --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y Vote 'No' Cardchaind tx gov vote 1 no --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y Vote 'Abstain' Cardchaind tx gov vote 1 abstain --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y Vote 'NoWithVeto' Cardchaind tx gov vote 1 NoWithVeto --from wallet --chain-id testnet3 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubpf -y ⚡️ Utility Update Indexer sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.Cardchain/config/config.toml Update pruning 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/.Cardchain/config/app.toml 🚨 Maintenance Get validator info Cardchaind status 2>&1 | jq .ValidatorInfo Get sync info Cardchaind status 2>&1 | jq .SyncInfo Get node peer echo $(Cardchaind tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.Cardchain/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//') Check if validator key is correct [[ $(Cardchaind q staking validator $(Cardchaind keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(Cardchaind 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 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 sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025ubpf\"/" $HOME/.Cardchain/config/app.toml Enable prometheus sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.Cardchain/config/config.toml Reset chain data Cardchaind tendermint unsafe-reset-all --home $HOME/.Cardchain --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! cd $HOME sudo systemctl stop Cardchaind sudo systemctl disable Cardchaind sudo rm /etc/systemd/system/Cardchaind.service sudo systemctl daemon-reload rm -f $(which Cardchaind) rm -rf $HOME/.Cardchain rm -rf $HOME/Cardchaind ⚙️ Service Management Reload service configuration sudo systemctl daemon-reload Enable service sudo systemctl enable Cardchaind Disable service sudo systemctl disable Cardchaind Start service sudo systemctl start Cardchaind Stop service sudo systemctl stop Cardchaind Restart service sudo systemctl restart Cardchaind Check service status sudo systemctl status Cardchaind Check service logs sudo journalctl -u Cardchaind -f --no-hostname -o cat
 
fa-info-circle Info BONUSBLOCK BonusBlock is a simple, yet unique blockchain network that rewards users for on-chain activity across Web3 and provides an incentive to build healthier relationships, loyalty, and community engagement with project stakeholders. Chain Explorer: https://exp.nodeist.net/Bonusblock Public Endpoints: # API ENDPOINT https://api-bonusblock.nodeist.net # RPC ENDPOINT https://rpc-bonusblock.nodeist.net # GRPC ENDPOINT https://grpc-bonusblock.nodeist.net Peering: addrbook: curl -Ls https://ss.nodeist.net/t/bonusblock/addrbook.json > $HOME/.bonusblock/config/addrbook.json live-peers: peers="[email protected]:29656" sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.bonusblock/config/config.toml fa-spinner fa-spin Install Manual Installation This section contains a list of commands to install the node in manual mode. Server Preparation 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 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. NODE_MONIKER="Nodeist_Guide" cd || return git clone https://github.com/BBlockLabs/BonusBlock-chain cd BonusBlock-chain git checkout v0.1.39 make install bonus-blockd config chain-id blocktopia-01 bonus-blockd init "$NODE_MONIKER" --chain-id blocktopia-01 curl -s https://ss.nodeist.net/t/bonusblock/genesis.json > $HOME/.bonusblock/config/genesis.json curl -s https://ss.nodeist.net/t/bonusblock/addrbook.json > $HOME/.bonusblock/config/addrbook.json SEEDS="" PEERS="" sed -i 's|^seeds *=.*|seeds = "'$SEEDS'"|; s|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.bonusblock/config/config.toml sed -i 's|^pruning *=.*|pruning = "custom"|g' $HOME/.bonusblock/config/app.toml sed -i 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|g' $HOME/.bonusblock/config/app.toml sed -i 's|^pruning-interval *=.*|pruning-interval = "10"|g' $HOME/.bonusblock/config/app.toml sed -i 's|^snapshot-interval *=.*|snapshot-interval = 0|g' $HOME/.bonusblock/config/app.toml sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.025ubonus"|g' $HOME/.bonusblock/config/app.toml sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.bonusblock/config/config.toml sudo tee /etc/systemd/system/bonus-blockd.service > /dev/null << EOF [Unit] Description=Bonusblock Node After=network-online.target [Service] User=$USER ExecStart=$(which bonus-blockd) start Restart=on-failure RestartSec=10 LimitNOFILE=10000 [Install] WantedBy=multi-user.target EOF bonus-blockd tendermint unsafe-reset-all --home $HOME/.bonusblock --keep-addr-book curl -L https://ss.nodeist.net/t/bonusblock/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.bonusblock --strip-components 2 sudo systemctl daemon-reload sudo systemctl enable bonus-blockd sudo systemctl start bonus-blockd sudo journalctl -fu bonus-blockd -o cat fa-camera-alt Snapshot bonusblock Instructions Stop the service and reset the data sudo systemctl stop bonus-blockd cp $HOME/.bonusblock/data/priv_validator_state.json $HOME/.bonusblock/priv_validator_state.json.backup rm -rf $HOME/.bonusblock/data Download latest snapshot curl -L https://ss.nodeist.net/t/bonusblock/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.bonusblock --strip-components 2 mv $HOME/.bonusblock/priv_validator_state.json.backup $HOME/.bonusblock/data/priv_validator_state.json Restart the service and check the log sudo systemctl restart bonus-blockd && sudo journalctl -fu bonus-blockd -o cat fa-sync fa-spin State Sync Instructions Stop the service and reset the data sudo systemctl stop bonus-blockd cp $HOME/.bonusblock/data/priv_validator_state.json $HOME/.bonusblock/priv_validator_state.json.backup bonus-blockd tendermint unsafe-reset-all --home $HOME/.bonusblock Get and configure the state sync information SNAP_RPC="https://rpc-bonusblock.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/.bonusblock/config/config.toml mv $HOME/.bonusblock/priv_validator_state.json.backup $HOME/.bonusblock/data/priv_validator_state.json Restart the service and check the log sudo systemctl restart bonus-blockd && sudo journalctl -fu bonus-blockd -o cat fa-terminal CLI Cheatsheets 🔑 Key management Add new key bonus-blockd keys add wallet Recover existing key bonus-blockd keys add wallet --recover List all keys bonus-blockd keys list Delete key bonus-blockd keys delete wallet Export key to the file bonus-blockd keys export wallet Import key from the file bonus-blockd keys import wallet wallet.backup Query wallet balance bonus-blockd q bank balances $(bonus-blockd keys show wallet -a) 👷 Validator management - Please make sure you have adjusted moniker, identity, details and website to match your values. Create new validator bonus-blockd tx staking create-validator \ --amount 1000000ubonus \ --pubkey $(bonus-blockd tendermint show-validator) \ --moniker "YOUR_MONIKER_NAME" \ --identity "YOUR_KEYBASE_ID" \ --details "YOUR_DETAILS" \ --website "YOUR_WEBSITE_URL" \ --chain-id blocktopia-01 \ --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.025ubonus \ -y Edit existing validator bonus-blockd tx staking edit-validator \ --new-moniker "YOUR_MONIKER_NAME" \ --identity "YOUR_KEYBASE_ID" \ --details "YOUR_DETAILS" \ --website "YOUR_WEBSITE_URL" \ --chain-id blocktopia-01 \ --commission-rate 0.05 \ --from wallet \ --gas-adjustment 1.4 \ --gas auto \ --gas-prices 0.025ubonus \ -y Unjail validator bonus-blockd tx slashing unjail --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y Jail reason bonus-blockd query slashing signing-info $(bonus-blockd tendermint show-validator) List all active validators bonus-blockd 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 bonus-blockd 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 bonus-blockd q staking validator $(bonus-blockd keys show wallet --bech val -a) 💲 Token management Withdraw rewards from all validators bonus-blockd tx distribution withdraw-all-rewards --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y Withdraw commission and rewards from your validator bonus-blockd tx distribution withdraw-rewards $(bonus-blockd keys show wallet --bech val -a) --commission --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y Delegate tokens to yourself bonus-blockd tx staking delegate $(bonus-blockd keys show wallet --bech val -a) 1000000ubonus --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y Delegate tokens to validator bonus-blockd tx staking delegate <TO_VALOPER_ADDRESS> 1000000ubonus --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y Redelegate tokens to another validator bonus-blockd tx staking redelegate $(bonus-blockd keys show wallet --bech val -a) <TO_VALOPER_ADDRESS> 1000000ubonus --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y Unbond tokens from your validator bonus-blockd tx staking unbond $(bonus-blockd keys show wallet --bech val -a) 1000000ubonus --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y Send tokens to the wallet bonus-blockd tx bank send wallet <TO_WALLET_ADDRESS> 1000000ubonus --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y 🗳 Governance List all proposals bonus-blockd query gov proposals View proposal by id bonus-blockd query gov proposal 1 Vote 'Yes' bonus-blockd tx gov vote 1 yes --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y Vote 'No' bonus-blockd tx gov vote 1 no --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y Vote 'Abstain' bonus-blockd tx gov vote 1 abstain --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y Vote 'NoWithVeto' bonus-blockd tx gov vote 1 NoWithVeto --from wallet --chain-id blocktopia-01 --gas-adjustment 1.4 --gas auto --gas-prices 0.025ubonus -y ⚡️ Utility Update Indexer sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.bonusblock/config/config.toml Update pruning 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/.bonusblock/config/app.toml 🚨 Maintenance Get validator info bonus-blockd status 2>&1 | jq .ValidatorInfo Get sync info bonus-blockd status 2>&1 | jq .SyncInfo Get node peer echo $(bonus-blockd tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.bonusblock/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//') Check if validator key is correct [[ $(bonus-blockd q staking validator $(bonus-blockd keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(bonus-blockd 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 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 sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025ubonus\"/" $HOME/.bonusblock/config/app.toml Enable prometheus sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.bonusblock/config/config.toml Reset chain data bonus-blockd tendermint unsafe-reset-all --home $HOME/.bonusblock --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! cd $HOME sudo systemctl stop bonus-blockd sudo systemctl disable bonus-blockd sudo rm /etc/systemd/system/bonus-blockd.service sudo systemctl daemon-reload rm -f $(which bonus-blockd) rm -rf $HOME/.bonusblock rm -rf $HOME/BonusBlock-chain ⚙️ Service Management Reload service configuration sudo systemctl daemon-reload Enable service sudo systemctl enable bonus-blockd Disable service sudo systemctl disable bonus-blockd Start service sudo systemctl start bonus-blockd Stop service sudo systemctl stop bonus-blockd Restart service sudo systemctl restart bonus-blockd Check service status sudo systemctl status bonus-blockd Check service logs sudo journalctl -u bonus-blockd -f --no-hostname -o cat
 
fa-info-circle Info ANDROMA 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: https://exp.nodeist.net/Androma Public Endpoints: # API ENDPOINT https://api-androma.nodeist.net # RPC ENDPOINT https://rpc-androma.nodeist.net # GRPC ENDPOINT https://grpc-androma.nodeist.net Peering: addrbook: curl -Ls https://ss.nodeist.net/t/androma/addrbook.json > $HOME/.androma/config/addrbook.json live-peers: 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 fa-spinner fa-spin Install Manual Installation This section contains a list of commands to install the node in manual mode. Server Preparation 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 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. 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 fa-camera-alt Snapshot androma Instructions Stop the service and reset the data 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 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 sudo systemctl restart andromad && sudo journalctl -fu andromad -o cat fa-sync fa-spin State Sync Instructions Stop the service and reset the data 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 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 sudo systemctl restart andromad && sudo journalctl -fu andromad -o cat fa-terminal CLI Cheatsheets 🔑 Key management Add new key andromad keys add wallet Recover existing key andromad keys add wallet --recover List all keys andromad keys list Delete key andromad keys delete wallet Export key to the file andromad keys export wallet Import key from the file andromad keys import wallet wallet.backup Query wallet balance 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 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 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 andromad tx slashing unjail --from wallet --chain-id androma-1 --gas-adjustment 1.4 --gas auto --gas-prices 0.025uandr -y Jail reason andromad query slashing signing-info $(andromad tendermint show-validator) List all active validators 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 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 andromad q staking validator $(andromad keys show wallet --bech val -a) 💲 Token management Withdraw rewards from all validators 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 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 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 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 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 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 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 andromad query gov proposals View proposal by id andromad query gov proposal 1 Vote 'Yes' 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' 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' 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' 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 sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.androma/config/config.toml Update pruning 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 andromad status 2>&1 | jq .ValidatorInfo Get sync info andromad status 2>&1 | jq .SyncInfo Get node peer 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 [[ $(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 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 sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025uandr\"/" $HOME/.androma/config/app.toml Enable prometheus sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.androma/config/config.toml Reset chain data 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! 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 sudo systemctl daemon-reload Enable service sudo systemctl enable andromad Disable service sudo systemctl disable andromad Start service sudo systemctl start andromad Stop service sudo systemctl stop andromad Restart service sudo systemctl restart andromad Check service status sudo systemctl status andromad Check service logs sudo journalctl -u andromad -f --no-hostname -o cat
Up