Skip to content

SIMD-0297: Relax Invalid Nonced Transactions Constraint #297

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

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

tao-stones
Copy link
Contributor

No description provided.

@tao-stones tao-stones changed the title SIMD-029x: Relax Invalid Nonce Transaction Constraint SIMD-0297: Relax Invalid Nonce Transaction Constraint Jun 5, 2025
@tao-stones tao-stones changed the title SIMD-0297: Relax Invalid Nonce Transaction Constraint SIMD-0297: Relax Invalid Nonced Transactions Constraint Jun 5, 2025
@tao-stones tao-stones marked this pull request as ready for review June 5, 2025 21:52
@ptaffet-jump
Copy link
Contributor

Doesn't this introduce a new DoS vector from a malicious leader?

Copy link

@topointon-jump topointon-jump left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, could we just address my comments adding some clarity around some points? Thanks!

non-state-modifying, non-fee-charging failures, as follows:

- The transaction is not executed.
- The transaction is metered by CU limits.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What specifically does this mean?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This means the CU cost of such a transaction still counts toward the block’s CU limit, even if it isn’t executed or charged a fee. I'll update it


### Proposed Change

Update the replay logic to treat invalid nonce transactions as

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we make it clear that an "invalid nonce transaction" is a transaction that doesn't pass the checks listed above?

@tao-stones
Copy link
Contributor Author

Looks good, could we just address my comments adding some clarity around some points? Thanks!

Thanks for feedback, updates in 57b1fb2

@tao-stones tao-stones force-pushed the relax-invalid-nonce branch from 57b1fb2 to f6d0d6b Compare July 22, 2025 15:01
- No account state is modified, including the nonce account (i.e., nonce is
not advanced).
- The block is not rejected as long as all other transactions replay
successfully.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not included in status cache as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My initial thought was to exclude these transactions from the status cache, since that aligns better with their non-state-modifying nature. The downside, however, is that invalid transactions might be re-executed multiple times, and their status may not be immediately available via RPC.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch. This definitely needs to be mentioned in the SIMD.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If no objection of excluding such transactions from status cache, I'll add it to spec.

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.

6 participants