refactor(runtime/v2): use AppI.GetStore() to fetch an initialized RootStore (backport #22205) (#22224)
This commit is contained in:
parent
0f961f7177
commit
3f4a25d19c
@ -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
|
||||
|
||||
@ -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=
|
||||
|
||||
@ -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(),
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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()
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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=
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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"))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user