- implement Ethereum straight from the Yellow Paper
- (over)simplify things at first for a quick implementation
- no EVM/real contracts for now
- compatibility with real Ethereum: maybe later if at all
- create a small browser game on top of it to teach the basics of Ethereum
There are structs that should cover most necessary data structures, a bit of validatation and execution logic here and there, and a few JSON RPC methods. Almost ready to send transactions...
teth
uses many of the same utility crates as parity-ethereum
(such as rlp
, patricia-trie
, tiny-keccak
and ethereum-types
), but otherwise aims to be an independent implementation of the specification. Also, parity-ethereum
is quite large (~143k LoC) and has many options; teth
will remain small and just implement the specification in a straight-forward manner.
NOTE: Almost every command will fail with 'not implemented yet' at the moment!
Run teth
without arguments to see options and subcommands:
teth 0.0.1
A Toy Ethereum implementation.
USAGE:
teth <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
node Run a node.
help Prints this message or the help of the given subcommand(s)
teth help node
:
USAGE:
teth node [FLAGS]
FLAGS:
--bootstrap Bootstrap the chain (with the genesis block).
-h, --help Prints help information
Install cargo-cov and run ./test_with_coverage.sh
(opens HTML report when done). Requires nightly Rust.