cosmos-sdk/x/stake/keeper/_store.md
Rigel 6f140d7296 Merge PR #1119: Unbonding, Redelegation
* stake/fees spec updates
* staking overview.md revisions, moving files
* docs reorganization
* staking spec state revisions
* transaction stake updates
* complete staking spec update
* WIP adding unbonding/redelegation commands
* added msg types for unbonding, redelegation
* stake sub-package reorg
* working stake reorg
* modify lcd tests to not use hardcoded json strings
* add description update
* index keys
* key managment for unbonding redelegation complete
* update stake errors
* completed handleMsgCompleteUnbonding fn
* updated to use begin/complete unbonding/redelegation
* fix token shares bug
* develop docs into unbonding
* got non-tests compiling after merge develop
* working fixing tests
* PrivlegedKeeper -> PrivilegedKeeper
* tests compile
* fix some tests
* fixing tests
* remove PrivilegedKeeper
* get unbonding bug
* only rpc sig verification failed tests now
* move percent unbonding/redelegation to the CLI and out of handler logic
* remove min unbonding height
* add lcd txs
* add pool sanity checks, fix a buncha tests
* fix ante. set lcd log to debug (#1322)
* redelegation tests, adding query functionality for bonds
* add self-delegations at genesis ref #1165
* PR comments (mostly) addressed
* cleanup, added Query LCD functionality
* test cleanup/fixes
* fix governance test
* SlashValidatorSet -> ValidatorSet
* changelog
* stake lcd fix
* x/auth: fix chainID in ante
* fix lcd test
* fix lint, update lint make command for spelling
* lowercase error string
* don't expose coinkeeper in staking
* remove a few duplicate lines in changelog
* chain_id in stake lcd tests
* added transient redelegation
* 'transient' => 'transitive'
* Re-add nolint instruction
* Fix tiny linter error
2018-06-27 04:00:12 +02:00

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