ethereum-optimism / ethereum-optimism/asterisc
Use static / dynamic binary translation for RISCV to run the program in native machine codes
- Dominant language
- Go
- Stars
- 109
- Forks
- 28
- PR merge metrics
- No merged PRs in 30d
Description
**Is your feature request related to a problem? Please describe.**
RISCV program running in the interpreter is very slow.
**Describe the solution you'd like**
Use static / dynamic binary translation for RISCV to run the program in native machine codes.
Use qemu and qemu plugin to insert function pointer after each RISCV instruction to check whether it is at the snapshot point, and then compute the hash function in native machine code to support the VM commitment. (no need to mapping state)
Because running native machine codes is way faster than running RISCV code in the interpreter.
Looking for anyone interested in this optimization to work with me.
Contributor guide
Assessment
This issue has not been assessed yet.