An experimental Zig Ethereum client.
This repo is very experimental, so you have to do some things once.
We use the Zig v0.13 compiler version.
After pulling this repo for the first time, do:
git submodule init
git submodule update -v
You can run something here with:
zig build test
: it attempts to run a particular exec-spec-tests fixtureexec-spec/tests/fixtures/exec-spec/fixture.json
, which is an official spec test fixture. This does a bunch of decoding into EVM types, creates astatedb
with pre-state (and post-state for posterior check), and tries to execute the block transactions.
Now, everything is quite messy until we have a passing test for this official exec-spec-test fixture.
Probably after that, we can refactor a bit the code to create proper modules and define some clear path forward in each module.
To run the (wip) client, type
zig build run
By default, the network is mainnet. You can run the sepolia chain configuration by using the network_id
option:
zig build run -- --network_id Sepolia
Any other network requires its own chainspec file. You can run a custom chainspec by using the chainspec
option:
zig build run -- --chainspec <path to chainspec>.json
MIT