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

Investigate speeding up EVM execution by pre-compiling EVM bytecode into a more efficient representation #444

Open
matklad opened this issue Feb 15, 2022 · 1 comment

Comments

@matklad
Copy link
Contributor

matklad commented Feb 15, 2022

Today, sputnik VM executes EVM bytecode as is, with little upfront analysis (the only exception is precomputation of valid jump targets). In theory, we can do more up-front analysis and potentially even compile EVM into a different byte code. It's not clear what specific optimizations we can do, but one piece of prior art here is evmone, which implements similar approach:

There are rumors that evmodin implements the same optimizations in Rust, but it's unconfirmed how thorough that port is.

@joshuajbouw
Copy link
Contributor

joshuajbouw commented Feb 15, 2022

This is actually something that evmodin does. It does find out where all the jumps are, and maps them. Also pushes all the data required.

See: https://github.com/vorot93/evmodin/blob/master/src/interpreter.rs#L57-L120

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

No branches or pull requests

2 participants