๐Ÿ’ก Useful commands

โš™๏ธ Service Commands

Check Logs

sudo journalctl -u titand -f -o cat

Start service

sudo systemctl start titand 

Stop service

sudo systemctl stop titand 

Restart service

sudo systmctl restart titand 

Check status

sudo systemctl status titand 

Enable Service

sudo systemctl enable titand 

Reload service

sudo systemctl daemon-reload

Disable service

sudo systemctl disable titand 

Check synchronization status

while true; do 
  local_height=$(oraid status | jq -r .sync_info.latest_block_height)
  network_height=$(curl -s https://rpc.titan-testnet.unitynodes.com/status | jq -r '.result.sync_info.latest_block_height')
  blocks_left=$((network_height - local_height))

  echo -e "\033[1;33m[Sync Status]\033[0m \033[1;32mNode Height:\033[0m \033[1;37m$local_height\033[0m | \033[1;32mNetwork Height:\033[0m \033[1;37m$network_height\033[0m | \033[1;32mBlocks Left:\033[0m \033[1;31m$blocks_left\033[0m"

  sleep 5
done

If "Block left - 0" - synchronized

Check the latest block of your validator

titand status | jq '.SyncInfo.latest_block_height // .sync_info.latest_block_height'

View the ports used node

ss -tulpn | grep titand 

โš™๏ธ Key Command

Create new wallet

titand keys add wallet

Recovery wallet

titand keys add wallet --recover

List all wallet

titand keys list

Delete wallet

titand keys delete wallet

Export wallet

titand  keys export wallet

Import wallet

titand keys import wallet wallet.backup 

Check wallet balance

titand q bank balances $(titand keys show wallet -a) 

โš™๏ธ Validator Commands

Create validator

# Create validator.json file
touch $HOME/.titan/config/validator.json

# Find your pubkey
titand comet show-validator

#Open a validator.json file
nano $HOME/.titan/config/validator.json

#Paste this into the open validator.json file, pre-replacing all values โ€‹โ€‹that start with $ 
{
  "pubkey": {
    "@type": "/cosmos.crypto.ed25519.PubKey",
    "key": "+vMHVm134I+Rh4kNqLG/YwvQqDy+YqcZqWtgp7ABUop0="
  },
  "amount": "1000000uttnt",
  "moniker": "Oliver",
  "identity": "", 
  "website": "", 
  "security": "", 
  "details": "Trusted Blockchain validator", 
  "commission-rate": "0.05",
  "commission-max-rate": "0.2",
  "commission-max-change-rate": "0.2",
  "min-self-delegation": "1"
}

#After entering and changing all values, save the file with the key combination Ctrl + X and press Enter

#Run command create validator
titand tx staking create-validator $HOME/.titan/config/validator.json \
--chain-id titan-test-3 \
--gas-adjustment="1.5" \
--fees 500uttnt \
--from wallet

You can leave the text after # unchanged - it's a commented hint that won't affect validator creation.

โ—ฝ Replace the following values with your own: WALLET - usually it's 'wallet', or your wallet's name. MONIKER - any convenient name for your validator, displayed in the explorer. IDENTITY - validator's avatar, displayed in the explorer. Create a KeyBase ID following the instructions or leave it empty, and it will default to a standard one. DETAILS - details about your validator, also displayed in the explorer.

Replace all necessary values indicated above with the $ sign to successfully create your validator. โ—ฝ Example: lavad tx staking create-validator \

{
  "pubkey": {
    "@type": "/cosmos.crypto.ed25519.PubKey",
    "key": "+vMHVm134I+Rh4kNqLG/YwvQqDy+YqcZqWtgp7ABUop0="
  },
  "amount": "1000000uttnt",
  "moniker": "Oliver",
  "identity": "", #if you have your identifier, replace it, or leave it blank
  "website": "", #if you have your website, replace it, or leave it blank
  "security": "", 
  "details": "Trusted Blockchain validator", 
  "commission-rate": "0.05",
  "commission-max-rate": "0.2",
  "commission-max-change-rate": "0.2",
  "min-self-delegation": "1"
}

Update validator information

titand tx staking edit-validator \
--new-moniker "$MONIKER" \
--identity "$KEYBASEID" \
--details "$DESCRIPTION" \
--website "$WEBSITE" \
--security-contact "$MAIL" \
--chain-id titan-test-3 \
--commission-rate 0.05 \
--from wallet \
--gas 350000 -y

Validator details

titand q staking validator $(titand keys show wallet --bech val -a)

Jailing info

titand q staking validator $(titand keys show wallet --bech val -a) | grep -E "jailed"

If "true" - your validator is jailed // "false" - your validator is not jailed

Jail reason

titand q slashing signing-info $(titand tendermint show-validator)

Unjail command

titand tx slashing unjail \
--chain-id titan-test-3 \
--fees 500uttnt \
--from wallet \ # Or another wallet name
-y 

Information about delegation at your validator

titand q staking validator $(titand keys show wallet --bech val -a) | grep -E "tokens"

Active Validators list

titand q staking validators -oj --limit=2000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " 	 " + .description.moniker' | sort -gr | nl

Inactive Validator list

titand q staking validators -oj --limit=2000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED" or .status=="BOND_STATUS_UNBONDING")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl 

Signing Info

titand query slashing signing-info $(titand tendermint show-validator) 

โš™๏ธ Tokens Commands

Delegate to yourself

titand tx staking delegate $(titand  keys show wallet --bech val -a) 1000000uttnt --chain-id titan-test-3 --from wallet --gas-adjustment 1.4 --gas "auto" --fees 700uttnt -y

Delegate to another validator

titand tx staking delegate <TO_VALOPER_ADDRESS> 1000000uttnt --chain-id titan-test-3 --from wallet --gas-adjustment 1.4 --gas "auto" --fees 700uttnt -y

Redelegate your stake to other validator

titand tx staking redelegate $VALOPER_ADDRESS <TO_VALOPER_ADDRESS> 1000000uttnt --chain-id titan-test-3 --from wallet --gas-adjustment 1.4 --gas "auto" --fees 700uttnt -y

Unbond stake

titand tx staking unbond $(titand keys show $WALLET --bech val -a) 1000000uttnt --chain-id titan-test-3 --from wallet --gas-adjustment 1.4 --gas "auto" --fees 700uttnt -y

Send tokens

titand tx bank send $WALLET_ADDRESS <TO_WALLET_ADDRESS> 1000000uttnt --chain-id titan-test-3 --from wallet --gas-adjustment 1.4 --gas "auto" --fees 700uttnt -y

Check wallet balance

titand q bank balances $(titand keys show wallet -a)

Transaction details

titand query tx HASH_TX

Withdraw all rewards

titand tx distribution withdraw-all-rewards --from $WALLET --chain-id titan-test-3 --gas-adjustment 1.4 --gas "auto" -y

Withdraw rewards and commission from your validator

titand tx distribution withdraw-rewards $VALOPER_ADDRESS --from $WALLET --commission --chain-id titan-test-3 --gas-adjustment 1.4 --gas "auto" -y

โš™๏ธ Governance

List All Proposals

titand query gov proposals

View proposal by ID

titand query gov proposal ID

Vote "YES"

titand tx gov vote PROPOSAL_ID yes --from wallet --chain-id titan-test-3 --gas-adjustment 1.4 --gas "auto" -y

Vote "NO"

titand tx gov vote PROPOSAL_ID no --from wallet --chain-id titan-test-3 --gas-adjustment 1.4 --gas "auto" -y

Vote "NO_WITH_VETO"

titand tx gov vote PROPOSAL_ID no_with_veto --from wallet --chain-id titan-test-3 --gas-adjustment 1.4 --gas "auto" -y

Vote "ABSTAIN"

titand tx gov vote PROPOSAL_ID abstain --from wallet --chain-id titan-test-3 --gas-adjustment 1.4 --gas "auto" -y

Create new text proposal

titand tx gov submit-proposal \
--title="Title" \ #Change Title
--description="Description" \
--deposit=1000000uttnt \
--type="Text" \   #Change text proposal
--from=wallet \   #Change name wallet
--fees 500uttnt
-y 

โš™๏ธ Utility

Set Custom Port


#PORT 36
sed -i.bak -e "s%:1317%:2317%g; 
s%:8080%:9080%g;
s%:9090%:10090%g;
s%:9091%:10091%g;
s%:8545%:9545%g;
s%:8546%:9546%g;
s%:6065%:7065%g" $HOME/.titan/config/app.toml	
sed -i.bak -e "s%:26658%:36658%g;
s%:26657%:36657%g;
s%:6060%:7060%g;
s%tcp://0.0.0.0:26656%tcp://0.0.0.0:36656%g;
s%:26660%:36660%g" $HOME/.titan/config/config.toml
sed -i.bak -e "s%:26657%:36657%g" $HOME/.titan/config/client.toml
echo "" 
sudo systemctl restart titand && sudo journalctl -u titand -f -o cat 

Set Indexer

sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.titan/config/config.toml

Update Pruning

sed -i.bak -e 's|^pruning *=.*|pruning = "custom"|; s|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|; s|^pruning-keep-every *=.*|pruning-keep-every = "0"|; s|^pruning-interval *=.*|pruning-interval = "17"|' $HOME/.titan/config/app.toml

Reset node

titand tendermint unsafe-reset-all --home $HOME/.titan --keep-addr-book

Get denom info

titand q bank denom-metadata -oj | jq

Get Node Peer

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

Update server name

 sudo hostnamectl set-hostname server_name

How much SSD use Nibiru (currently)

du -sh $HOME/.titan/

How much RAM use Nibiru (currently)

sudo systemctl status titand | grep "Memory:"

How much CPU use Nibiru (currently)

ps -C titand -o %cpu --no-headers | awk '{print $1"% CPU"}'

Delete node

sudo systemctl stop titand 
sudo systemctl disable titand 
sudo rm -rf /etc/systemd/system/titand.service
sudo rm $(which titand)
sudo rm -rf $HOME/.titan

Last updated