Skip to content

Sequencer: can DOS the mempool with transactions that pass the mempool checks then fail execution/stateful checks #979

@lobstergrindset

Description

@lobstergrindset

The sequencer was changed to filter out transactions that do not pass the stateless/stateful/execute steps in prepare_proposal(). This is causing transactions to get stuck inside of the mempool and to be repeatedly fed into the prepare_proposal() block where they are again filtered. Transactions that pass the mempool checks but not the stateful/execute steps exhibit this behavior (e.g. sudo actions with the wrong signing key will get stuck and loop until the signing key's nonce becomes stale because they pass the stateless/nonce checks but fail in the stateful check).

We shouldn't allow this because it's an attack vector for people to fill up the mempool and cometbft prepare_proposal() blocks with these stuck transactions.

We either need a heuristic to kick out these transactions or to let them fail in the blocks like normal.

Metadata

Metadata

Labels

production-qualitynecessary features for production quality softwaresequencerpertaining to the astria-sequencer crate

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions