The Ethereum Implementation Tutorial
Why did you choose this name?
github advised me to do so:
"Great repository names are short and memorable. Need inspiration? How about cuddly-bassoon."
Why does this repository exist?
I wanted to do an implementation of a simple ethereum client in easy to understand code. And because I like to make myself challenges, to drive further work, I post these challenges and keep snapshots of their status, so that anyone can follow along, implementing their own client. I'll track challenges/features in issues, but am listing the important ones in the readme, too.
I'll also upload test cases to see if my/your code works as intended
- parse RLP encoded data
- write a datastructure to capture RLP data
- encode RLP trees
- encode/decode hex values
- hash byte arrays with keccak256
- hash block0 (0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3)
- find block0
- always have the yellow paper open
- sometimes it's helpful to look into other ethereum implementations (geth, pyethereum, cppethereum, ...)
- expand challenge descriptions, to make it easier to follow along, maybe i'll make a blog post series out of this
- include page references to the yellow paper