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

Use evmone APIv2 - initial integration #2480

Open
wants to merge 52 commits into
base: master
Choose a base branch
from
Open

Use evmone APIv2 - initial integration #2480

wants to merge 52 commits into from

Conversation

chfast
Copy link
Member

@chfast chfast commented Nov 5, 2024

Integrate evmone's higher level API for transaction execution.

The new API moves the level of granularity of EVM execution from internal calls to whole transaction. This hides a lot of EVM details from the user (Silkworm), e.g. transient storage, internal calls logic, worm/cold accesses, state revert journal.

evmone API

The API itself is "work in progress", but the goal is to improve it on both sides going into the future. The current best indicator how well it is defined are the additional evmone files added to the compilation of Silkworm. We also use the side branch with some shortcoming on top of the evmone's main branch. The plan is to integrate these changes to evmone over time. Therefore, the length of the branch is good indicator how much more is left to be done.

Performance

I did a performance test of historical block execution up to block 15M on Mainnet. This was used to motivate changes in evmone by eliminating obvious overhead (e.g. transaction should not be validated in evmone, evmone should not compute log's bloom filters). The final result was the sync time was the same (within 1%).

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.

3 participants