2.2 KiB
2.2 KiB
Stores
This document provided a bit more insight as to the purpose of several related
prefixed areas of the staking store which are accessed in x/stake/keeper.go
.
Validators
- Prefix Key Space: ValidatorsKey
- Key/Sort: Validator Owner Address
- Value: Validator Object
- Contains: All Validator records independent of being bonded or not
- Used For: Retrieve validator from owner address, general validator retrieval
Validators By Power
- Prefix Key Space: ValidatorsByPowerKey
- Key/Sort: Validator Power (equivalent bonded shares) then Block Height then Transaction Order
- Value: Validator Owner Address
- Contains: All Validator records independent of being bonded or not
- Used For: Determining who the top validators are whom should be bonded
Validators Cliff Power
- Prefix Key Space: ValidatorCliffKey
- Key/Sort: single-record
- Value: Validator Power Key (as above store)
- Contains: The cliff validator (ex. 100th validator) power
- Used For: Efficient updates to validator status
Validators Bonded
- Prefix Key Space: ValidatorsBondedKey
- Key/Sort: Validator PubKey Address (NOTE same as Tendermint)
- Value: Validator Owner Address
- Contains: Only currently bonded Validators
- Used For: Retrieving the list of all currently bonded validators when updating for a new validator entering the validator set we may want to loop through this set to determine who we've kicked out. retrieving validator by tendermint index
Tendermint Updates
- Prefix Key Space: TendermintUpdatesKey
- Key/Sort: Validator Owner Address
- Value: Tendermint ABCI Validator
- Contains: Validators are queued to affect the consensus validation set in Tendermint
- Used For: Informing Tendermint of the validator set updates, is used only intra-block, as the updates are applied then cleared on endblock