Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/w1nt3r-eth/evm-from-scratch
Super secret 100% practical EVM course. Please do not share
https://github.com/w1nt3r-eth/evm-from-scratch
ethereum evm go python rust typescript
Last synced: 1 day ago
JSON representation
Super secret 100% practical EVM course. Please do not share
- Host: GitHub
- URL: https://github.com/w1nt3r-eth/evm-from-scratch
- Owner: w1nt3r-eth
- Created: 2022-10-17T03:47:54.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-12T23:45:55.000Z (over 1 year ago)
- Last Synced: 2024-12-14T21:04:53.955Z (8 days ago)
- Topics: ethereum, evm, go, python, rust, typescript
- Language: JavaScript
- Homepage: https://evmfromscratch.com/
- Size: 267 KB
- Stars: 680
- Watchers: 10
- Forks: 155
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# EVM From Scratch
![EVM From Scratch](.github/logo.png)
Welcome to **EVM From Scratch**! It's a 100% practical course that will help you better understand the inner workings of the Ethereum Virtual Machine. During this course, we'll implement EVM in your favorite programming language.
## Getting Started
Clone the repo:
```sh
git clone https://github.com/w1nt3r-eth/evm-from-scratch
```This repository contains [`evm.json`](./evm.json) file with more than 100 test cases. Your goal is to create an implementation in any programming language of your choice that passes all tests.
The test cases are organized by complexity: they start with the simplest opcodes and gradually progress to advanced. Each test case has a name, code and expectation. The code is provided as a human-readable instructions list (`asm`) and machine-readable bytecode encoded in hex (`bin`). Your implementation should only look at `bin`, the `asm` is provided to make unit tests easier to debug.
The repository contains templates for JavaScript, TypeScript, Python, Go and Rust. However, you don't have to use the existing templates, you can build your own test suite based on [`evm.json`](./evm.json).
## Credits
All the materials in the repository are made by [w1nt3r.eth](https://twitter.com/w1nt3r_eth). The repository is part of the "EVM From Scratch" course (release date TBD).