[execution] don't inc ExtSeqno in case if tx is not included to block#736
Merged
[execution] don't inc ExtSeqno in case if tx is not included to block#736
Conversation
Un1oR
reviewed
Apr 2, 2025
Un1oR
reviewed
Apr 2, 2025
7e653d9 to
2c9a4fd
Compare
2c9a4fd to
e5d8cd6
Compare
Un1oR
reviewed
Apr 2, 2025
Un1oR
approved these changes
Apr 2, 2025
shermike
suggested changes
Apr 2, 2025
The previous patch (cbed748) fixed the possibility of adding identical transactions to multiple blocks. However, it introduced a regression. Transactions that are not included in a block (and create so-called temporary receipts) could still modify the state. This breaks replay, since the account cannot be brought to the correct state without that transaction. This patch fixes the issue by rolling back ExtSeqno if the transaction is not included in a block. This mainly affects deploy transactions. For execution transactions, gas is paid if `verifyExternal` succeeds, so state changes are valid in that case.
e5d8cd6 to
74127e2
Compare
shermike
approved these changes
Apr 2, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The previous patch
(cbed748) fixed the possibility of adding identical transactions to
multiple blocks. However, it introduced a regression.
Transactions that are not included in a block (and create so-called temporary receipts) could still
modify the state. This breaks replay, since the
account cannot be brought to the correct state
without that transaction.
This patch fixes the issue by rolling back ExtSeqno if the transaction is not included in a block.
This mainly affects deploy transactions. For
execution transactions, gas is paid if
verifyExternalsucceeds, so state changes are valid in that case.