Skip to content

Commit

Permalink
Remove redundant bonded validator store
Browse files Browse the repository at this point in the history
  • Loading branch information
cwgoes committed Oct 2, 2018
1 parent 54d5ce8 commit 413fa42
Show file tree
Hide file tree
Showing 5 changed files with 2 additions and 32 deletions.
4 changes: 0 additions & 4 deletions x/stake/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,6 @@ func InitGenesis(ctx sdk.Context, keeper Keeper, data types.GenesisState) (res [
// Manually set indexes for the first time
keeper.SetValidatorByConsAddr(ctx, validator)
keeper.SetValidatorByPowerIndex(ctx, validator, data.Pool)

if validator.Status == sdk.Bonded {
keeper.SetValidatorBondedIndex(ctx, validator)
}
}

for _, bond := range data.Bonds {
Expand Down
9 changes: 1 addition & 8 deletions x/stake/keeper/key.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ var (
RedelegationKey = []byte{0x0A} // key for a redelegation
RedelegationByValSrcIndexKey = []byte{0x0B} // prefix for each key for an redelegation, by source validator operator
RedelegationByValDstIndexKey = []byte{0x0C} // prefix for each key for an redelegation, by destination validator operator
BondedValidatorsIndexKey = []byte{0x0D} // prefix for each key to the bonded validator set
)

const maxDigitsForAccount = 12 // ~220,000,000 atoms created at launch
Expand All @@ -42,12 +41,6 @@ func GetValidatorByConsAddrKey(addr sdk.ConsAddress) []byte {
return append(ValidatorsByConsAddrKey, addr.Bytes()...)
}

// gets the key for the current validator group
// VALUE: none (key rearrangement with GetValKeyFromValBondedIndexKey)
func GetValidatorsBondedIndexKey(operatorAddr sdk.ValAddress) []byte {
return append(ValidatorsBondedIndexKey, operatorAddr.Bytes()...)
}

// Get the validator operator address from ValBondedIndexKey
func GetAddressFromValBondedIndexKey(IndexKey []byte) []byte {
return IndexKey[1:] // remove prefix bytes
Expand All @@ -64,7 +57,7 @@ func GetBondedValidatorsByPowerIndexKey(validator types.Validator, pool types.Po

// get the bonded validator index key for an operator address
func GetBondedValidatorIndexKey(operator sdk.ValAddress) []byte {
return append(BondedValidatorsIndexKey, operator...)
return append(ValidatorsBondedIndexKey, operator...)
}

// get the power ranking of a validator
Expand Down
8 changes: 1 addition & 7 deletions x/stake/keeper/val_state_change.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,6 @@ func (k Keeper) UnjailValidator(ctx sdk.Context, validator types.Validator) {
// perform all the store operations for when a validator status becomes bonded
func (k Keeper) bondValidator(ctx sdk.Context, validator types.Validator) types.Validator {

store := ctx.KVStore(k.storeKey)
pool := k.GetPool(ctx)

k.DeleteValidatorByPowerIndex(ctx, validator, pool)
Expand All @@ -175,7 +174,6 @@ func (k Keeper) bondValidator(ctx sdk.Context, validator types.Validator) types.

// save the now bonded validator record to the three referenced stores
k.SetValidator(ctx, validator)
store.Set(GetValidatorsBondedIndexKey(validator.OperatorAddr), []byte{})

k.SetValidatorByPowerIndex(ctx, validator, pool)

Expand All @@ -190,7 +188,6 @@ func (k Keeper) bondValidator(ctx sdk.Context, validator types.Validator) types.
// perform all the store operations for when a validator status begins unbonding
func (k Keeper) beginUnbondingValidator(ctx sdk.Context, validator types.Validator) types.Validator {

store := ctx.KVStore(k.storeKey)
pool := k.GetPool(ctx)
params := k.GetParams(ctx)

Expand All @@ -211,9 +208,6 @@ func (k Keeper) beginUnbondingValidator(ctx sdk.Context, validator types.Validat
// save the now unbonded validator record
k.SetValidator(ctx, validator)

// also remove from the Bonded types.Validators Store
store.Delete(GetValidatorsBondedIndexKey(validator.OperatorAddr))

k.SetValidatorByPowerIndex(ctx, validator, pool)

// call the unbond hook if present
Expand All @@ -237,7 +231,7 @@ func (k Keeper) completeUnbondingValidator(ctx sdk.Context, validator types.Vali
func (k Keeper) retrieveLastValidatorSet(ctx sdk.Context) map[[sdk.AddrLen]byte][]byte {
last := make(map[[sdk.AddrLen]byte][]byte)
store := ctx.KVStore(k.storeKey)
iterator := sdk.KVStorePrefixIterator(store, BondedValidatorsIndexKey)
iterator := sdk.KVStorePrefixIterator(store, ValidatorsBondedIndexKey)
for ; iterator.Valid(); iterator.Next() {
var operator [sdk.AddrLen]byte
copy(operator[:], iterator.Key()[1:])
Expand Down
12 changes: 0 additions & 12 deletions x/stake/keeper/validator.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,6 @@ func (k Keeper) SetNewValidatorByPowerIndex(ctx sdk.Context, validator types.Val
store.Set(GetBondedValidatorsByPowerIndexKey(validator, pool), validator.OperatorAddr)
}

// validator index
func (k Keeper) SetValidatorBondedIndex(ctx sdk.Context, validator types.Validator) {
store := ctx.KVStore(k.storeKey)
store.Set(GetValidatorsBondedIndexKey(validator.OperatorAddr), []byte{})
}

//___________________________________________________________________________

// Update the tokens of an existing validator, update the validators power index key
Expand Down Expand Up @@ -201,12 +195,6 @@ func (k Keeper) RemoveValidator(ctx sdk.Context, address sdk.ValAddress) {
store.Delete(GetValidatorByConsAddrKey(sdk.ConsAddress(validator.ConsPubKey.Address())))
store.Delete(GetBondedValidatorsByPowerIndexKey(validator, pool))

// delete from the current and power weighted validator groups if the validator
// is bonded - and add validator with zero power to the validator updates
if store.Get(GetValidatorsBondedIndexKey(validator.OperatorAddr)) == nil {
return
}
store.Delete(GetValidatorsBondedIndexKey(validator.OperatorAddr))
}

//___________________________________________________________________________
Expand Down
1 change: 0 additions & 1 deletion x/stake/stake.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ var (

GetValidatorKey = keeper.GetValidatorKey
GetValidatorByConsAddrKey = keeper.GetValidatorByConsAddrKey
GetValidatorsBondedIndexKey = keeper.GetValidatorsBondedIndexKey
GetBondedValidatorsByPowerIndexKey = keeper.GetBondedValidatorsByPowerIndexKey
GetDelegationKey = keeper.GetDelegationKey
GetDelegationsKey = keeper.GetDelegationsKey
Expand Down

0 comments on commit 413fa42

Please sign in to comment.