How can I check if my validator is jailed?

Check if your validator is jailed

When a validator experiences downtime it may become jailed. A jailed validator is not in the active validator set.

On node

You may first notice that your validator is jailed when checking its status.

ethermintd status | jq

If Voting Power is zero and your validator previously had voting power, your validator may be jailed.

You can confirm by viewing your validator description.

ethermintd query staking validator <validator-address>

where validator-address is the output of

ethermintd keys show <key-name> --bech val

Make sure to add --keyring-backend test if you are working with a testnet validator.

The validator description will include a jailed field that will tell you if your validator is jailed or not.

On network

You can check with another node to get the status of all validator nodes.

On testnet, check http://146.71.79.179:1317/cosmos/staking/v1beta1/validators for your node’s jailed status.

Unjail your validator

If your validator is jailed, you can get it out of jail.

Restart the ethermintd service

sudo systemctl restart ethermintd

Make sure your validator is in sync with the chain

ethermintd status | jq -r ".SyncInfo"

Wait for catching_up to report false, then unjail your validator

ethermintd tx slashing unjail --from <account-address> --chain-id <chain-id>

Add --keyring-backend test if you are working with a testnet validator. The chain-id for testnet is ethermint_81337-1

You can determine account-address with

ethermintd keys show <key-name> --bech acc

Again, use --keyring-backend test for testnet.

After you unjail your validator, most of your validator’s voting power will be restored, but it may have lost some voting power due to the downtime.

The following command will return a list of all validators that are jailed.

ethermintd q staking validators -o json | jq '.validators | .[] | select(.jailed == true) | .description.moniker'

If you receive the following error after you confirm your unjail request

raw_log: 'signature verification failed; please verify account number (0) and chain-id
  (): unauthorized'

first ensure that you passed the right account address and chain id. However, if you’re sure those are right, this error can occur when the peers you are connected to are down.

For me this happened when the nodes listed in the persistent_peers config were down due to having too many open files on Linux. I assume the issue will happen regardless of why your peers are down though.

In at least one case, a validator has reported that it was not jailed on node, but it was jailed on network. After restarting the ethermintd service, the node correctly reported that it was jailed.