Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jsign/phant
A stateless Ethereum execution client
https://github.com/jsign/phant
blockchain ethereum stateless
Last synced: 21 days ago
JSON representation
A stateless Ethereum execution client
- Host: GitHub
- URL: https://github.com/jsign/phant
- Owner: jsign
- License: mit
- Created: 2023-07-16T00:18:39.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-02T14:02:13.000Z (3 months ago)
- Last Synced: 2024-10-08T13:28:19.867Z (about 1 month ago)
- Topics: blockchain, ethereum, stateless
- Language: Zig
- Homepage:
- Size: 605 KB
- Stars: 19
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# phant
An experimental Zig Ethereum client.
## Setup
This repo is very experimental, so you have to do some things once.
We use the [Zig v0.13](https://ziglang.org/download/) compiler version.
### Initialize git submodules
After pulling this repo for the first time, do:
1. `git submodule init`
2. `git submodule update -v`## Running tests
You can run _something_ here with:
- `zig build test`: it attempts to run a particular [exec-spec-tests](https://github.com/ethereum/execution-spec-tests) fixture `exec-spec/tests/fixtures/exec-spec/fixture.json`, which is an official spec test fixture. This does a bunch of decoding into EVM types, creates a `statedb` 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.
## Running the client
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 .json
```## License
MIT