From 6666540dbbff4c9bf89cfef474b69e9bbfbb308a Mon Sep 17 00:00:00 2001 From: Jae Kwon Date: Mon, 17 Dec 2018 10:56:45 -0800 Subject: [PATCH] Revert "Remove GovernancePenalty" This reverts commit 86a214f10cf60824c3f44c4d4c659708ddb0540a. --- Gopkg.lock | 5 ++--- Gopkg.toml | 2 +- cmd/gaia/app/sim_test.go | 5 +++-- x/gov/genesis.go | 13 ++++++++++--- x/gov/params.go | 7 ++++--- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index c6090bf27..1f84dd35c 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -452,7 +452,7 @@ version = "v0.12.0" [[projects]] - digest = "1:f94f468c7cd1fc3693ebc16011f26ec26538761cdcd182b3a28faa649a7d55e2" + digest = "1:23c49a2a0f3f8a8258982bbb1567d60d74253c18a454dbe4189126f7e94834e6" name = "github.com/tendermint/tendermint" packages = [ "abci/client", @@ -517,7 +517,7 @@ "version", ] pruneopts = "UT" - revision = "v0.27.3" + revision = "v0.27.0" [[projects]] digest = "1:a7485b2a69f996923f9d3406a9a853fd8eb31818515e985a830d71f88f6a925b" @@ -695,7 +695,6 @@ "github.com/tendermint/tendermint/crypto/secp256k1", "github.com/tendermint/tendermint/crypto/tmhash", "github.com/tendermint/tendermint/crypto/xsalsa20symmetric", - "github.com/tendermint/tendermint/libs/autofile", "github.com/tendermint/tendermint/libs/bech32", "github.com/tendermint/tendermint/libs/cli", "github.com/tendermint/tendermint/libs/cli/flags", diff --git a/Gopkg.toml b/Gopkg.toml index d730f62a1..108238c4b 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -40,7 +40,7 @@ [[override]] name = "github.com/tendermint/tendermint" - revision = "v0.27.3" + revision = "v0.27.0" [[constraint]] name = "github.com/zondax/ledger-cosmos-go" diff --git a/cmd/gaia/app/sim_test.go b/cmd/gaia/app/sim_test.go index 6b89fc16d..b4504bdf8 100644 --- a/cmd/gaia/app/sim_test.go +++ b/cmd/gaia/app/sim_test.go @@ -87,8 +87,9 @@ func appStateFn(r *rand.Rand, accs []simulation.Account) json.RawMessage { VotingPeriod: vp, }, TallyParams: gov.TallyParams{ - Threshold: sdk.NewDecWithPrec(5, 1), - Veto: sdk.NewDecWithPrec(334, 3), + Threshold: sdk.NewDecWithPrec(5, 1), + Veto: sdk.NewDecWithPrec(334, 3), + GovernancePenalty: sdk.NewDecWithPrec(1, 2), }, } fmt.Printf("Selected randomly generated governance parameters:\n\t%+v\n", govGenesis) diff --git a/x/gov/genesis.go b/x/gov/genesis.go index 750d3a0d8..7a8fab0b6 100644 --- a/x/gov/genesis.go +++ b/x/gov/genesis.go @@ -52,9 +52,10 @@ func DefaultGenesisState() GenesisState { VotingPeriod: time.Duration(172800) * time.Second, }, TallyParams: TallyParams{ - Quorum: sdk.NewDecWithPrec(334, 3), - Threshold: sdk.NewDecWithPrec(5, 1), - Veto: sdk.NewDecWithPrec(334, 3), + Quorum: sdk.NewDecWithPrec(334, 3), + Threshold: sdk.NewDecWithPrec(5, 1), + Veto: sdk.NewDecWithPrec(334, 3), + GovernancePenalty: sdk.NewDecWithPrec(1, 2), }, } } @@ -73,6 +74,12 @@ func ValidateGenesis(data GenesisState) error { veto.String()) } + govPenalty := data.TallyParams.GovernancePenalty + if govPenalty.IsNegative() || govPenalty.GT(sdk.OneDec()) { + return fmt.Errorf("Governance vote veto threshold should be positive and less or equal to one, is %s", + govPenalty.String()) + } + if data.DepositParams.MaxDepositPeriod > data.VotingParams.VotingPeriod { return fmt.Errorf("Governance deposit period should be less than or equal to the voting period (%ds), is %ds", data.VotingParams.VotingPeriod, data.DepositParams.MaxDepositPeriod) diff --git a/x/gov/params.go b/x/gov/params.go index 955fbd2c9..01da184d5 100644 --- a/x/gov/params.go +++ b/x/gov/params.go @@ -14,9 +14,10 @@ type DepositParams struct { // Param around Tallying votes in governance type TallyParams struct { - Quorum sdk.Dec `json:"quorum"` // Minimum percentage of total stake needed to vote for a result to be considered valid - Threshold sdk.Dec `json:"threshold"` // Minimum propotion of Yes votes for proposal to pass. Initial value: 0.5 - Veto sdk.Dec `json:"veto"` // Minimum value of Veto votes to Total votes ratio for proposal to be vetoed. Initial value: 1/3 + Quorum sdk.Dec `json:"quorum"` // Minimum percentage of total stake needed to vote for a result to be considered valid + Threshold sdk.Dec `json:"threshold"` // Minimum propotion of Yes votes for proposal to pass. Initial value: 0.5 + Veto sdk.Dec `json:"veto"` // Minimum value of Veto votes to Total votes ratio for proposal to be vetoed. Initial value: 1/3 + GovernancePenalty sdk.Dec `json:"governance_penalty"` // Penalty if validator does not vote } // Param around Voting in governance