refactor(runtime/v2): use AppI.GetStore() to fetch an initialized RootStore (backport #22205) (#22224)

This commit is contained in:
mergify[bot] 2024-10-10 19:07:35 +02:00 committed by GitHub
parent 0f961f7177
commit 3f4a25d19c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 19 additions and 45 deletions

View File

@ -21,7 +21,7 @@ require (
cosmossdk.io/core v1.0.0-alpha.4
cosmossdk.io/errors/v2 v2.0.0-20240731132947-df72853b3ca5
cosmossdk.io/log v1.4.1
cosmossdk.io/server/v2 v2.0.0-20241008175849-325728a9fd6c // main
cosmossdk.io/server/v2 v2.0.0-20241010142940-dd2369daf2dc // main
cosmossdk.io/server/v2/appmanager v0.0.0-20241008175849-325728a9fd6c // main
cosmossdk.io/server/v2/stf v0.0.0-20241008175849-325728a9fd6c // main
cosmossdk.io/store/v2 v2.0.0-20241008175849-325728a9fd6c // main

View File

@ -24,8 +24,8 @@ cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE=
cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k=
cosmossdk.io/schema v0.3.1-0.20240930054013-7c6e0388a3f9 h1:DmOoS/1PeY6Ih0hAVlJ69kLMUrLV+TCbfICrZtB1vdU=
cosmossdk.io/schema v0.3.1-0.20240930054013-7c6e0388a3f9/go.mod h1:RDAhxIeNB4bYqAlF4NBJwRrgtnciMcyyg0DOKnhNZQQ=
cosmossdk.io/server/v2 v2.0.0-20241008175849-325728a9fd6c h1:SobvpV3A/LPlmQ+mM6YrJHt7rRP6Cp7aVOB2ulwEBEc=
cosmossdk.io/server/v2 v2.0.0-20241008175849-325728a9fd6c/go.mod h1:GEldDSZX6StSNMIazVU6z1dm9cSq+FNMiOCJXmgBeZE=
cosmossdk.io/server/v2 v2.0.0-20241010142940-dd2369daf2dc h1:dZ+mQLnmpc3J4x6n7R0c4t0h7OW4hO9sgOwJxByu66M=
cosmossdk.io/server/v2 v2.0.0-20241010142940-dd2369daf2dc/go.mod h1:GEldDSZX6StSNMIazVU6z1dm9cSq+FNMiOCJXmgBeZE=
cosmossdk.io/server/v2/appmanager v0.0.0-20241008175849-325728a9fd6c h1:MJCOTFyL7lPlMDUFvylEu/2zyFe7NcYe4eMaZowvzk4=
cosmossdk.io/server/v2/appmanager v0.0.0-20241008175849-325728a9fd6c/go.mod h1:/xDfniqVtn5nraiHkNJ4e6rYU0e83YAGsSjwmUA6H8k=
cosmossdk.io/server/v2/stf v0.0.0-20241008175849-325728a9fd6c h1:thOij3diZWxwfKaSJNS6S1SFX+fnOW93emnuu+WSHJY=

View File

@ -8,9 +8,6 @@ import (
"os"
"path/filepath"
"cosmossdk.io/server/v2/store"
"cosmossdk.io/store/v2/root"
abciserver "github.com/cometbft/cometbft/abci/server"
cmtcmd "github.com/cometbft/cometbft/cmd/cometbft/commands"
cmtcfg "github.com/cometbft/cometbft/config"
@ -45,7 +42,6 @@ type CometBFTServer[T transaction.Tx] struct {
initTxCodec transaction.Codec[T]
logger log.Logger
storeBuilder root.Builder
serverOptions ServerOptions[T]
config Config
cfgOptions []CfgOption
@ -53,13 +49,11 @@ type CometBFTServer[T transaction.Tx] struct {
func New[T transaction.Tx](
txCodec transaction.Codec[T],
storeBuilder root.Builder,
serverOptions ServerOptions[T],
cfgOptions ...CfgOption,
) *CometBFTServer[T] {
return &CometBFTServer[T]{
initTxCodec: txCodec,
storeBuilder: storeBuilder,
serverOptions: serverOptions,
cfgOptions: cfgOptions,
}
@ -106,16 +100,8 @@ func (s *CometBFTServer[T]) Init(appI serverv2.AppI[T], cfg map[string]any, logg
indexEvents[e] = struct{}{}
}
storeCfg, err := store.UnmarshalConfig(cfg)
if err != nil {
return err
}
rs, err := s.storeBuilder.Build(logger, storeCfg)
if err != nil {
return err
}
s.logger = logger.With(log.ModuleKey, s.Name())
rs := appI.GetStore()
consensus := NewConsensus(
s.logger,
appI.Name(),

View File

@ -66,7 +66,6 @@ func AppConfig() depinject.Config {
codec.ProvideAddressCodec,
codec.ProvideProtoCodec,
codec.ProvideLegacyAmino,
runtime.ProvideSingletonScopedStoreBuilder,
),
depinject.Invoke(
std.RegisterInterfaces,
@ -83,8 +82,8 @@ func NewSimApp[T transaction.Tx](
var (
app = &SimApp[T]{}
appBuilder *runtime.AppBuilder[T]
storeBuilder root.Builder
err error
storeBuilder root.Builder
// merge the AppConfig and other configuration in one config
appConfig = depinject.Configs(

View File

@ -18,7 +18,6 @@ import (
"cosmossdk.io/core/transaction"
"cosmossdk.io/log"
sdkmath "cosmossdk.io/math"
"cosmossdk.io/runtime/v2"
serverv2 "cosmossdk.io/server/v2"
"cosmossdk.io/store/v2/db"
banktypes "cosmossdk.io/x/bank/types"
@ -39,7 +38,6 @@ func NewTestApp(t *testing.T) (*SimApp[transaction.Tx], context.Context) {
vp.Set("store.app-db-backend", string(db.DBTypeGoLevelDB))
vp.Set(serverv2.FlagHome, t.TempDir())
runtime.ResetSingletonScopedStoreBuilder()
app := NewSimApp[transaction.Tx](logger, vp)
genesis := app.ModuleManager().DefaultGenesis()

View File

@ -10,8 +10,8 @@ require (
cosmossdk.io/depinject v1.0.0
cosmossdk.io/log v1.4.1
cosmossdk.io/math v1.3.0
cosmossdk.io/runtime/v2 v2.0.0-20241009051805-4aeb0539252b // main
cosmossdk.io/server/v2 v2.0.0-20241008175849-325728a9fd6c // main
cosmossdk.io/runtime/v2 v2.0.0-20241010142940-dd2369daf2dc // main
cosmossdk.io/server/v2 v2.0.0-20241010142940-dd2369daf2dc // main
cosmossdk.io/server/v2/cometbft v0.0.0-00010101000000-000000000000
cosmossdk.io/store/v2 v2.0.0-20241008175849-325728a9fd6c // main
cosmossdk.io/tools/confix v0.0.0-00010101000000-000000000000

View File

@ -210,12 +210,12 @@ cosmossdk.io/log v1.4.1 h1:wKdjfDRbDyZRuWa8M+9nuvpVYxrEOwbD/CA8hvhU8QM=
cosmossdk.io/log v1.4.1/go.mod h1:k08v0Pyq+gCP6phvdI6RCGhLf/r425UT6Rk/m+o74rU=
cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE=
cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k=
cosmossdk.io/runtime/v2 v2.0.0-20241009051805-4aeb0539252b h1:ncc1ce9iZgUeTNVKkTeJ4tiVEgGGpPRk7I28PhzFqqY=
cosmossdk.io/runtime/v2 v2.0.0-20241009051805-4aeb0539252b/go.mod h1:pmne/XLLzEbQ6JeM/nQoZVvK19ZtMvvEMq6qOMp9MHs=
cosmossdk.io/runtime/v2 v2.0.0-20241010142940-dd2369daf2dc h1:ewTrkT9DO+5jQJj9AU9m48k9oi8lrpQiX+PfZn7iLe0=
cosmossdk.io/runtime/v2 v2.0.0-20241010142940-dd2369daf2dc/go.mod h1:pmne/XLLzEbQ6JeM/nQoZVvK19ZtMvvEMq6qOMp9MHs=
cosmossdk.io/schema v0.3.1-0.20240930054013-7c6e0388a3f9 h1:DmOoS/1PeY6Ih0hAVlJ69kLMUrLV+TCbfICrZtB1vdU=
cosmossdk.io/schema v0.3.1-0.20240930054013-7c6e0388a3f9/go.mod h1:RDAhxIeNB4bYqAlF4NBJwRrgtnciMcyyg0DOKnhNZQQ=
cosmossdk.io/server/v2 v2.0.0-20241008175849-325728a9fd6c h1:SobvpV3A/LPlmQ+mM6YrJHt7rRP6Cp7aVOB2ulwEBEc=
cosmossdk.io/server/v2 v2.0.0-20241008175849-325728a9fd6c/go.mod h1:GEldDSZX6StSNMIazVU6z1dm9cSq+FNMiOCJXmgBeZE=
cosmossdk.io/server/v2 v2.0.0-20241010142940-dd2369daf2dc h1:dZ+mQLnmpc3J4x6n7R0c4t0h7OW4hO9sgOwJxByu66M=
cosmossdk.io/server/v2 v2.0.0-20241010142940-dd2369daf2dc/go.mod h1:GEldDSZX6StSNMIazVU6z1dm9cSq+FNMiOCJXmgBeZE=
cosmossdk.io/server/v2/appmanager v0.0.0-20241008175849-325728a9fd6c h1:MJCOTFyL7lPlMDUFvylEu/2zyFe7NcYe4eMaZowvzk4=
cosmossdk.io/server/v2/appmanager v0.0.0-20241008175849-325728a9fd6c/go.mod h1:/xDfniqVtn5nraiHkNJ4e6rYU0e83YAGsSjwmUA6H8k=
cosmossdk.io/server/v2/stf v0.0.0-20241008175849-325728a9fd6c h1:thOij3diZWxwfKaSJNS6S1SFX+fnOW93emnuu+WSHJY=

View File

@ -19,7 +19,6 @@ import (
"cosmossdk.io/server/v2/cometbft"
serverstore "cosmossdk.io/server/v2/store"
"cosmossdk.io/simapp/v2"
"cosmossdk.io/store/v2/root"
confixcmd "cosmossdk.io/tools/confix/cmd"
"github.com/cosmos/cosmos-sdk/client"
@ -44,7 +43,6 @@ func newApp[T transaction.Tx](logger log.Logger, viper *viper.Viper) serverv2.Ap
func initRootCmd[T transaction.Tx](
rootCmd *cobra.Command,
txConfig client.TxConfig,
storeBuilder root.Builder,
moduleManager *runtimev2.MM[T],
) {
cfg := sdk.GetConfig()
@ -54,7 +52,7 @@ func initRootCmd[T transaction.Tx](
genutilcli.InitCmd(moduleManager),
debug.Cmd(),
confixcmd.ConfigCommand(),
NewTestnetCmd(storeBuilder, moduleManager),
NewTestnetCmd(moduleManager),
)
logger, err := serverv2.NewLogger(viper.New(), rootCmd.OutOrStdout())
@ -79,12 +77,11 @@ func initRootCmd[T transaction.Tx](
initServerConfig(),
cometbft.New(
&genericTxDecoder[T]{txConfig},
storeBuilder,
initCometOptions[T](),
initCometConfig(),
),
grpc.New[T](),
serverstore.New[T](storeBuilder),
serverstore.New[T](),
telemetry.New[T](),
); err != nil {
panic(err)

View File

@ -14,7 +14,6 @@ import (
"cosmossdk.io/log"
"cosmossdk.io/runtime/v2"
"cosmossdk.io/simapp/v2"
"cosmossdk.io/store/v2/root"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/config"
@ -32,7 +31,6 @@ func NewRootCmd[T transaction.Tx]() *cobra.Command {
autoCliOpts autocli.AppOptions
moduleManager *runtime.MM[T]
clientCtx client.Context
storeBuilder root.Builder
)
if err := depinject.Inject(
@ -41,7 +39,6 @@ func NewRootCmd[T transaction.Tx]() *cobra.Command {
depinject.Provide(ProvideClientContext),
depinject.Supply(log.NewNopLogger()),
),
&storeBuilder,
&autoCliOpts,
&moduleManager,
&clientCtx,
@ -74,7 +71,7 @@ func NewRootCmd[T transaction.Tx]() *cobra.Command {
},
}
initRootCmd(rootCmd, clientCtx.TxConfig, storeBuilder, moduleManager)
initRootCmd(rootCmd, clientCtx.TxConfig, moduleManager)
nodeCmds := nodeservice.NewNodeCommands()
autoCliOpts.ModuleOptions = make(map[string]*autocliv1.ModuleOptions)

View File

@ -23,7 +23,6 @@ import (
"cosmossdk.io/server/v2/api/grpc"
"cosmossdk.io/server/v2/cometbft"
"cosmossdk.io/server/v2/store"
"cosmossdk.io/store/v2/root"
banktypes "cosmossdk.io/x/bank/types"
stakingtypes "cosmossdk.io/x/staking/types"
@ -87,7 +86,7 @@ func addTestnetFlagsToCmd(cmd *cobra.Command) {
// NewTestnetCmd creates a root testnet command with subcommands to run an in-process testnet or initialize
// validator configuration files for running a multi-validator testnet in a separate process
func NewTestnetCmd[T transaction.Tx](sb root.Builder, mm *runtimev2.MM[T]) *cobra.Command {
func NewTestnetCmd[T transaction.Tx](mm *runtimev2.MM[T]) *cobra.Command {
testnetCmd := &cobra.Command{
Use: "testnet",
Short: "subcommands for starting or configuring local testnets",
@ -96,13 +95,13 @@ func NewTestnetCmd[T transaction.Tx](sb root.Builder, mm *runtimev2.MM[T]) *cobr
RunE: client.ValidateCmd,
}
testnetCmd.AddCommand(testnetInitFilesCmd(sb, mm))
testnetCmd.AddCommand(testnetInitFilesCmd(mm))
return testnetCmd
}
// testnetInitFilesCmd returns a cmd to initialize all files for CometBFT testnet and application
func testnetInitFilesCmd[T transaction.Tx](sb root.Builder, mm *runtimev2.MM[T]) *cobra.Command {
func testnetInitFilesCmd[T transaction.Tx](mm *runtimev2.MM[T]) *cobra.Command {
cmd := &cobra.Command{
Use: "init-files",
Short: "Initialize config directories & files for a multi-validator testnet running locally via separate processes (e.g. Docker Compose or similar)",
@ -143,7 +142,7 @@ Example:
return err
}
return initTestnetFiles(clientCtx, sb, cmd, config, mm, args)
return initTestnetFiles(clientCtx, cmd, config, mm, args)
},
}
@ -165,7 +164,6 @@ const nodeDirPerm = 0o755
// initTestnetFiles initializes testnet files for a testnet to be run in a separate process
func initTestnetFiles[T transaction.Tx](
clientCtx client.Context,
sb root.Builder,
cmd *cobra.Command,
nodeConfig *cmtconfig.Config,
mm *runtimev2.MM[T],
@ -340,11 +338,10 @@ func initTestnetFiles[T transaction.Tx](
// Write server config
cometServer := cometbft.New[T](
&genericTxDecoder[T]{clientCtx.TxConfig},
sb,
cometbft.ServerOptions[T]{},
cometbft.OverwriteDefaultConfigTomlConfig(nodeConfig),
)
storeServer := store.New[T](sb)
storeServer := store.New[T]()
grpcServer := grpc.New[T](grpc.OverwriteDefaultConfig(grpcConfig))
server := serverv2.NewServer[T](log.NewNopLogger(), serverCfg, cometServer, grpcServer, storeServer)
err = server.WriteConfig(filepath.Join(nodeDir, "config"))