From e8d12d0a7ae2c326a52676e7ed613d83a9be82d2 Mon Sep 17 00:00:00 2001 From: huichiaotsou Date: Thu, 4 Aug 2022 15:47:24 +0800 Subject: [PATCH 1/4] remove tombstone from validator status --- cmd/parse/gov/proposal.go | 2 +- cmd/parse/staking/validators.go | 2 +- database/schema/03-staking.sql | 1 - database/staking_validators.go | 6 +++--- database/staking_validators_test.go | 4 ---- .../bdjuno/tables/public_validator_status.yaml | 1 - modules/registrar.go | 2 +- modules/staking/expected_modules.go | 11 ----------- modules/staking/module.go | 17 +++++++---------- modules/staking/utils_validators.go | 9 --------- types/staking_validator.go | 4 +--- 11 files changed, 14 insertions(+), 45 deletions(-) delete mode 100644 modules/staking/expected_modules.go diff --git a/cmd/parse/gov/proposal.go b/cmd/parse/gov/proposal.go index 49360d93e..f4d0859c1 100644 --- a/cmd/parse/gov/proposal.go +++ b/cmd/parse/gov/proposal.go @@ -52,7 +52,7 @@ func proposalCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { distrModule := distribution.NewModule(sources.DistrSource, parseCtx.EncodingConfig.Marshaler, db) mintModule := mint.NewModule(sources.MintSource, parseCtx.EncodingConfig.Marshaler, db) slashingModule := slashing.NewModule(sources.SlashingSource, parseCtx.EncodingConfig.Marshaler, db) - stakingModule := staking.NewModule(sources.StakingSource, slashingModule, parseCtx.EncodingConfig.Marshaler, db) + stakingModule := staking.NewModule(sources.StakingSource, parseCtx.EncodingConfig.Marshaler, db) // Build the gov module govModule := gov.NewModule(sources.GovSource, nil, distrModule, mintModule, slashingModule, stakingModule, parseCtx.EncodingConfig.Marshaler, db) diff --git a/cmd/parse/staking/validators.go b/cmd/parse/staking/validators.go index d885c0571..ffe67febe 100644 --- a/cmd/parse/staking/validators.go +++ b/cmd/parse/staking/validators.go @@ -33,7 +33,7 @@ func validatorsCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { db := database.Cast(parseCtx.Database) // Build the staking module - stakingModule := staking.NewModule(sources.StakingSource, nil, parseCtx.EncodingConfig.Marshaler, db) + stakingModule := staking.NewModule(sources.StakingSource, parseCtx.EncodingConfig.Marshaler, db) // Get latest height height, err := parseCtx.Node.LatestHeight() diff --git a/database/schema/03-staking.sql b/database/schema/03-staking.sql index eff864331..c5b9ecb4f 100644 --- a/database/schema/03-staking.sql +++ b/database/schema/03-staking.sql @@ -70,7 +70,6 @@ CREATE TABLE validator_status validator_address TEXT NOT NULL REFERENCES validator (consensus_address) PRIMARY KEY, status INT NOT NULL, jailed BOOLEAN NOT NULL, - tombstoned BOOLEAN NOT NULL DEFAULT FALSE, height BIGINT NOT NULL ); CREATE INDEX validator_status_height_index ON validator_status (height); diff --git a/database/staking_validators.go b/database/staking_validators.go index f911247de..ea3f26ff6 100644 --- a/database/staking_validators.go +++ b/database/staking_validators.go @@ -407,7 +407,7 @@ func (db *Db) SaveValidatorsStatuses(statuses []types.ValidatorStatus) error { validatorStmt := `INSERT INTO validator (consensus_address, consensus_pubkey) VALUES` var valParams []interface{} - statusStmt := `INSERT INTO validator_status (validator_address, status, jailed, tombstoned, height) VALUES ` + statusStmt := `INSERT INTO validator_status (validator_address, status, jailed, height) VALUES ` var statusParams []interface{} for i, status := range statuses { @@ -416,8 +416,8 @@ func (db *Db) SaveValidatorsStatuses(statuses []types.ValidatorStatus) error { valParams = append(valParams, status.ConsensusAddress, status.ConsensusPubKey) si := i * 5 - statusStmt += fmt.Sprintf("($%d,$%d,$%d,$%d,$%d),", si+1, si+2, si+3, si+4, si+5) - statusParams = append(statusParams, status.ConsensusAddress, status.Status, status.Jailed, status.Tombstoned, status.Height) + statusStmt += fmt.Sprintf("($%d,$%d,$%d,$%d),", si+1, si+2, si+3, si+4) + statusParams = append(statusParams, status.ConsensusAddress, status.Status, status.Jailed, status.Height) } validatorStmt = validatorStmt[:len(validatorStmt)-1] diff --git a/database/staking_validators_test.go b/database/staking_validators_test.go index c3e85c47e..bf50191b0 100644 --- a/database/staking_validators_test.go +++ b/database/staking_validators_test.go @@ -633,7 +633,6 @@ func (suite *DbTestSuite) TestSaveValidatorStatus() { validator1.GetConsPubKey(), 1, false, - false, 10, ), types.NewValidatorStatus( @@ -641,7 +640,6 @@ func (suite *DbTestSuite) TestSaveValidatorStatus() { validator2.GetConsPubKey(), 2, true, - true, 10, ), }) @@ -680,7 +678,6 @@ func (suite *DbTestSuite) TestSaveValidatorStatus() { validator1.GetConsPubKey(), 3, true, - true, 9, ), types.NewValidatorStatus( @@ -688,7 +685,6 @@ func (suite *DbTestSuite) TestSaveValidatorStatus() { validator2.GetConsPubKey(), 3, true, - true, 11, ), }) diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_status.yaml b/hasura/metadata/databases/bdjuno/tables/public_validator_status.yaml index 1e983d9a7..eeee00e6a 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_validator_status.yaml +++ b/hasura/metadata/databases/bdjuno/tables/public_validator_status.yaml @@ -12,7 +12,6 @@ select_permissions: - validator_address - status - jailed - - tombstoned - height filter: {} role: anonymous diff --git a/modules/registrar.go b/modules/registrar.go index e9a89f6a3..90b77b7bd 100644 --- a/modules/registrar.go +++ b/modules/registrar.go @@ -79,7 +79,7 @@ func (r *Registrar) BuildModules(ctx registrar.Context) jmodules.Modules { feegrantModule := feegrant.NewModule(cdc, db) mintModule := mint.NewModule(sources.MintSource, cdc, db) slashingModule := slashing.NewModule(sources.SlashingSource, cdc, db) - stakingModule := staking.NewModule(sources.StakingSource, slashingModule, cdc, db) + stakingModule := staking.NewModule(sources.StakingSource, cdc, db) govModule := gov.NewModule(sources.GovSource, authModule, distrModule, mintModule, slashingModule, stakingModule, cdc, db) return []jmodules.Module{ diff --git a/modules/staking/expected_modules.go b/modules/staking/expected_modules.go deleted file mode 100644 index 4df6fc484..000000000 --- a/modules/staking/expected_modules.go +++ /dev/null @@ -1,11 +0,0 @@ -package staking - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - - "github.com/forbole/bdjuno/v3/types" -) - -type SlashingModule interface { - GetSigningInfo(height int64, consAddr sdk.ConsAddress) (types.ValidatorSigningInfo, error) -} diff --git a/modules/staking/module.go b/modules/staking/module.go index 9dfb5a926..10f42c6be 100644 --- a/modules/staking/module.go +++ b/modules/staking/module.go @@ -17,22 +17,19 @@ var ( // Module represents the x/staking module type Module struct { - cdc codec.Codec - db *database.Db - source stakingsource.Source - slashingModule SlashingModule + cdc codec.Codec + db *database.Db + source stakingsource.Source } // NewModule returns a new Module instance func NewModule( - source stakingsource.Source, slashingModule SlashingModule, - cdc codec.Codec, db *database.Db, + source stakingsource.Source, cdc codec.Codec, db *database.Db, ) *Module { return &Module{ - cdc: cdc, - db: db, - source: source, - slashingModule: slashingModule, + cdc: cdc, + db: db, + source: source, } } diff --git a/modules/staking/utils_validators.go b/modules/staking/utils_validators.go index 575bed236..4c5ee63d9 100644 --- a/modules/staking/utils_validators.go +++ b/modules/staking/utils_validators.go @@ -2,9 +2,6 @@ package staking import ( "fmt" - "strings" - - "google.golang.org/grpc/codes" juno "github.com/forbole/juno/v3/types" tmctypes "github.com/tendermint/tendermint/rpc/core/types" @@ -176,17 +173,11 @@ func (m *Module) GetValidatorsStatuses(height int64, validators []stakingtypes.V return nil, fmt.Errorf("error while getting validator consensus public key: %s", err) } - valSigningInfo, err := m.slashingModule.GetSigningInfo(height, consAddr) - if err != nil && !strings.Contains(err.Error(), codes.NotFound.String()) { - return nil, fmt.Errorf("error while getting validator signing info: %s", err) - } - statuses[index] = types.NewValidatorStatus( consAddr.String(), consPubKey.String(), int(validator.GetStatus()), validator.IsJailed(), - valSigningInfo.Tombstoned, height, ) } diff --git a/types/staking_validator.go b/types/staking_validator.go index 2c03e7338..b90498543 100644 --- a/types/staking_validator.go +++ b/types/staking_validator.go @@ -147,18 +147,16 @@ type ValidatorStatus struct { ConsensusPubKey string Status int Jailed bool - Tombstoned bool Height int64 } // NewValidatorStatus creates a new ValidatorVotingPower -func NewValidatorStatus(valConsAddr, pubKey string, status int, jailed bool, tombstoned bool, height int64) ValidatorStatus { +func NewValidatorStatus(valConsAddr, pubKey string, status int, jailed bool, height int64) ValidatorStatus { return ValidatorStatus{ ConsensusAddress: valConsAddr, ConsensusPubKey: pubKey, Status: status, Jailed: jailed, - Tombstoned: tombstoned, Height: height, } } From acddc56876730e600309c051b73fdd8c0f07f67d Mon Sep 17 00:00:00 2001 From: huichiaotsou Date: Thu, 4 Aug 2022 16:58:49 +0800 Subject: [PATCH 2/4] fix test --- database/staking_validators_test.go | 4 ---- database/types/staking_validators.go | 5 +---- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/database/staking_validators_test.go b/database/staking_validators_test.go index bf50191b0..9d9f24c4c 100644 --- a/database/staking_validators_test.go +++ b/database/staking_validators_test.go @@ -654,14 +654,12 @@ func (suite *DbTestSuite) TestSaveValidatorStatus() { dbtypes.NewValidatorStatusRow( 1, false, - false, validator1.GetConsAddr(), 10, ), dbtypes.NewValidatorStatusRow( 2, true, - true, validator2.GetConsAddr(), 10, ), @@ -699,14 +697,12 @@ func (suite *DbTestSuite) TestSaveValidatorStatus() { dbtypes.NewValidatorStatusRow( 1, false, - false, validator1.GetConsAddr(), 10, ), dbtypes.NewValidatorStatusRow( 3, true, - true, validator2.GetConsAddr(), 11, ), diff --git a/database/types/staking_validators.go b/database/types/staking_validators.go index 4eb5755ef..8db6c9e50 100644 --- a/database/types/staking_validators.go +++ b/database/types/staking_validators.go @@ -239,17 +239,15 @@ func (v ValidatorVotingPowerRow) Equal(w ValidatorVotingPowerRow) bool { type ValidatorStatusRow struct { Status int `db:"status"` Jailed bool `db:"jailed"` - Tombstoned bool `db:"tombstoned"` ConsAddress string `db:"validator_address"` Height int64 `db:"height"` } // NewValidatorStatusRow builds a new ValidatorStatusRow -func NewValidatorStatusRow(status int, jailed bool, tombstoned bool, consAddess string, height int64) ValidatorStatusRow { +func NewValidatorStatusRow(status int, jailed bool, consAddess string, height int64) ValidatorStatusRow { return ValidatorStatusRow{ Status: status, Jailed: jailed, - Tombstoned: tombstoned, ConsAddress: consAddess, Height: height, } @@ -259,7 +257,6 @@ func NewValidatorStatusRow(status int, jailed bool, tombstoned bool, consAddess func (v ValidatorStatusRow) Equal(w ValidatorStatusRow) bool { return v.Status == w.Status && v.Jailed == w.Jailed && - v.Tombstoned == w.Tombstoned && v.ConsAddress == w.ConsAddress && v.Height == w.Height } From fb3df2eb5e5c0e2a948efdad1e1c2fa32364f8a7 Mon Sep 17 00:00:00 2001 From: huichiaotsou Date: Thu, 4 Aug 2022 17:10:13 +0800 Subject: [PATCH 3/4] fix SaveValidatorsStatuses db method --- database/staking_validators.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/database/staking_validators.go b/database/staking_validators.go index ea3f26ff6..7384afe93 100644 --- a/database/staking_validators.go +++ b/database/staking_validators.go @@ -415,7 +415,7 @@ func (db *Db) SaveValidatorsStatuses(statuses []types.ValidatorStatus) error { validatorStmt += fmt.Sprintf("($%d, $%d),", vi+1, vi+2) valParams = append(valParams, status.ConsensusAddress, status.ConsensusPubKey) - si := i * 5 + si := i * 4 statusStmt += fmt.Sprintf("($%d,$%d,$%d,$%d),", si+1, si+2, si+3, si+4) statusParams = append(statusParams, status.ConsensusAddress, status.Status, status.Jailed, status.Height) } @@ -432,7 +432,6 @@ func (db *Db) SaveValidatorsStatuses(statuses []types.ValidatorStatus) error { ON CONFLICT (validator_address) DO UPDATE SET status = excluded.status, jailed = excluded.jailed, - tombstoned = excluded.tombstoned, height = excluded.height WHERE validator_status.height <= excluded.height` _, err = db.Sql.Exec(statusStmt, statusParams...) From 2fea74caf1decc6ced01cc1fa6d55a53ef645fc3 Mon Sep 17 00:00:00 2001 From: huichiaotsou Date: Mon, 8 Aug 2022 18:32:44 +0800 Subject: [PATCH 4/4] add change log --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d3267935..ce15182fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## Unreleased +### Changes +#### Staking Module +- ([\#443](https://github.com/forbole/bdjuno/pull/443)) Remove tombstone status from staking module(already stored in slashing module) + ## Version v3.2.0 ### Changes #### Mint module