unbonded: Not in validator set, because of not enough bonded assets.
jailed: Not in validator set, because of misbehaviour.
tombstoned: Permanently not in validator set, because of misbehaviour.
This may be used during cross-unbonding; so that we know if we need to apply the unbonding period or not.
It can also be checked during cross-bonding, to prevent bonding to tombstoned validators.
Note: This may be difficult to implement with the current impl, as the valset updates use CRDT for consistency over unordered channels.
As a follow-up of #109, let's change valset updates to support validator status (active, unbonded, jailed, tombstoned).
The list of states comes from https://hub.cosmos.network/main/validators/validator-faq.html#what-are-the-different-states-a-validator-can-be-in.
We can have:
active
: In validator set.unbonded
: Not in validator set, because of not enough bonded assets.jailed
: Not in validator set, because of misbehaviour.tombstoned
: Permanently not in validator set, because of misbehaviour.This may be used during cross-unbonding; so that we know if we need to apply the unbonding period or not. It can also be checked during cross-bonding, to prevent bonding to tombstoned validators.
Note: This may be difficult to implement with the current impl, as the valset updates use CRDT for consistency over unordered channels.