Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem: v0.50.x is outdated #392

Merged
merged 39 commits into from
Jun 4, 2024
Merged
Changes from 1 commit
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
87ad797
build(deps): Bump github.com/cosmos/gogoproto from 1.4.11 to 1.4.12 (…
dependabot[bot] Mar 21, 2024
a0faab3
feat(x/gov): emit proposer address in submit proposal event (backport…
mergify[bot] Mar 24, 2024
9c53142
feat(x/gov): emit depositor in `proposal_deposit` event (backport #19…
mergify[bot] Mar 25, 2024
d78edac
reuse fromAddrString (minor cleanup) (#19881)
yihuang Mar 27, 2024
8641cd2
feat(client): replace `event-query-tx-for` with `wait-tx` (backport #…
mergify[bot] Mar 27, 2024
7b35e36
feat(server): add custom start handler (backport #19854) (#19884)
mergify[bot] Mar 28, 2024
405471b
build(deps): Bump cosmossdk.io/store from 1.0.2 to 1.1.0 (#19810)
dependabot[bot] Mar 28, 2024
f63e5fd
docs(x/mint): Fix inconsistency in mint docs (backport #19915) (#19925)
mergify[bot] Apr 3, 2024
4b71767
build(deps): Bump github.com/cosmos/iavl from 1.1.1 to 1.1.2 (#19985)
dependabot[bot] Apr 10, 2024
525b720
fix(client/v2): add encoder for `cosmos.base.v1beta1.DecCoin` (backpo…
mergify[bot] Apr 10, 2024
f76c659
fix(mempool): use no-op mempool as default (backport #19970) (#20008)
mergify[bot] Apr 11, 2024
974a24c
feat: Conditionally emit metrics based on enablement (backport #19903…
mergify[bot] Apr 12, 2024
452632f
fix(x/bank): align query with multi denoms for send-enabled (backport…
mergify[bot] Apr 12, 2024
521ebe5
fix: Implement gogoproto customtype to secp256r1 keys (backport #2002…
mergify[bot] Apr 13, 2024
741b01c
fix(client/v2): respect output format from client ctx (backport #2003…
mergify[bot] Apr 15, 2024
d6a0fa1
build(deps): Bump cosmossdk.io/x/tx from 0.13.1 to 0.13.2 (#20042)
dependabot[bot] Apr 15, 2024
dafcc78
feat(x/bank): support depinject for send restrictions (backport #2001…
mergify[bot] Apr 15, 2024
9941498
fix(baseapp): don't share global gas meter in tx execution (backport …
mergify[bot] Apr 16, 2024
49c3ae6
fix: secp256r1 json missing quotes (backport #20060) (#20069)
mergify[bot] Apr 17, 2024
a2abf1a
build(deps): Bump github.com/cosmos/cosmos-proto from 1.0.0-beta.4 to…
dependabot[bot] Apr 19, 2024
2a32f42
feat(client/v2): implement version filtering using annotation (backpo…
mergify[bot] Apr 19, 2024
4bd0e02
chore: prepare v0.50.6 (#19998)
julienrbrt Apr 21, 2024
0a682f7
fix: use timestamp for sim log file name (backport #20108) (#20111)
mergify[bot] Apr 21, 2024
fcb9d84
fix(x/authz,x/feegrant): check blocked address (#20102)
julienrbrt Apr 21, 2024
c4d9a49
chore: update v0.50.6 release notes (#20124)
julienrbrt Apr 22, 2024
a42a85a
build(deps): bump sdk in modules (#20126)
julienrbrt Apr 22, 2024
3437fd5
docs(gas/fees): Update block gas documentation (backport #20128) (#20…
mergify[bot] Apr 22, 2024
7828a00
fix(baseapp): avoid header height overwrite block height (backport #2…
mergify[bot] Apr 22, 2024
ad8c205
docs: fix broken link (backport #20133) (#20138)
mergify[bot] Apr 22, 2024
bb9f451
build(deps): bump modules in simapp (#20137)
julienrbrt Apr 22, 2024
d4896c2
build(deps): Bump cosmossdk.io/x/tx from 0.13.2 to 0.13.3 (#20152)
dependabot[bot] Apr 23, 2024
016389c
docs: add authz reference info in the circuit antehandler (backport #…
mergify[bot] Apr 23, 2024
66ac784
fix(testsuite/sims): set all signatures (backport #20151) (#20185)
mergify[bot] Apr 25, 2024
f74c0e9
build(deps): Bump github.com/cometbft/cometbft from 0.38.6 to 0.38.7 …
dependabot[bot] Apr 29, 2024
a65c2f7
fix(server): bootstrap-state command can't parse latest genesis forma…
mergify[bot] Apr 29, 2024
8ffc807
fix: remove txs from mempool when antehandler fails in recheck (backp…
mergify[bot] May 2, 2024
c42a5e1
Merge remote-tracking branch 'origin/release/v0.50.x' into release/v0…
mmsqe May 3, 2024
d745b17
fix resolve
mmsqe May 3, 2024
0bd0905
align dependencies
mmsqe Jun 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat(server): add custom start handler (backport cosmos#19854) (cosmo…
…s#19884)

Co-authored-by: Julien Robert <[email protected]>
mergify[bot] and julienrbrt authored Mar 28, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit 7b35e363296290fa0fabe59c4988e890a42c5670
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -45,6 +45,7 @@ Ref: https://keepachangelog.com/en/1.0.0/

### Improvements

* (server) [#19884](https://github.com/cosmos/cosmos-sdk/pull/19884) Add start customizability to start command options.
* (x/gov) [#19853](https://github.com/cosmos/cosmos-sdk/pull/19853) Emit `depositor` in `EventTypeProposalDeposit`.
* (x/gov) [#19844](https://github.com/cosmos/cosmos-sdk/pull/19844) Emit the proposer of governance proposals.

39 changes: 24 additions & 15 deletions server/start.go
Original file line number Diff line number Diff line change
@@ -115,8 +115,12 @@ type StartCmdOptions struct {
// PostSetup can be used to setup extra services under the same cancellable context,
// it's not called in stand-alone mode, only for in-process mode.
PostSetup func(svrCtx *Context, clientCtx client.Context, ctx context.Context, g *errgroup.Group) error
// PostSetupStandalone can be used to setup extra services under the same cancellable context,
PostSetupStandalone func(svrCtx *Context, clientCtx client.Context, ctx context.Context, g *errgroup.Group) error
// AddFlags add custom flags to start cmd
AddFlags func(cmd *cobra.Command)
// StartCommandHanlder can be used to customize the start command handler
StartCommandHandler func(svrCtx *Context, clientCtx client.Context, appCreator types.AppCreator, inProcessConsensus bool, opts StartCmdOptions) error
}

// StartCmd runs the service passed in, either stand-alone or in-process with
@@ -132,6 +136,10 @@ func StartCmdWithOptions(appCreator types.AppCreator, defaultNodeHome string, op
opts.DBOpener = openDB
}

if opts.StartCommandHandler == nil {
opts.StartCommandHandler = start
}

cmd := &cobra.Command{
Use: "start",
Short: "Run the full node",
@@ -187,7 +195,7 @@ is performed. Note, when enabled, gRPC will also be automatically enabled.
}

err = wrapCPUProfile(serverCtx, func() error {
return start(serverCtx, clientCtx, appCreator, withCMT, opts)
return opts.StartCommandHandler(serverCtx, clientCtx, appCreator, withCMT, opts)
})

serverCtx.Logger.Debug("received quit signal")
@@ -271,14 +279,17 @@ func startStandAlone(svrCtx *Context, svrCfg serverconfig.Config, clientCtx clie
return err
}

cmtCfg := svrCtx.Config
home := cmtCfg.RootDir

err = startAPIServer(ctx, g, cmtCfg, svrCfg, clientCtx, svrCtx, app, home, grpcSrv, metrics)
err = startAPIServer(ctx, g, svrCfg, clientCtx, svrCtx, app, svrCtx.Config.RootDir, grpcSrv, metrics)
if err != nil {
return err
}

if opts.PostSetupStandalone != nil {
if err := opts.PostSetupStandalone(svrCtx, clientCtx, ctx, g); err != nil {
return err
}
}

g.Go(func() error {
if err := svr.Start(); err != nil {
svrCtx.Logger.Error("failed to start out-of-process ABCI server", "err", err)
@@ -299,8 +310,6 @@ func startInProcess(svrCtx *Context, svrCfg serverconfig.Config, clientCtx clien
metrics *telemetry.Metrics, opts StartCmdOptions,
) error {
cmtCfg := svrCtx.Config
home := cmtCfg.RootDir

gRPCOnly := svrCtx.Viper.GetBool(flagGRPCOnly)

g, ctx := getCtx(svrCtx, true)
@@ -336,7 +345,7 @@ func startInProcess(svrCtx *Context, svrCfg serverconfig.Config, clientCtx clien
return err
}

err = startAPIServer(ctx, g, cmtCfg, svrCfg, clientCtx, svrCtx, app, home, grpcSrv, metrics)
err = startAPIServer(ctx, g, svrCfg, clientCtx, svrCtx, app, cmtCfg.RootDir, grpcSrv, metrics)
if err != nil {
return err
}
@@ -499,7 +508,6 @@ func startGrpcServer(
func startAPIServer(
ctx context.Context,
g *errgroup.Group,
cmtCfg *cmtcfg.Config,
svrCfg serverconfig.Config,
clientCtx client.Context,
svrCtx *Context,
@@ -606,7 +614,7 @@ func startApp(svrCtx *Context, appCreator types.AppCreator, opts StartCmdOptions
}

if isTestnet, ok := svrCtx.Viper.Get(KeyIsTestnet).(bool); ok && isTestnet {
app, err = testnetify(svrCtx, home, appCreator, db, traceWriter)
app, err = testnetify(svrCtx, appCreator, db, traceWriter)
if err != nil {
return app, traceCleanupFn, err
}
@@ -632,6 +640,10 @@ func InPlaceTestnetCreator(testnetAppCreator types.AppCreator) *cobra.Command {
opts.DBOpener = openDB
}

if opts.StartCommandHandler == nil {
opts.StartCommandHandler = start
}

cmd := &cobra.Command{
Use: "in-place-testnet [newChainID] [newOperatorAddress]",
Short: "Create and start a testnet from current local state",
@@ -696,7 +708,7 @@ you want to test the upgrade handler itself.
serverCtx.Viper.Set(KeyNewOpAddr, newOperatorAddress)

err = wrapCPUProfile(serverCtx, func() error {
return start(serverCtx, clientCtx, testnetAppCreator, withCMT, opts)
return opts.StartCommandHandler(serverCtx, clientCtx, testnetAppCreator, withCMT, opts)
})

serverCtx.Logger.Debug("received quit signal")
@@ -719,7 +731,7 @@ you want to test the upgrade handler itself.

// testnetify modifies both state and blockStore, allowing the provided operator address and local validator key to control the network
// that the state in the data folder represents. The chainID of the local genesis file is modified to match the provided chainID.
func testnetify(ctx *Context, home string, testnetAppCreator types.AppCreator, db dbm.DB, traceWriter io.WriteCloser) (types.Application, error) {
func testnetify(ctx *Context, testnetAppCreator types.AppCreator, db dbm.DB, traceWriter io.WriteCloser) (types.Application, error) {
config := ctx.Config

newChainID, ok := ctx.Viper.Get(KeyNewChainID).(string)
@@ -765,9 +777,6 @@ func testnetify(ctx *Context, home string, testnetAppCreator types.AppCreator, d
return nil, err
}
validatorAddress := userPubKey.Address()
if err != nil {
return nil, err
}

stateStore := sm.NewStore(stateDB, sm.StoreOptions{
DiscardABCIResponses: config.Storage.DiscardABCIResponses,
29 changes: 29 additions & 0 deletions server/util.go
Original file line number Diff line number Diff line change
@@ -341,6 +341,35 @@ func AddCommands(rootCmd *cobra.Command, defaultNodeHome string, appCreator type
)
}

// AddCommandsWithStartCmdOptions adds server commands with the provided StartCmdOptions.
func AddCommandsWithStartCmdOptions(rootCmd *cobra.Command, defaultNodeHome string, appCreator types.AppCreator, appExport types.AppExporter, opts StartCmdOptions) {
cometCmd := &cobra.Command{
Use: "comet",
Aliases: []string{"cometbft", "tendermint"},
Short: "CometBFT subcommands",
}

cometCmd.AddCommand(
ShowNodeIDCmd(),
ShowValidatorCmd(),
ShowAddressCmd(),
VersionCmd(),
cmtcmd.ResetAllCmd,
cmtcmd.ResetStateCmd,
BootstrapStateCmd(appCreator),
)

startCmd := StartCmdWithOptions(appCreator, defaultNodeHome, opts)

rootCmd.AddCommand(
startCmd,
cometCmd,
ExportCmd(appExport, defaultNodeHome),
version.NewVersionCommand(),
NewRollbackCmd(appCreator, defaultNodeHome),
)
}

// AddTestnetCreatorCommand allows chains to create a testnet from the state existing in their node's data directory.
func AddTestnetCreatorCommand(rootCmd *cobra.Command, appCreator types.AppCreator, addStartFlags types.ModuleInitFlags) {
testnetCreateCmd := InPlaceTestnetCreator(appCreator)
14 changes: 5 additions & 9 deletions simapp/simd/cmd/commands.go
Original file line number Diff line number Diff line change
@@ -21,8 +21,6 @@ import (
"github.com/cosmos/cosmos-sdk/client/pruning"
"github.com/cosmos/cosmos-sdk/client/rpc"
"github.com/cosmos/cosmos-sdk/client/snapshot"
"github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
"github.com/cosmos/cosmos-sdk/server"
serverconfig "github.com/cosmos/cosmos-sdk/server/config"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
@@ -106,8 +104,6 @@ custom-field = "{{ .Custom.CustomField }}"`
func initRootCmd(
rootCmd *cobra.Command,
txConfig client.TxConfig,
interfaceRegistry codectypes.InterfaceRegistry,
appCodec codec.Codec,
basicManager module.BasicManager,
) {
cfg := sdk.GetConfig()
@@ -122,7 +118,11 @@ func initRootCmd(
snapshot.Cmd(newApp),
)

server.AddCommands(rootCmd, simapp.DefaultNodeHome, newApp, appExport, addModuleInitFlags)
server.AddCommandsWithStartCmdOptions(rootCmd, simapp.DefaultNodeHome, newApp, appExport, server.StartCmdOptions{
AddFlags: func(startCmd *cobra.Command) {
crisis.AddModuleInitFlags(startCmd)
},
})

// add keybase, auxiliary RPC, query, genesis, and tx child commands
rootCmd.AddCommand(
@@ -134,10 +134,6 @@ func initRootCmd(
)
}

func addModuleInitFlags(startCmd *cobra.Command) {
crisis.AddModuleInitFlags(startCmd)
}

// genesisCommand builds genesis-related `simd genesis` command. Users may provide application specific commands as a parameter
func genesisCommand(txConfig client.TxConfig, basicManager module.BasicManager, cmds ...*cobra.Command) *cobra.Command {
cmd := genutilcli.Commands(txConfig, basicManager, simapp.DefaultNodeHome)
2 changes: 1 addition & 1 deletion simapp/simd/cmd/root.go
Original file line number Diff line number Diff line change
@@ -96,7 +96,7 @@ func NewRootCmd() *cobra.Command {
},
}

initRootCmd(rootCmd, encodingConfig.TxConfig, encodingConfig.InterfaceRegistry, encodingConfig.Codec, tempApp.BasicModuleManager)
initRootCmd(rootCmd, encodingConfig.TxConfig, tempApp.BasicModuleManager)

// add keyring to autocli opts
autoCliOpts := tempApp.AutoCliOpts()
2 changes: 1 addition & 1 deletion simapp/simd/cmd/root_v2.go
Original file line number Diff line number Diff line change
@@ -84,7 +84,7 @@ func NewRootCmd() *cobra.Command {
},
}

initRootCmd(rootCmd, clientCtx.TxConfig, clientCtx.InterfaceRegistry, clientCtx.Codec, moduleBasicManager)
initRootCmd(rootCmd, clientCtx.TxConfig, moduleBasicManager)

if err := autoCliOpts.EnhanceRootCommand(rootCmd); err != nil {
panic(err)