Useful commands
Useful set of commands for node operators. From key management to chain governance.
Last updated
Useful set of commands for node operators. From key management to chain governance.
Last updated
Chain ID: fxcore | Latest Version Tag: v7.5.0
fxcored keys add wallet
fxcored keys add wallet --recover
fxcored keys list
fxcored keys delete wallet
fxcored keys export wallet
fxcored keys import wallet wallet.backup
fxcored q bank balances $(fxcored keys show wallet -a)
fxcored tx staking create-validator \
--amount=1000000FX \
--pubkey=$(fxcored tendermint show-validator) \
--moniker="YOUR_MONIKER_NAME" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL"
--chain-id=fxcore \
--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 \
-y
fxcored tx staking edit-validator \
--moniker="YOUR_MONIKER_NAME" \
--identity="YOUR_KEYBASE_ID" \
--details="YOUR_DETAILS" \
--website="YOUR_WEBSITE_URL"
--chain-id=fxcore \
--commission-rate=0.05 \
--from=wallet \
--gas-adjustment=1.4 \
--gas=auto \
-y
fxcored tx slashing unjail --from wallet --chain-id fxcore --gas-adjustment 1.4 --gas auto -y
fxcored query slashing signing-info $(fxcored tendermint show-validator)
fxcored 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
fxcored 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
fxcored q staking validator $(fxcored keys show wallet --bech val
fxcored tx distribution withdraw-all-rewards --from wallet --chain-id fxcore --gas-adjustment 1.4 --gas auto -y
fxcored tx distribution withdraw-rewards $(fxcored keys show wallet --bech val -a) --commission --from wallet --chain-id fxcore --gas-adjustment 1.4 --gas auto --y
fxcored tx staking delegate $(fxcored keys show wallet --bech val -a) 1000000FX --from wallet --chain-id fxcore --gas-adjustment 1.4 --gas auto -y
fxcored tx staking delegate <TO_VALOPER_ADDRESS> 1000000.fxcore --from wallet --chain-id fxcore --gas-adjustment 1.4 --gas auto -y
fxcored tx staking redelegate $(fxcored keys show wallet --bech val <TO_VALOPER_ADDRESS> 1000000FX --from wallet --chain-id fxcore --gas-adjustment 1.4 --gas auto -y
fxcored tx staking unbond $(fxcored keys show wallet --bech val -a) 1000000FX --from wallet --chain-id fxcore --gas-adjustment 1.4 --gas auto -y
fxcored tx bank send wallet <TO_WALLET_ADDRESS> 1000000FX --from wallet --chain-id fxcore
fxcored query gov proposals
fxcored query gov proposal 1
fxcored tx gov vote 1 yes --from wallet --chain-id fxcore --gas-adjustment 1.4 --gas auto -y
fxcored tx gov vote 1 no --from wallet --chain-id fxcore --gas-adjustment 1.4 --gas auto -y
fxcored tx gov vote 1 abstain --from wallet --chain-id fxcore --gas-adjustment 1.4 --gas auto -y
fxcored tx gov vote 1 nowithveto --from wallet --chain-id fxcore --gas-adjustment 1.4 --gas auto -y
CUSTOM_PORT=105
sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}58\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}57\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}60\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}56\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}60\"%" $HOME/.fxcore/config/config.toml
sed -i -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}17\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}80\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}90\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}91\"%" $HOME/.fxcore/config/app.toml
Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.fxcore/config/config.toml
Enable indexer
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.fxcore/config/config.toml
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/.fxcore/config/app.toml
fxcored status 2>&1 | jq .ValidatorInfo
fxcored status 2>&1 | jq .SyncInfo
echo $(fxcored tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.fxcore/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
[[ $(fxcored q staking validator $(fxcored keys show wallet --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(fxcored 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"
curl -sS http://localhost:26657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.fxcore\"/" $HOME/.fxcore/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.fxcore/config/config.toml
fxcored tendermint unsafe-reset-all --home $HOME/.fxcore --keep-addr-book
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 fxcored
sudo systemctl disable fxcored
sudo rm /etc/systemd/system/fxcored.service
sudo systemctl daemon-reload
rm -f $(which fxcored)
rm -rf $HOME/.fxcore
rm -rf $HOME/fxcore
sudo systemctl daemon-reload
sudo systemctl enable fxcored
sudo systemctl disable fxcored
sudo systemctl start fxcored
sudo systemctl stop fxcored
sudo systemctl restart fxcored
sudo systemctl status fxcored
sudo journalctl -u fxcored -f --no-hostname -o cat