Skip to content

New unified EVM runner #284

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

Merged
merged 2 commits into from
Feb 3, 2021
Merged

New unified EVM runner #284

merged 2 commits into from
Feb 3, 2021

Conversation

sorpaas
Copy link
Member

@sorpaas sorpaas commented Feb 3, 2021

In the past, users of Frontier have to compromise and choose between two different runners:

  • Stack runner, which focuses on Ethereum compliance.
  • Builtin runner, which has better Substrate interoperability.

This PR removes the need of this compromise, and introduces an unified EVM runner that has both good Ethereum compliance and Substrate interoperability. This is done by generalizing the StackExecutor in evm crate to expose a concrete and "dumb" StackState trait. Users of evm now only need to implement StackState trait, and can re-use all other call/create/transact logic in the executor, which has already passed EVM test suites. The impl of StackState in Substrate then uses Substrate's storage transactional layer, which makes it suitable for any Substrate interoperability jobs.

@sorpaas sorpaas merged commit 05a5b8b into master Feb 3, 2021
@sorpaas sorpaas deleted the sp-new-runner branch February 3, 2021 14:22
abhijeetbhagat pushed a commit to web3labs/frontier that referenced this pull request Jan 11, 2023
* New unified EVM runner

* Update cargo lock
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.

None yet

1 participant