-
Notifications
You must be signed in to change notification settings - Fork 206
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
Piersy/cherrypick goetherum access list gas fix #1873
Conversation
Coverage from tests in coverage: 51.6% of statements across all listed packagescoverage: 61.4% of statements in consensus/istanbul coverage: 43.1% of statements in consensus/istanbul/announce coverage: 56.1% of statements in consensus/istanbul/backend coverage: 0.0% of statements in consensus/istanbul/backend/backendtest coverage: 24.3% of statements in consensus/istanbul/backend/internal/replica coverage: 70.8% of statements in consensus/istanbul/core coverage: 50.0% of statements in consensus/istanbul/db coverage: 0.0% of statements in consensus/istanbul/proxy coverage: 65.0% of statements in consensus/istanbul/uptime coverage: 51.8% of statements in consensus/istanbul/validator coverage: 79.2% of statements in consensus/istanbul/validator/randomCommentID: 18d97595a4 |
Looks like revert is not safe for use across transaction boundaries. So instead of reverting changes to state we make a copy.
6a9a3ec
to
a9a5cf6
Compare
Codecov Report
@@ Coverage Diff @@
## master #1873 +/- ##
==========================================
+ Coverage 54.32% 54.35% +0.02%
==========================================
Files 675 675
Lines 88959 88959
==========================================
+ Hits 48330 48355 +25
+ Misses 36981 36952 -29
- Partials 3648 3652 +4
Continue to review full report at Codecov.
|
The gas estimation problem was addressed in #1900, were currently merged up to v1.10.9 and the fix from upstream is included in 1.10.17 so we'll eventually get the upstream fix when we merge v1.10.17 |
Description
This cherry picks ethereum/go-ethereum#24515
Which is a change to ensure that the access list is always emptied before applying a new transaction.
EIP-2929 Added the access list as a way to lower the cost of repeated accesses to the same address within the processing of a single transaction.
Prior to this fix certain code paths allowed gas estimation for a transaction to be initiated with a non empty access list. This resulted in gas estimations being lower than they should be, ultimately resulting in the transaction being rejected when an attempt to execute it is made.
Other changes
This change broke some of our code in the
mycelo/genesis
package where we were previously attempting to revert across multiple transaction boundaries.There could be other situations in the code where we attempt to revert across multiple transaction boundaries, so before we can confidently merge this pr we will need to analyse these cases to see if they could introduce any problems.
Tested
An explanation of how the changes were tested or an explanation as to why they don't need to be.
Related issues
Backwards compatibility
Brief explanation of why these changes are/are not backwards compatible.