Skip to content

Commit 48aa755

Browse files
evan-forbescmwatersrootulp
authored
chore!: bump core v0.39.3 (celestiaorg#5639)
bumps core to use new dynamic timeouts, prevent panics, performance improvements, and bug fixes --------- Co-authored-by: Callum Waters <[email protected]> Co-authored-by: Rootul P <[email protected]>
1 parent 556e1be commit 48aa755

File tree

22 files changed

+262
-122
lines changed

22 files changed

+262
-122
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ test-race:
296296
# TODO: Remove the -skip flag once the following tests no longer contain data races.
297297
# https://github.com/celestiaorg/celestia-app/issues/1369
298298
@echo "--> Running tests in race mode"
299-
@go test -timeout 15m ./... -v -race -skip "TestPrepareProposalConsistency|TestIntegrationTestSuite|TestSquareSizeIntegrationTest|TestStandardSDKIntegrationTestSuite|TestTxsimCommandFlags|TestTxsimCommandEnvVar|TestTxsimDefaultKeypath|TestMintIntegrationTestSuite|TestUpgrade|TestMaliciousTestNode|TestBigBlobSuite|TestQGBIntegrationSuite|TestSignerTestSuite|TestPriorityTestSuite|TestTimeInPrepareProposalContext|TestCLITestSuite|TestLegacyUpgrade|TestSignerTwins|TestConcurrentTxSubmission|TestTxClientTestSuite|Test_testnode|TestEvictions|TestEstimateGasUsed|TestEstimateGasPrice|TestWithEstimatorService|TestTxsOverMaxTxSizeGetRejected|TestStart_Success|TestReadBlockchainHeaders|TestPrepareProposalCappingNumberOfMessages|TestGasEstimatorE2E|TestGasEstimatorE2EWithNetworkMinGasPrice"
299+
@go test -timeout 15m ./... -v -race -skip "TestPrepareProposalConsistency|TestIntegrationTestSuite|TestSquareSizeIntegrationTest|TestStandardSDKIntegrationTestSuite|TestTxsimCommandFlags|TestTxsimCommandEnvVar|TestTxsimDefaultKeypath|TestMintIntegrationTestSuite|TestUpgrade|TestMaliciousTestNode|TestBigBlobSuite|TestQGBIntegrationSuite|TestSignerTestSuite|TestPriorityTestSuite|TestTimeInPrepareProposalContext|TestCLITestSuite|TestLegacyUpgrade|TestSignerTwins|TestConcurrentTxSubmission|TestTxClientTestSuite|Test_testnode|TestEvictions|TestEstimateGasUsed|TestEstimateGasPrice|TestWithEstimatorService|TestTxsOverMaxTxSizeGetRejected|TestStart_Success|TestReadBlockchainHeaders|TestPrepareProposalCappingNumberOfMessages|TestGasEstimatorE2E|TestGasEstimatorE2EWithNetworkMinGasPrice|TestRejections|TestClaimRewardsAfterFullUndelegation"
300300
.PHONY: test-race
301301

302302
## test-bench: Run benchmark unit tests.

app/app.go

Lines changed: 27 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -190,19 +190,20 @@ type App struct {
190190
BasicManager module.BasicManager
191191
ModuleManager *module.Manager
192192
configurator module.Configurator
193-
// timeoutCommit is used to override the default timeoutCommit. This is
193+
// blockTime is used to override the default TimeoutHeightDelay. This is
194194
// useful for testing purposes and should not be used on public networks
195195
// (Arabica, Mocha, or Mainnet Beta).
196-
timeoutCommit time.Duration
196+
delayedPrecommitTimeout time.Duration
197197
}
198198

199199
// New returns a reference to an uninitialized app. Callers must subsequently
200-
// call app.Info or app.InitChain to initialize the baseapp.
200+
// call app.Info or app.InitChain to initialize the baseapp. Setting
201+
// delayedPrecommitTimeout to 0 will result in using the default value.
201202
func New(
202203
logger log.Logger,
203204
db dbm.DB,
204205
traceStore io.Writer,
205-
timeoutCommit time.Duration,
206+
delayedPrecommitTimeout time.Duration,
206207
appOpts servertypes.AppOptions,
207208
baseAppOptions ...func(*baseapp.BaseApp),
208209
) *App {
@@ -219,12 +220,16 @@ func New(
219220

220221
govModuleAddr := authtypes.NewModuleAddress(govtypes.ModuleName).String()
221222

223+
if delayedPrecommitTimeout == 0 {
224+
delayedPrecommitTimeout = appconsts.DelayedPrecommitTimeout
225+
}
226+
222227
app := &App{
223-
BaseApp: baseApp,
224-
keys: keys,
225-
tkeys: tkeys,
226-
memKeys: memKeys,
227-
timeoutCommit: timeoutCommit,
228+
BaseApp: baseApp,
229+
keys: keys,
230+
tkeys: tkeys,
231+
memKeys: memKeys,
232+
delayedPrecommitTimeout: delayedPrecommitTimeout,
228233
}
229234

230235
// needed for migration from x/params -> module's ownership of own params
@@ -509,8 +514,7 @@ func (app *App) Info(req *abci.RequestInfo) (*abci.ResponseInfo, error) {
509514
return nil, err
510515
}
511516

512-
res.TimeoutInfo.TimeoutCommit = app.TimeoutCommit()
513-
res.TimeoutInfo.TimeoutPropose = app.TimeoutPropose()
517+
res.TimeoutInfo = app.TimeoutInfo()
514518

515519
return res, nil
516520
}
@@ -563,8 +567,7 @@ func (app *App) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) {
563567
}
564568
}
565569

566-
res.TimeoutInfo.TimeoutCommit = app.TimeoutCommit()
567-
res.TimeoutInfo.TimeoutPropose = app.TimeoutPropose()
570+
res.TimeoutInfo = app.TimeoutInfo()
568571

569572
return res, nil
570573
}
@@ -586,9 +589,7 @@ func (app *App) InitChainer(ctx sdk.Context, req *abci.RequestInitChain) (*abci.
586589
return nil, err
587590
}
588591

589-
res.TimeoutInfo.TimeoutCommit = app.TimeoutCommit()
590-
res.TimeoutInfo.TimeoutPropose = app.TimeoutPropose()
591-
592+
res.TimeoutInfo = app.TimeoutInfo()
592593
return res, nil
593594
}
594595

@@ -811,19 +812,15 @@ func (app *App) NewProposalContext(header tmproto.Header) sdk.Context {
811812
return ctx
812813
}
813814

814-
// TimeoutCommit returns the timeout commit duration to be used on the next block.
815-
// It returns the user specified value as overridden by the --timeout-commit flag, otherwise
816-
// the default timeout commit value for the current app version.
817-
func (app *App) TimeoutCommit() time.Duration {
818-
if app.timeoutCommit != 0 {
819-
return app.timeoutCommit
815+
func (app *App) TimeoutInfo() abci.TimeoutInfo {
816+
return abci.TimeoutInfo{
817+
TimeoutPropose: appconsts.TimeoutPropose,
818+
TimeoutProposeDelta: appconsts.TimeoutProposeDelta,
819+
TimeoutCommit: appconsts.TimeoutCommit,
820+
TimeoutPrevote: appconsts.TimeoutPrevote,
821+
TimeoutPrevoteDelta: appconsts.TimeoutPrevoteDelta,
822+
TimeoutPrecommit: appconsts.TimeoutPrecommit,
823+
TimeoutPrecommitDelta: appconsts.TimeoutPrecommitDelta,
824+
DelayedPrecommitTimeout: app.delayedPrecommitTimeout,
820825
}
821-
822-
return appconsts.TimeoutCommit
823-
}
824-
825-
// TimeoutPropose returns the timeout propose duration to be used on the next block.
826-
// It returns the default timeout propose value for the current app version.
827-
func (app *App) TimeoutPropose() time.Duration {
828-
return appconsts.TimeoutPropose
829826
}

app/grpc/gasestimation/gas_estimator_e2e_test.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func TestGasEstimatorE2E(t *testing.T) {
3939
// Create test node configuration
4040
cfg := testnode.DefaultConfig().
4141
WithFundedAccounts(accounts...).
42-
WithTimeoutCommit(100 * time.Millisecond).
42+
WithDelayedPrecommitTimeout(100 * time.Millisecond).
4343
WithGenesis(
4444
genesis.NewDefaultGenesis().
4545
WithValidators(genesis.NewDefaultValidator(testnode.DefaultValidatorAccountName)).
@@ -51,6 +51,10 @@ func TestGasEstimatorE2E(t *testing.T) {
5151
// Start the test network
5252
cctx, _, _ := testnode.NewNetwork(t, cfg)
5353

54+
// Wait for the first block to ensure the node is ready
55+
_, err := cctx.WaitForHeight(1)
56+
require.NoError(t, err)
57+
5458
estimatorClient := gasestimation.NewGasEstimatorClient(cctx.GRPCClient)
5559
gasPriceResp, err := estimatorClient.EstimateGasPrice(ctx, &gasestimation.EstimateGasPriceRequest{})
5660
require.NoError(t, err)
@@ -110,7 +114,7 @@ func TestGasEstimatorE2EWithNetworkMinGasPrice(t *testing.T) {
110114
// Create test node configuration
111115
cfg := testnode.DefaultConfig().
112116
WithFundedAccounts(accounts...).
113-
WithTimeoutCommit(100 * time.Millisecond).
117+
WithDelayedPrecommitTimeout(100 * time.Millisecond).
114118
WithGenesis(
115119
genesis.NewDefaultGenesis().
116120
WithValidators(genesis.NewDefaultValidator(testnode.DefaultValidatorAccountName)).
@@ -124,6 +128,10 @@ func TestGasEstimatorE2EWithNetworkMinGasPrice(t *testing.T) {
124128
// Start the test network
125129
cctx, _, _ := testnode.NewNetwork(t, cfg)
126130

131+
// Wait for the first block to ensure the node is ready
132+
_, err := cctx.WaitForHeight(1)
133+
require.NoError(t, err)
134+
127135
estimatorClient := gasestimation.NewGasEstimatorClient(cctx.GRPCClient)
128136
gasPriceResp, err := estimatorClient.EstimateGasPrice(ctx, &gasestimation.EstimateGasPriceRequest{})
129137
require.NoError(t, err)

app/test/gas_estimation_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func TestEstimateGasPrice(t *testing.T) {
9797
// price, then test the gas estimator API.
9898
accountNames := testfactory.GenerateAccounts(10)
9999
cfg := testnode.DefaultConfig().WithFundedAccounts(accountNames...).
100-
WithTimeoutCommit(10 * time.Second) // to have all transactions in the mempool without being included in a block
100+
WithDelayedPrecommitTimeout(10 * time.Second) // to have all transactions in the mempool without being included in a block
101101

102102
cctx, _, _ := testnode.NewNetwork(t, cfg)
103103

app/test/integration_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func (s *IntegrationTestSuite) SetupSuite() {
4545
t := s.T()
4646
s.accounts = testnode.RandomAccounts(142)
4747

48-
cfg := testnode.DefaultConfig().WithFundedAccounts(s.accounts...).WithTimeoutCommit(time.Millisecond * 500)
48+
cfg := testnode.DefaultConfig().WithFundedAccounts(s.accounts...).WithDelayedPrecommitTimeout(time.Millisecond * 500)
4949
cctx, _, _ := testnode.NewNetwork(t, cfg)
5050

5151
s.cctx = cctx

app/test/priority_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func (s *PriorityTestSuite) SetupSuite() {
5151
cfg := testnode.DefaultConfig().
5252
WithFundedAccounts(s.accountNames...).
5353
// use a long block time to guarantee that some transactions are included in the same block
54-
WithTimeoutCommit(time.Second)
54+
WithDelayedPrecommitTimeout(time.Second)
5555

5656
cctx, _, _ := testnode.NewNetwork(t, cfg)
5757
s.cctx = cctx

app/test/square_size_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ func (s *SquareSizeIntegrationTest) SetupSuite() {
4848
s.enc = encoding.MakeConfig(app.ModuleEncodingRegisters...)
4949
cfg := testnode.DefaultConfig().
5050
WithModifiers(genesis.ImmediateProposals(s.enc.Codec)).
51-
WithTimeoutCommit(time.Millisecond * 500). // long timeout commit to provide time for submitting txs
52-
WithFundedAccounts("txsim") // add a specific txsim account
51+
WithDelayedPrecommitTimeout(time.Millisecond * 500). // long time to provide time for submitting txs
52+
WithFundedAccounts("txsim") // add a specific txsim account
5353

5454
cctx, rpcAddr, grpcAddr := testnode.NewNetwork(t, cfg)
5555
s.cctx = cctx

cmd/celestia-appd/cmd/app_server.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cmd
22

33
import (
44
"io"
5+
"time"
56

67
"cosmossdk.io/log"
78
"github.com/celestiaorg/celestia-app/v6/app"
@@ -12,11 +13,19 @@ import (
1213
)
1314

1415
func NewAppServer(logger log.Logger, db dbm.DB, traceStore io.Writer, appOptions servertypes.AppOptions) servertypes.Application {
16+
// Check for the new --delayed-precommit-timeout flag first, then fall back to deprecated --timeout-commit
17+
var delayedPrecommitTimeout time.Duration
18+
if delayedPrecommitTimeoutFromFlag := appOptions.Get(DelayedPrecommitTimeoutFlag); delayedPrecommitTimeoutFromFlag != nil {
19+
delayedPrecommitTimeout = cast.ToDuration(delayedPrecommitTimeoutFromFlag)
20+
} else if timeoutCommitFromFlag := appOptions.Get(TimeoutCommitFlag); timeoutCommitFromFlag != nil {
21+
delayedPrecommitTimeout = cast.ToDuration(timeoutCommitFromFlag)
22+
}
23+
1524
return app.New(
1625
logger,
1726
db,
1827
traceStore,
19-
cast.ToDuration(appOptions.Get(TimeoutCommitFlag)),
28+
delayedPrecommitTimeout,
2029
appOptions,
2130
server.DefaultBaseappOptions(appOptions)...,
2231
)

cmd/celestia-appd/cmd/root.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@ const (
3434
UpgradeHeightFlag = "v2-upgrade-height"
3535

3636
// TimeoutCommit is a flag that can be used to override the timeout_commit.
37+
// Deprecated: Use DelayedPrecommitTimeoutFlag instead.
3738
TimeoutCommitFlag = "timeout-commit"
39+
40+
// DelayedPrecommitTimeoutFlag is a flag that can be used to override the DelayedPrecommitTimeout.
41+
DelayedPrecommitTimeoutFlag = "delayed-precommit-timeout"
3842
)
3943

4044
// NewRootCmd creates a new root command for celestia-appd.
@@ -144,6 +148,11 @@ func addStartFlags(startCmd *cobra.Command) {
144148
}
145149

146150
startCmd.Flags().Duration(TimeoutCommitFlag, 0, "Override the application configured timeout_commit. Note: only for testing purposes.")
151+
if err := startCmd.Flags().MarkDeprecated(TimeoutCommitFlag, "Use --delayed-precommit-timeout instead."); err != nil {
152+
panic(err)
153+
}
154+
155+
startCmd.Flags().Duration(DelayedPrecommitTimeoutFlag, 0, "Override the DelayedPrecommitTimeout to control block time. Note: only for testing purposes.")
147156
startCmd.Flags().Bool(FlagForceNoBBR, false, "bypass the requirement to use bbr locally")
148157
}
149158

go.mod

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -251,11 +251,11 @@ require (
251251
go.opentelemetry.io/otel/trace v1.37.0 // indirect
252252
go.uber.org/multierr v1.11.0 // indirect
253253
golang.org/x/arch v0.15.0 // indirect
254-
golang.org/x/crypto v0.40.0 // indirect
255-
golang.org/x/net v0.42.0 // indirect
256-
golang.org/x/sys v0.34.0 // indirect
257-
golang.org/x/term v0.33.0 // indirect
258-
golang.org/x/text v0.27.0 // indirect
254+
golang.org/x/crypto v0.41.0 // indirect
255+
golang.org/x/net v0.43.0 // indirect
256+
golang.org/x/sys v0.35.0 // indirect
257+
golang.org/x/term v0.34.0 // indirect
258+
golang.org/x/text v0.28.0 // indirect
259259
golang.org/x/time v0.9.0 // indirect
260260
google.golang.org/api v0.215.0 // indirect
261261
google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect
@@ -270,8 +270,7 @@ require (
270270
replace (
271271
cosmossdk.io/api => github.com/celestiaorg/cosmos-sdk/api v0.7.6
272272
cosmossdk.io/x/upgrade => github.com/celestiaorg/cosmos-sdk/x/upgrade v0.2.0
273-
// TODO: update to a v0.39.x release after that is created from celestia-core main branch.
274-
github.com/cometbft/cometbft => github.com/celestiaorg/celestia-core v0.39.2
273+
github.com/cometbft/cometbft => github.com/celestiaorg/celestia-core v0.39.3
275274
github.com/cosmos/cosmos-sdk => github.com/celestiaorg/cosmos-sdk v0.51.0
276275
github.com/cosmos/ibc-go/v8 => github.com/celestiaorg/ibc-go/v8 v8.7.2
277276
// goleveldb: canonical version

0 commit comments

Comments
 (0)