This repository has been archived by the owner on Oct 28, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Conversation
This file contains 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
gumb0
force-pushed
the
rollback-empty-code
branch
from
June 26, 2019 16:34
65dedfe
to
4a9ff0f
Compare
Codecov Report
@@ Coverage Diff @@
## master #5641 +/- ##
==========================================
+ Coverage 62.74% 62.76% +0.01%
==========================================
Files 348 348
Lines 29670 29682 +12
Branches 3343 3343
==========================================
+ Hits 18617 18629 +12
- Misses 9841 9842 +1
+ Partials 1212 1211 -1 |
gumb0
force-pushed
the
rollback-empty-code
branch
from
June 26, 2019 16:53
4a9ff0f
to
0b36dc1
Compare
…code. Because it's not allowed to overwrite code now.
gumb0
force-pushed
the
rollback-empty-code
branch
from
June 26, 2019 17:26
0b36dc1
to
2af454b
Compare
gumb0
force-pushed
the
rollback-empty-code
branch
from
June 27, 2019 10:19
d5c1e1a
to
6c55857
Compare
Why is the EIP-689 still a draft? |
@chfast Probably no one cared to accept it yet. There was some discussion recently on All Core Devs call, where @holiman mentioned that it's already implemented, see discussion of "Action 60.6" in https://github.com/ethereum/pm/blob/master/All%20Core%20Devs%20Meetings/Meeting%2061.md |
chfast
approved these changes
Jun 27, 2019
@gumb0 : When would we need to rollback to old code before EIP-689? When there's a chain reorg? |
@halfalicious No, rollback happens any time after exception during transaction execution (for example Out-of-gas or invalid instruction) |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
I think we don't need to save the old code for rollback anymore, because overwriting the code is not allowed according to address collision rules (ethereum/EIPs#684 and https://eips.ethereum.org/EIPS/eip-689) and we never get to rolling back the overwritten code.
A bit of history of this code:
It was written as a fix of incorrect rollback of code overwrite in case of address collision (back then it was possible to overwrite the code)
#4130
#4151
Then in preparation for Byzantium new collision rules were introduced, which applied retroactively to all previous forks, too.
#4384
To quote EIP-689:
This will simplify a little bit the implementation of EIP-1702 Generalized Account Versioning Scheme, because if we don't need to save the old code in journal, then we don't need to save the version either.