Ok here we go! Today I gathered all the resources I had saved in the past months by way of online research and tweets by people who are smarter than me.
- ethereum.org: a good first intro to the topic at hand.
- ethereum book chapter 13: reference explanation of the EVM. Solid resource.
- evm.codes: interactive reference for each EVM opcode.
- their about section has a general EVM overview which I found amazing.
- their EVM playground tool is an incredibly useful interactive debugger.
- ethereum yellow paper: this is the EVM bible, pretty much.
- ethereum beige paper: A more friendly version of the yellow paper with easier syntax.
- evm from scratch series: a Python implementation of the yellow paper.
- crypto dev hub EVM tutorials: this page might have useful resources, although most of these seem more production-oriented rather than low-level EVM.
- building a virtual machine youtube series: graduate-level course on VMs.
- a virtual machine from Crafting Interpreters: intricate low-level guide on stack-based virtual machines in C.
- wikipedia stack machine article: because the evm is not the first stack-based virtual machine (and not the last either).
- evm-from-scratch: practical course that requires one to build their own EVM.
- evm-puzzles: a collection of EVM challenges with accompanying writeup
- more-evm-puzzles: 10 more EVM challenges.
That's basically all the time I have for today.
My short-term roadmap is to explore a few of these resources until I find the one I like most, and then try to follow it to create a basic vm in typescript that passes the first few challenges of the evm-from-scratch course.