From 806091862174600de8c4d2cba67e8c736aba2cd7 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 6 Dec 2022 13:02:26 +0100 Subject: [PATCH 1/4] provide a helper for baseapp options --- server/mock/app_test.go | 2 +- server/util.go | 50 +++++++++++++++++++++++++++++++++++++++++ simapp/simd/cmd/root.go | 50 ++--------------------------------------- 3 files changed, 53 insertions(+), 49 deletions(-) diff --git a/server/mock/app_test.go b/server/mock/app_test.go index 6ae13632d8ea..5e21cdd58393 100644 --- a/server/mock/app_test.go +++ b/server/mock/app_test.go @@ -2,10 +2,10 @@ package mock import ( "math/rand" + "testing" "time" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" - "testing" "github.com/stretchr/testify/require" abci "github.com/tendermint/tendermint/abci/types" diff --git a/server/util.go b/server/util.go index 56db69f289cf..ab3a85e527d6 100644 --- a/server/util.go +++ b/server/util.go @@ -25,10 +25,15 @@ import ( tmlog "github.com/tendermint/tendermint/libs/log" dbm "github.com/tendermint/tm-db" + "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/server/config" "github.com/cosmos/cosmos-sdk/server/types" + "github.com/cosmos/cosmos-sdk/store" + "github.com/cosmos/cosmos-sdk/store/snapshots" + snapshottypes "github.com/cosmos/cosmos-sdk/store/snapshots/types" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/mempool" "github.com/cosmos/cosmos-sdk/version" ) @@ -406,3 +411,48 @@ func openTraceWriter(traceWriterFile string) (w io.WriteCloser, err error) { 0o666, ) } + +// DefaultBaseappOptions returns the default baseapp options provided by the Cosmos SDK +func DeafultBaseappOptions(appOpts types.AppOptions) []func(*baseapp.BaseApp) { + var cache sdk.MultiStorePersistentCache + + if cast.ToBool(appOpts.Get(FlagInterBlockCache)) { + cache = store.NewCommitKVStoreCacheManager() + } + + pruningOpts, err := GetPruningOptionsFromFlags(appOpts) + if err != nil { + panic(err) + } + + snapshotDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data", "snapshots") + snapshotDB, err := dbm.NewDB("metadata", GetAppDBBackend(appOpts), snapshotDir) + if err != nil { + panic(err) + } + snapshotStore, err := snapshots.NewStore(snapshotDB, snapshotDir) + if err != nil { + panic(err) + } + + snapshotOptions := snapshottypes.NewSnapshotOptions( + cast.ToUint64(appOpts.Get(FlagStateSyncSnapshotInterval)), + cast.ToUint32(appOpts.Get(FlagStateSyncSnapshotKeepRecent)), + ) + + return []func(*baseapp.BaseApp){ + baseapp.SetPruning(pruningOpts), + baseapp.SetMinGasPrices(cast.ToString(appOpts.Get(FlagMinGasPrices))), + baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(FlagHaltHeight))), + baseapp.SetHaltTime(cast.ToUint64(appOpts.Get(FlagHaltTime))), + baseapp.SetMinRetainBlocks(cast.ToUint64(appOpts.Get(FlagMinRetainBlocks))), + baseapp.SetInterBlockCache(cache), + baseapp.SetTrace(cast.ToBool(appOpts.Get(FlagTrace))), + baseapp.SetIndexEvents(cast.ToStringSlice(appOpts.Get(FlagIndexEvents))), + baseapp.SetSnapshot(snapshotStore, snapshotOptions), + baseapp.SetIAVLCacheSize(cast.ToInt(appOpts.Get(FlagIAVLCacheSize))), + baseapp.SetIAVLDisableFastNode(cast.ToBool(appOpts.Get(FlagDisableIAVLFastNode))), + baseapp.SetMempool(mempool.NewSenderNonceMempool( + mempool.SenderNonceMaxTxOpt(cast.ToInt(appOpts.Get(FlagMempoolMaxTxs))))), + } +} diff --git a/simapp/simd/cmd/root.go b/simapp/simd/cmd/root.go index 859c53dba360..a4e9ba860ed6 100644 --- a/simapp/simd/cmd/root.go +++ b/simapp/simd/cmd/root.go @@ -4,11 +4,9 @@ import ( "errors" "io" "os" - "path/filepath" rosettaCmd "cosmossdk.io/tools/rosetta/cmd" - "github.com/spf13/cast" "github.com/spf13/cobra" "github.com/spf13/viper" tmcfg "github.com/tendermint/tendermint/config" @@ -18,7 +16,6 @@ import ( "cosmossdk.io/simapp" "cosmossdk.io/simapp/params" - "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/config" "github.com/cosmos/cosmos-sdk/client/debug" @@ -29,12 +26,8 @@ import ( "github.com/cosmos/cosmos-sdk/server" serverconfig "github.com/cosmos/cosmos-sdk/server/config" servertypes "github.com/cosmos/cosmos-sdk/server/types" - "github.com/cosmos/cosmos-sdk/store" - "github.com/cosmos/cosmos-sdk/store/snapshots" - snapshottypes "github.com/cosmos/cosmos-sdk/store/snapshots/types" simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/mempool" authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli" "github.com/cosmos/cosmos-sdk/x/auth/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" @@ -263,52 +256,13 @@ func newApp( traceStore io.Writer, appOpts servertypes.AppOptions, ) servertypes.Application { - var cache sdk.MultiStorePersistentCache - if cast.ToBool(appOpts.Get(server.FlagInterBlockCache)) { - cache = store.NewCommitKVStoreCacheManager() - } - - skipUpgradeHeights := make(map[int64]bool) - for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) { - skipUpgradeHeights[int64(h)] = true - } - - pruningOpts, err := server.GetPruningOptionsFromFlags(appOpts) - if err != nil { - panic(err) - } - - snapshotDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data", "snapshots") - snapshotDB, err := dbm.NewDB("metadata", server.GetAppDBBackend(appOpts), snapshotDir) - if err != nil { - panic(err) - } - snapshotStore, err := snapshots.NewStore(snapshotDB, snapshotDir) - if err != nil { - panic(err) - } - - snapshotOptions := snapshottypes.NewSnapshotOptions( - cast.ToUint64(appOpts.Get(server.FlagStateSyncSnapshotInterval)), - cast.ToUint32(appOpts.Get(server.FlagStateSyncSnapshotKeepRecent)), - ) + options := server.DeafultBaseappOptions(appOpts) return simapp.NewSimApp( logger, db, traceStore, true, appOpts, - baseapp.SetPruning(pruningOpts), - baseapp.SetMinGasPrices(cast.ToString(appOpts.Get(server.FlagMinGasPrices))), - baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(server.FlagHaltHeight))), - baseapp.SetHaltTime(cast.ToUint64(appOpts.Get(server.FlagHaltTime))), - baseapp.SetMinRetainBlocks(cast.ToUint64(appOpts.Get(server.FlagMinRetainBlocks))), - baseapp.SetInterBlockCache(cache), - baseapp.SetTrace(cast.ToBool(appOpts.Get(server.FlagTrace))), - baseapp.SetIndexEvents(cast.ToStringSlice(appOpts.Get(server.FlagIndexEvents))), - baseapp.SetSnapshot(snapshotStore, snapshotOptions), - baseapp.SetIAVLCacheSize(cast.ToInt(appOpts.Get(server.FlagIAVLCacheSize))), - baseapp.SetIAVLDisableFastNode(cast.ToBool(appOpts.Get(server.FlagDisableIAVLFastNode))), - baseapp.SetMempool(mempool.NewSenderNonceMempool(mempool.SenderNonceMaxTxOpt(cast.ToInt(appOpts.Get(server.FlagMempoolMaxTxs))))), + options..., ) } From 86c8efc33cf94f9bbfccd4649223c003a510ff88 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 6 Dec 2022 13:04:50 +0100 Subject: [PATCH 2/4] rename --- simapp/simd/cmd/root.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/simapp/simd/cmd/root.go b/simapp/simd/cmd/root.go index a4e9ba860ed6..af75c5bcc295 100644 --- a/simapp/simd/cmd/root.go +++ b/simapp/simd/cmd/root.go @@ -257,12 +257,12 @@ func newApp( appOpts servertypes.AppOptions, ) servertypes.Application { - options := server.DeafultBaseappOptions(appOpts) + baseappOptions := server.DeafultBaseappOptions(appOpts) return simapp.NewSimApp( logger, db, traceStore, true, appOpts, - options..., + baseappOptions..., ) } From 7fac0ee6e2b739c56a757b17682850c166bf8e9d Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 6 Dec 2022 13:06:32 +0100 Subject: [PATCH 3/4] changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 925c39afb996..cb9ea9cb8a8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -99,6 +99,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [#13794](https://github.com/cosmos/cosmos-sdk/pull/13794) `types/module.Manager` now supports the `cosmossdk.io/core/appmodule.AppModule` API via the new `NewManagerFromMap` constructor. * [#14019](https://github.com/cosmos/cosmos-sdk/issues/14019) Remove the interface casting to allow other implementations of a `CommitMultiStore`. +* [#14175](https://github.com/cosmos/cosmos-sdk/pull/14175) Add `server.DefaultBaseappOptions(appopts)` function to reduce boiler plate in root.go. ### State Machine Breaking From f7cd144bcbd711fcc62bad5baf5d53e165d711fb Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 6 Dec 2022 13:11:40 +0100 Subject: [PATCH 4/4] fix spelling --- server/util.go | 2 +- simapp/simd/cmd/root.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/util.go b/server/util.go index ab3a85e527d6..ce253c0d9c0c 100644 --- a/server/util.go +++ b/server/util.go @@ -413,7 +413,7 @@ func openTraceWriter(traceWriterFile string) (w io.WriteCloser, err error) { } // DefaultBaseappOptions returns the default baseapp options provided by the Cosmos SDK -func DeafultBaseappOptions(appOpts types.AppOptions) []func(*baseapp.BaseApp) { +func DefaultBaseappOptions(appOpts types.AppOptions) []func(*baseapp.BaseApp) { var cache sdk.MultiStorePersistentCache if cast.ToBool(appOpts.Get(FlagInterBlockCache)) { diff --git a/simapp/simd/cmd/root.go b/simapp/simd/cmd/root.go index af75c5bcc295..eafc26cd2ffb 100644 --- a/simapp/simd/cmd/root.go +++ b/simapp/simd/cmd/root.go @@ -257,7 +257,7 @@ func newApp( appOpts servertypes.AppOptions, ) servertypes.Application { - baseappOptions := server.DeafultBaseappOptions(appOpts) + baseappOptions := server.DefaultBaseappOptions(appOpts) return simapp.NewSimApp( logger, db, traceStore, true,