Skip to content

Repository files navigation

teth - Toy Ethereum implementation

DocsActions Status

Goals

  • 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

Current state

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...

Difference to parity-ethereum

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.

Usage

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

Development

Coverage

Install cargo-cov and run ./test_with_coverage.sh (opens HTML report when done). Requires nightly Rust.

About

Toy Ethereum implementation (WIP, abandoned)

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages