Skip to content

Conversation

Thomasvdam
Copy link
Member

@Thomasvdam Thomasvdam commented Mar 12, 2025

Motivation

The NoOpMempool accepts any transactions proposed by the proposer and does not do any validation, see https://github.com/cosmos/cosmos-sdk/blob/v0.50.12/baseapp/abci_utils.go#L385. By switching to a different mempool and making sure the bytes which are not valid TXs are not validated we can get the best of both worlds.

Due to an error in the default config prior to cosmos/cosmos-sdk#20008 it seems most of our validators will have a setting for the MaxTs which results in the SenderNonceMempool being selected: https://github.com/cosmos/cosmos-sdk/blob/v0.50.12/server/util.go#L544. Looking at our testnet and mainnet nodes I can confirm that the max-txs attribute in the config/app.toml is set to 5000

For these reasons I think we should be fine with the SenderNonceMempool, but we might want to spend a little more time researching the impact of changing mempool implementations.

Explanation of Changes

With this mempool the default ProcessProposal handler will validate that all TXs are valid before accepting a proposal.

Testing

Added a manual mock for the TX verifier, as this is normally handled by the baseapp.

Related PRs and Issues

N.A.

@Thomasvdam Thomasvdam requested review from hacheigriega and a team March 12, 2025 13:44
With this mempool the default ProcessProposal handler will validate that
all TXs are valid before accepting a proposal.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants