From e7fc8b26c2243315c6897d179a7c8bce602f24a6 Mon Sep 17 00:00:00 2001 From: evan-forbes Date: Thu, 11 May 2023 14:02:31 -0500 Subject: [PATCH 1/3] feat: allow for the default consensus params to be set by the application --- server/util.go | 10 ++++++---- x/genutil/client/cli/init.go | 4 ++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/server/util.go b/server/util.go index c5989c0acd2f..8c535d537c30 100644 --- a/server/util.go +++ b/server/util.go @@ -33,6 +33,7 @@ import ( "github.com/cosmos/cosmos-sdk/store" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version" + cmtproto "github.com/tendermint/tendermint/proto/tendermint/types" ) // DONTCOVER @@ -43,9 +44,10 @@ const ServerContextKey = sdk.ContextKey("server.context") // server context type Context struct { - Viper *viper.Viper - Config *tmcfg.Config - Logger tmlog.Logger + Viper *viper.Viper + Config *tmcfg.Config + Logger tmlog.Logger + DefaultConsensusParams *cmtproto.ConsensusParams } // ErrorCode contains the exit code for server exit. @@ -66,7 +68,7 @@ func NewDefaultContext() *Context { } func NewContext(v *viper.Viper, config *tmcfg.Config, logger tmlog.Logger) *Context { - return &Context{v, config, logger} + return &Context{v, config, logger, nil} } func bindFlags(basename string, cmd *cobra.Command, v *viper.Viper) (err error) { diff --git a/x/genutil/client/cli/init.go b/x/genutil/client/cli/init.go index f3a186b77fe8..91d0255dc802 100644 --- a/x/genutil/client/cli/init.go +++ b/x/genutil/client/cli/init.go @@ -163,6 +163,10 @@ func InitCmd(mbm module.BasicManager, defaultNodeHome string) *cobra.Command { genDoc.Validators = nil genDoc.AppState = appState + if serverCtx.DefaultConsensusParams != nil { + genDoc.ConsensusParams = serverCtx.DefaultConsensusParams + } + if err = genutil.ExportGenesisFile(genDoc, genFile); err != nil { return errors.Wrap(err, "Failed to export genesis file") } From fe5a7acf1580d3b8dc6b45ce10e17f14066ede42 Mon Sep 17 00:00:00 2001 From: evan-forbes Date: Thu, 11 May 2023 15:50:18 -0500 Subject: [PATCH 2/3] chore: add test --- x/genutil/client/cli/init_test.go | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/x/genutil/client/cli/init_test.go b/x/genutil/client/cli/init_test.go index 705af61cace3..c016f0b7d950 100644 --- a/x/genutil/client/cli/init_test.go +++ b/x/genutil/client/cli/init_test.go @@ -14,6 +14,7 @@ import ( abci_server "github.com/tendermint/tendermint/abci/server" "github.com/tendermint/tendermint/libs/cli" "github.com/tendermint/tendermint/libs/log" + coretypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" @@ -283,6 +284,43 @@ func TestInitConfig(t *testing.T) { require.Contains(t, out, "\"chain_id\": \"foo\"") } +func TestInitWithConsensusParams(t *testing.T) { + home := t.TempDir() + logger := log.NewNopLogger() + cfg, err := genutiltest.CreateDefaultTendermintConfig(home) + require.NoError(t, err) + + serverCtx := server.NewContext(viper.New(), cfg, logger) + + // set new defult consensus params + cps := coretypes.DefaultConsensusParams() + cps.Block.MaxBytes = 100000000 + cps.Block.MaxGas = 420420420 + serverCtx.DefaultConsensusParams = cps + + interfaceRegistry := types.NewInterfaceRegistry() + marshaler := codec.NewProtoCodec(interfaceRegistry) + clientCtx := client.Context{}. + WithCodec(marshaler). + WithLegacyAmino(makeCodec()). + WithHomeDir(home) + + ctx := context.Background() + ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) + ctx = context.WithValue(ctx, server.ServerContextKey, serverCtx) + + cmd := genutilcli.InitCmd(testMbm, home) + cmd.SetArgs([]string{"testnode"}) + + err = cmd.ExecuteContext(ctx) + require.NoError(t, err) + + genDoc, err := coretypes.GenesisDocFromFile(cfg.GenesisFile()) + require.NoError(t, err) + + require.Equal(t, genDoc.ConsensusParams, cps) +} + // custom tx codec func makeCodec() *codec.LegacyAmino { cdc := codec.NewLegacyAmino() From b9a3c80804fb10e842702ea88fed57933a0d90e1 Mon Sep 17 00:00:00 2001 From: Evan Forbes <42654277+evan-forbes@users.noreply.github.com> Date: Thu, 11 May 2023 20:53:15 -0500 Subject: [PATCH 3/3] fix: spelling Co-authored-by: CHAMI Rachid --- x/genutil/client/cli/init_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/genutil/client/cli/init_test.go b/x/genutil/client/cli/init_test.go index c016f0b7d950..058c088565a2 100644 --- a/x/genutil/client/cli/init_test.go +++ b/x/genutil/client/cli/init_test.go @@ -292,7 +292,7 @@ func TestInitWithConsensusParams(t *testing.T) { serverCtx := server.NewContext(viper.New(), cfg, logger) - // set new defult consensus params + // set new default consensus params cps := coretypes.DefaultConsensusParams() cps.Block.MaxBytes = 100000000 cps.Block.MaxGas = 420420420