diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index cb4a79f28..1de47b867 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -25,6 +25,6 @@ Special thanks to external contributors on this release: ### IMPROVEMENTS - (indexer) \#8625 Fix overriding tx index of duplicated txs. -- [config] \##9054 Flag added to overwrite abciresponses. +- [config] \#9054 Flag added to overwrite abciresponses. ### BUG FIXES diff --git a/cmd/tendermint/commands/reindex_event.go b/cmd/tendermint/commands/reindex_event.go index b147768d4..a6430dd57 100644 --- a/cmd/tendermint/commands/reindex_event.go +++ b/cmd/tendermint/commands/reindex_event.go @@ -157,7 +157,9 @@ func loadStateAndBlockStore(cfg *tmcfg.Config) (*store.BlockStore, state.Store, if err != nil { return nil, nil, err } - stateStore := state.NewStore(stateDB, cfg.RPC.DiscardABCIResponses) + stateStore := state.NewStore(stateDB, state.StoreOptions{ + DiscardABCIResponses: cfg.RPC.DiscardABCIResponses, + }) return blockStore, stateStore, nil } diff --git a/internal/blocksync/v0/reactor_test.go b/internal/blocksync/v0/reactor_test.go index b83faeb17..47a8a6722 100644 --- a/internal/blocksync/v0/reactor_test.go +++ b/internal/blocksync/v0/reactor_test.go @@ -103,7 +103,9 @@ func (rts *reactorTestSuite) addNode(t *testing.T, blockDB := dbm.NewMemDB() stateDB := dbm.NewMemDB() - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) blockStore := store.NewBlockStore(blockDB) state, err := sm.MakeGenesisState(genDoc) diff --git a/internal/blocksync/v2/reactor_test.go b/internal/blocksync/v2/reactor_test.go index 620c4019d..fe7f5ce04 100644 --- a/internal/blocksync/v2/reactor_test.go +++ b/internal/blocksync/v2/reactor_test.go @@ -169,7 +169,9 @@ func newTestReactor(t *testing.T, p testReactorParams) *BlockchainReactor { err := proxyApp.Start() require.NoError(t, err) db := dbm.NewMemDB() - stateStore := sm.NewStore(db, false) + stateStore := sm.NewStore(db, sm.StoreOptions{ + DiscardABCIResponses: false, + }) blockStore := tmstore.NewBlockStore(dbm.NewMemDB()) appl = sm.NewBlockExecutor( stateStore, p.logger, proxyApp.Consensus(), mock.Mempool{}, sm.EmptyEvidencePool{}, blockStore) @@ -494,7 +496,9 @@ func newReactorStore( stateDB := dbm.NewMemDB() blockStore := tmstore.NewBlockStore(dbm.NewMemDB()) - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) state, err := sm.MakeGenesisState(genDoc) require.NoError(t, err) diff --git a/internal/consensus/byzantine_test.go b/internal/consensus/byzantine_test.go index d690ef9fe..3db524da4 100644 --- a/internal/consensus/byzantine_test.go +++ b/internal/consensus/byzantine_test.go @@ -45,7 +45,9 @@ func TestByzantinePrevoteEquivocation(t *testing.T) { func() { logger := consensusLogger().With("test", "byzantine", "validator", i) stateDB := dbm.NewMemDB() // each state needs its own db - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) state, err := sm.MakeGenesisState(genDoc) require.NoError(t, err) require.NoError(t, stateStore.Save(state)) diff --git a/internal/consensus/common_test.go b/internal/consensus/common_test.go index e29f8cdea..0354a90a9 100644 --- a/internal/consensus/common_test.go +++ b/internal/consensus/common_test.go @@ -431,7 +431,9 @@ func newStateWithConfigAndBlockStore( // Make State stateDB := dbm.NewMemDB() - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) if err := stateStore.Save(state); err != nil { // for save height 1's validators info panic(err) } diff --git a/internal/consensus/mempool_test.go b/internal/consensus/mempool_test.go index f468620d9..55ff495f5 100644 --- a/internal/consensus/mempool_test.go +++ b/internal/consensus/mempool_test.go @@ -126,7 +126,7 @@ func TestMempoolTxConcurrentWithCommit(t *testing.T) { config := configSetup(t) state, privVals := randGenesisState(config, 1, false, 10) - stateStore := sm.NewStore(dbm.NewMemDB(), false) + stateStore := sm.NewStore(dbm.NewMemDB(), sm.StoreOptions{DiscardABCIResponses: false}) blockStore := store.NewBlockStore(dbm.NewMemDB()) cs := newStateWithConfigAndBlockStore(config, state, privVals[0], NewCounterApplication(), blockStore) err := stateStore.Save(state) @@ -153,7 +153,7 @@ func TestMempoolRmBadTx(t *testing.T) { state, privVals := randGenesisState(config, 1, false, 10) app := NewCounterApplication() - stateStore := sm.NewStore(dbm.NewMemDB(), false) + stateStore := sm.NewStore(dbm.NewMemDB(), sm.StoreOptions{DiscardABCIResponses: false}) blockStore := store.NewBlockStore(dbm.NewMemDB()) cs := newStateWithConfigAndBlockStore(config, state, privVals[0], app, blockStore) err := stateStore.Save(state) diff --git a/internal/consensus/reactor_test.go b/internal/consensus/reactor_test.go index a1ae74b22..a28a20e93 100644 --- a/internal/consensus/reactor_test.go +++ b/internal/consensus/reactor_test.go @@ -329,7 +329,9 @@ func TestReactorWithEvidence(t *testing.T) { for i := 0; i < n; i++ { stateDB := dbm.NewMemDB() // each state needs its own db - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) state, err := sm.MakeGenesisState(genDoc) require.NoError(t, err) thisConfig, err := ResetConfig(fmt.Sprintf("%s_%d", testName, i)) diff --git a/internal/consensus/replay_file.go b/internal/consensus/replay_file.go index 8e4581668..001652000 100644 --- a/internal/consensus/replay_file.go +++ b/internal/consensus/replay_file.go @@ -300,7 +300,7 @@ func newConsensusStateForReplay(cfg config.BaseConfig, csConfig *config.Consensu if err != nil { tmos.Exit(err.Error()) } - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ DiscardABCIResponses: false }) gdoc, err := sm.MakeGenesisDocFromFile(cfg.GenesisFile()) if err != nil { tmos.Exit(err.Error()) diff --git a/internal/consensus/replay_test.go b/internal/consensus/replay_test.go index 41756e4be..5fda3802f 100644 --- a/internal/consensus/replay_test.go +++ b/internal/consensus/replay_test.go @@ -152,7 +152,9 @@ LOOP: logger := log.NewNopLogger() blockDB := dbm.NewMemDB() stateDB := dbm.NewMemDB() - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) blockStore := store.NewBlockStore(blockDB) state, err := sm.MakeGenesisStateFromFile(consensusReplayConfig.GenesisFile()) require.NoError(t, err) @@ -730,7 +732,9 @@ func testHandshakeReplay(t *testing.T, sim *simulatorTestSuite, nBlocks int, mod stateDB, genesisState, store = stateAndStore(cfg, pubKey, kvstore.ProtocolVersion) } - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) store.chain = chain store.commits = commits @@ -749,7 +753,7 @@ func testHandshakeReplay(t *testing.T, sim *simulatorTestSuite, nBlocks int, mod // run nBlocks against a new client to build up the app state. // use a throwaway tendermint state proxyApp := proxy.NewAppConns(clientCreator2, proxy.NopMetrics()) - stateStore := sm.NewStore(dbm.NewMemDB(), false) + stateStore := sm.NewStore(dbm.NewMemDB(), sm.StoreOptions{DiscardABCIResponses: false}) err := stateStore.Save(genesisState) require.NoError(t, err) buildAppStateFromChain(proxyApp, stateStore, sim.Mempool, sim.Evpool, genesisState, chain, nBlocks, mode, store) @@ -949,7 +953,9 @@ func TestHandshakePanicsIfAppReturnsWrongAppHash(t *testing.T) { pubKey, err := privVal.GetPubKey(context.Background()) require.NoError(t, err) stateDB, state, store := stateAndStore(cfg, pubKey, appVersion) - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) genDoc, _ := sm.MakeGenesisDocFromFile(cfg.GenesisFile()) state.LastValidators = state.Validators.Copy() // mode = 0 for committing all the blocks @@ -1160,7 +1166,9 @@ func stateAndStore( pubKey crypto.PubKey, appVersion uint64) (dbm.DB, sm.State, *mockBlockStore) { stateDB := dbm.NewMemDB() - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) state, _ := sm.MakeGenesisStateFromFile(cfg.GenesisFile()) state.Version.Consensus.App = appVersion store := newMockBlockStore(cfg, state.ConsensusParams) @@ -1241,7 +1249,9 @@ func TestHandshakeUpdatesValidators(t *testing.T) { pubKey, err := privVal.GetPubKey(context.Background()) require.NoError(t, err) stateDB, state, store := stateAndStore(cfg, pubKey, 0x0) - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) oldValAddr := state.Validators.Validators[0].Address diff --git a/internal/consensus/wal_generator.go b/internal/consensus/wal_generator.go index 535953869..7f6f4ea11 100644 --- a/internal/consensus/wal_generator.go +++ b/internal/consensus/wal_generator.go @@ -53,7 +53,9 @@ func WALGenerateNBlocks(t *testing.T, wr io.Writer, numBlocks int) (err error) { } blockStoreDB := dbm.NewMemDB() stateDB := blockStoreDB - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) state, err := sm.MakeGenesisState(genDoc) if err != nil { return fmt.Errorf("failed to make genesis state: %w", err) diff --git a/internal/evidence/pool_test.go b/internal/evidence/pool_test.go index 90c018cd1..6de8c569e 100644 --- a/internal/evidence/pool_test.go +++ b/internal/evidence/pool_test.go @@ -387,7 +387,9 @@ func TestRecoverPendingEvidence(t *testing.T) { func initializeStateFromValidatorSet(t *testing.T, valSet *types.ValidatorSet, height int64) sm.Store { stateDB := dbm.NewMemDB() - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) state := sm.State{ ChainID: evidenceChainID, InitialHeight: 1, diff --git a/internal/inspect/inspect.go b/internal/inspect/inspect.go index b86ec0b6d..7ae7a562e 100644 --- a/internal/inspect/inspect.go +++ b/internal/inspect/inspect.go @@ -77,7 +77,7 @@ func NewFromConfig(logger log.Logger, cfg *config.Config) (*Inspector, error) { if err != nil { return nil, err } - ss := state.NewStore(sDB, false) + ss := state.NewStore(sDB, state.StoreOptions{DiscardABCIResponses: false}) return New(cfg.RPC, bs, ss, sinks, logger), nil } diff --git a/internal/rpc/core/blocks_test.go b/internal/rpc/core/blocks_test.go index 74272d9b2..a1861f089 100644 --- a/internal/rpc/core/blocks_test.go +++ b/internal/rpc/core/blocks_test.go @@ -81,7 +81,9 @@ func TestBlockResults(t *testing.T) { } env := &Environment{} - env.StateStore = sm.NewStore(dbm.NewMemDB(), false) + env.StateStore = sm.NewStore(dbm.NewMemDB(), sm.StoreOptions{ + DiscardABCIResponses: false, + }) err := env.StateStore.SaveABCIResponses(100, results) require.NoError(t, err) mockstore := &mocks.BlockStore{} diff --git a/node/node.go b/node/node.go index 8ce6956fe..93ed3e3eb 100644 --- a/node/node.go +++ b/node/node.go @@ -139,7 +139,7 @@ func makeNode(cfg *config.Config, } closers = append(closers, dbCloser) - stateStore := sm.NewStore(stateDB, cfg.RPC.DiscardABCIResponses) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{DiscardABCIResponses: cfg.RPC.DiscardABCIResponses}) genDoc, err := genesisDocProvider() if err != nil { diff --git a/node/node_test.go b/node/node_test.go index d82110ef5..c3bce6d11 100644 --- a/node/node_test.go +++ b/node/node_test.go @@ -232,7 +232,9 @@ func TestCreateProposalBlock(t *testing.T) { const height int64 = 1 state, stateDB, privVals := state(1, height) - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) maxBytes := 16384 const partSize uint32 = 256 maxEvidenceBytes := int64(maxBytes / 2) @@ -325,7 +327,9 @@ func TestMaxTxsProposalBlockSize(t *testing.T) { const height int64 = 1 state, stateDB, _ := state(1, height) - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) blockStore := store.NewBlockStore(dbm.NewMemDB()) const maxBytes int64 = 16384 const partSize uint32 = 256 @@ -387,7 +391,9 @@ func TestMaxProposalBlockSize(t *testing.T) { logger := log.TestingLogger() state, stateDB, _ := state(types.MaxVotesCount, int64(1)) - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) blockStore := store.NewBlockStore(dbm.NewMemDB()) const maxBytes int64 = 1024 * 1024 * 2 state.ConsensusParams.Block.MaxBytes = maxBytes @@ -625,7 +631,9 @@ func state(nVals int, height int64) (sm.State, dbm.DB, []types.PrivValidator) { // save validators to db for 2 heights stateDB := dbm.NewMemDB() - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) if err := stateStore.Save(s); err != nil { panic(err) } @@ -648,7 +656,9 @@ func loadStatefromGenesis(t *testing.T) sm.State { t.Helper() stateDB := dbm.NewMemDB() - stateStore := sm.NewStore(stateDB, false) + stateStore := sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: false, + }) cfg, err := config.ResetTestRoot("load_state_from_genesis") require.NoError(t, err) diff --git a/node/setup.go b/node/setup.go index 6e5116837..7c943880f 100644 --- a/node/setup.go +++ b/node/setup.go @@ -297,7 +297,9 @@ func createEvidenceReactor( logger = logger.With("module", "evidence") reactorShim := p2p.NewReactorShim(logger, "EvidenceShim", evidence.ChannelShims) - evidencePool, err := evidence.NewPool(logger, evidenceDB, sm.NewStore(stateDB, cfg.RPC.DiscardABCIResponses), blockStore) + evidencePool, err := evidence.NewPool(logger, evidenceDB, sm.NewStore(stateDB, sm.StoreOptions{ + DiscardABCIResponses: cfg.RPC.DiscardABCIResponses, + }), blockStore) if err != nil { return nil, nil, nil, fmt.Errorf("creating evidence pool: %w", err) }