Skip to content
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

core/vm: implement full EOF suite [WiP] #6215

Closed
wants to merge 52 commits into from

Conversation

ziogaschr
Copy link
Contributor

@ziogaschr ziogaschr commented Dec 5, 2022

This PR fetches the changes done on ethereum/go-ethereum#26133 for EOF suite, which community aims to include at Shangai's fork.
The upstream's work is not finished yet, so this PR will remain open.
This PR has been created in order we get feedback on it, have progress on Erigon with regards EOF stuff and test them.

We tried to keep the code changes similar to upstream's PR, without changing the code at Erigon side, or bring in more changes than needed from upstream.

At this point tests are passing (after we fix a short glitch with regards Shandong's next PR, which make the test fail) and we are able to sync with Shandong testnet.

Please provide feedback, with changes would you like us do.

gumb0 and others added 30 commits November 29, 2022 14:08
* core/vm: Define 0xfe opcode as INVALID

* core/vm: Remove opInvalid as opUndefined handles it

Co-authored-by: Alex Beregszaszi <[email protected]>
# Conflicts:
#	eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_throw_outer_revert.json
* core/vm: break loop on any error

* core/vm: move ErrExecutionReverted to opRevert()

* core/vm: use "stop token" to stop the loop

* core/vm: unconditionally pc++ in the loop

* core/vm: set return data in instruction impls
# Conflicts:
#	core/vm/analysis.go
#	core/vm/contract.go
#	core/vm/evm.go
#	core/vm/instructions.go
#	core/vm/instructions_test.go
#	core/vm/interpreter.go
#	core/vm/jump_table.go
#	core/vm/stack.go
go.mod Outdated Show resolved Hide resolved
@ziogaschr
Copy link
Contributor Author

@AskAlexSharov here you can find some comments on places in code that triggered our attention. We tried to stick to Erigon logic. Feel free to provide any feedback and we will catch up. Thanks

@meowsbits
Copy link
Contributor

My force-push here drops the nearly-latest two commits that together uselessly add, then remove a configuration condition for Shandong that really belonged over here.

core/vm/contract.go Outdated Show resolved Hide resolved
@yperbasis yperbasis marked this pull request as draft December 8, 2022 13:44
@yperbasis
Copy link
Member

Please merge upstream so that there are no conflicts.

@yperbasis yperbasis marked this pull request as ready for review December 11, 2022 13:35
tests/init.go Show resolved Hide resolved
@yperbasis
Copy link
Member

tests/testdata submodule was downgraded from ethereum/tests@9e058e5 to ethereum/tests@c76c5d2. This is probably by mistake and should be reverted.

@ziogaschr ziogaschr requested a review from yperbasis December 12, 2022 11:04
@ziogaschr
Copy link
Contributor Author

tests/testdata submodule was downgraded from ethereum/tests@9e058e5 to ethereum/tests@c76c5d2. This is probably by mistake and should be reverted.

Done

core/vm/eips.go Outdated Show resolved Hide resolved
Co-authored-by: Andrew Ashikhmin <[email protected]>
core/vm/eips.go Outdated Show resolved Hide resolved
@ziogaschr
Copy link
Contributor Author

@yperbasis I will try to work on the remaining stuff at original go-ethereum PR or fetch any changes they do, whichever comes first.
Maybe you can focus on other stuff if you prefer.

core/vm/evm.go Outdated Show resolved Hide resolved
@yperbasis
Copy link
Member

Closing in favour of PR #6382.

@yperbasis yperbasis closed this Dec 20, 2022
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.

8 participants