jiayaoqijia/eth2030

Ethereum execution client targeting the 2030 roadmap. 50 packages, 18K+ tests, 58 EIPs, 100% EF conformance.

Go

98

877 commits

updated May 12, 2026

See the code

README

ETH2030

Ethereum execution client targeting the L1 Strawmap
eth2030.com

Experimental Build In Progress

[!WARNING] This is an experimental research project under active development. It is a reference implementation intended for study, research, and prototyping. It is not production-ready and has not been formally audited for security. APIs, data formats, and behavior may change without notice.

Do not use this software to manage real funds, validate mainnet blocks, or run production infrastructure. Exercise extreme caution with anything that touches wallets, private keys, seed phrases, or transaction signing. Always review the source code and do your own research (DYOR) before running any Ethereum client software. Use entirely at your own risk.

CI Release Go

Packages Tests EIPs supported (native + go-ethereum) EF Tests LOC

Quick Start · Devnet Testing · Roadmap · EIP Coverage · Architecture · Contributing


Built in Go, targeting the L1 Strawmap — the EF Architecture team's Ethereum protocol roadmap through the Giga-Gas era.

Features

  • Full EVM execution -- 164+ opcodes, 24 precompiles, EOF container support, go-ethereum v1.17.1 backend
  • 100% EF conformance -- 36,126/36,126 Ethereum Foundation state tests passing via go-ethereum v1.17.1 backend
  • 58+ EIPs supported -- Covering Frontier through Prague and beyond (native + go-ethereum backend)
  • Parallel execution -- Block Access Lists (EIP-7928) for BAL-driven parallel transaction processing
  • Post-quantum ready -- ML-DSA-65 (FIPS 204), Dilithium3, Falcon512, SPHINCS+ signers with hybrid mode
  • Native rollups -- EIP-8079 EXECUTE precompile and anchor contract
  • zkVM framework -- RISC-V RV32IM CPU emulator, STF executor, zkISA bridge (simulated proofs, production Groth16 integration pending)
  • Full consensus -- 3-slot finality (3SF), quick slots (6s), 1-epoch finality, PQ attestations
  • PeerDAS -- Data availability sampling, custody proofs, blob streaming, variable-size blobs
  • ePBS + FOCIL -- Enshrined PBS with distributed builder and fork-choice enforced inclusion lists
  • Complete networking -- devp2p, discovery V5, gossip (pub/sub), Portal network, snap sync
  • Engine API V3-V7 -- Full payload lifecycle, forkchoice, ePBS builder API, 50+ JSON-RPC methods

Quick Start

# Clone
git clone https://github.com/jiayaoqijia/eth2030.git
cd eth2030/pkg

# Build all packages
go build ./...

# Build the geth-embedded node (syncs with mainnet/testnets)
go build -o eth2030-geth ./cmd/eth2030-geth/

# Sync with Sepolia testnet (requires a consensus client on port 8551)
./eth2030-geth -network sepolia -datadir ~/.eth2030-sepolia

# Sync with mainnet
./eth2030-geth -datadir ~/.eth2030-geth -authrpc.jwtsecret /path/to/jwt.hex

# Run all tests (48 packages, 18,400+ tests)
go test ./...

# Run EF state test validation (36,126 vectors, 100% pass rate)
go test ./core/eftest/ -run TestGethCategorySummary -timeout=10m

eth2030-geth Flags

Note: eth2030-geth uses Go's flag package. Flags are shown with single-dash (-flag) to match --help output, but double-dash (--flag) also works.

FlagDefaultDescription
-datadir~/.eth2030-gethData directory for chain data
-networkmainnetNetwork: mainnet, sepolia, holesky
-syncmodesnapSync mode: snap, full
-port30303P2P listening port
-http.port8545HTTP-RPC server port
-authrpc.port8551Engine API port (for CL client)
-authrpc.jwtsecretautoPath to JWT secret for Engine API auth
-maxpeers50Maximum P2P peers
-verbosity3Log level (0=silent, 5=trace)
-override.glamsterdam-Test Glamsterdam fork at timestamp

Devnet Testing (Kurtosis)

ETH2030 includes Kurtosis devnet integration for multi-client consensus testing using ethpandaops/ethereum-package with 10 testing tools (assertoor, spamoor, rakoon, dora, blobscan, forky, tracoor, forkmon, prometheus, grafana).

# Prerequisites: Docker + Kurtosis CLI
kurtosis engine start
cd pkg && docker build -t eth2030:local .

# Run all 40 feature devnet tests
cd pkg/devnet/kurtosis && ./scripts/run-feature-tests.sh

# Run specific features
cd pkg/devnet/kurtosis && ./scripts/run-feature-tests.sh epbs focil native-aa

# Launch a general devnet
cd pkg/devnet/kurtosis && ./scripts/run-devnet.sh full-feature

40 Feature Tests — All passing consensus checks, covering all 65 roadmap items:

24 Roadmap Feature Tests:

FeatureEIP(s)FeatureEIP(s)
ePBSEIP-7732PeerDASEIP-7594
FOCILEIP-78053SF/Quick Slots
BALsEIP-7928BAL FeasibilityEIP-7928
BAL RetentionEIP-7928PQ Crypto
Native AAEIP-7702Encrypted Mempool
Gas Repricing18 EIPsShielded Transfers
BlobsEIP-4844/8070SSZEIP-6404/7807
Multidim GasEIP-7706Multidim Fee TxEIP-7706
Native RollupsEIP-8079Frame MempoolEIP-8141
Gas Vectors 3DEIP-7706IL SatisfactionEIP-7805
Local TxMixnet
RISC-V PrecompilezkVMSTARK FramesEIP-8141

16 Layer Group Tests (CL/DL/EL feature groups covering remaining roadmap items):

GroupItems CoveredGroupItems Covered
cl-finalityfast confirm, 1-epoch, endgamecl-validatorsattester cap, 128K, APS, 1 ETH
cl-attestations1M attest, jeanVM, PQ attestcl-security51% recovery, secret proposers
cl-infrastructurebeacon specs, tech debt, VDFdl-blob-advancedPQ blobs, variable-size, teragas
dl-reconstructionlocal reconstruct, sample optdl-futuresblob futures, custody proofs
dl-broadcastcell msgs, 7702 broadcast, streamingel-gas-schedule3x/year limit, Hegotá repricing
el-payloadchunking, block-in-blobs, nonceel-proofsoptional, mandatory 3-of-5, aggregation
el-zkvmcanonical guest/zkVM, STF, zkISAel-statebinary tree, VOPS, endgame state
el-tx-advancedAA, purges, assertions, NTTel-gas-futuresgas futures, sharded mempool, gigagas

6 General Configs — single-client, multi-client (cross-client consensus with upstream geth), stress-test, blob-test, eip7702-test, full-feature.

Additional Test Scripts:

  • test-frametx.sh — EIP-8141 frame transaction test (deploys APPROVE contract, verifies opcodes)
  • test-precompiles.sh — Custom precompile smoke test

Public Devnet Endpoints (when running):

See pkg/devnet/kurtosis/README.md for full documentation (40 feature tests, 6 configs, 10+ tools).

Architecture

                 +------------------------------+
                 |     Consensus Client (CL)     |
                 +--------------+---------------+
                                | Engine API (JSON-RPC)
                 +--------------v---------------+
                 |      Engine API Server         |
                 |  newPayloadV3-V7, fcuV3/V4    |
                 +--------------+---------------+
                                |
          +---------------------+------------------+
          |                     |                   |
 +--------v------+  +----------v--------+  +-------v-------+
 |  Block Builder |  |  Block Validator  |  | Payload Store |
 +--------+------+  +----------+--------+  +---------------+
          |                     |
 +--------v---------------------v------+
 |          State Processor             |
 |   Sequential -> Parallel (EIP-7928) |
 +--------+----------------------------+
          |
 +--------v--------------------------+     +--------------------+
 |     go-ethereum EVM (v1.17.0)     |     | Consensus Layer    |
 |  + 13 ETH2030 custom precompiles  |     | 3SF, Attestations  |
 +--------+--------------------------+     +--------------------+
          |
 +--------v--------------------------+     +-------------------+
 |          StateDB                   |---->|  Transaction Pool |
 |  Accounts, Storage, Code, Logs    |     | + Encrypted/Shared|
 +--------+--------------------------+     +-------------------+
          |
 +--------v--------------------------+     +-------------------+
 |     Trie / Binary                  |---->|  P2P / Sync       |
 |  MPT + Binary (EIP-7864)          |     | Discovery, Portal |
 +--------+--------------------------+     +-------------------+
          |
 +--------v--------------------------+     +-------------------+
 |     Key-Value Store (rawdb)        |     | DAS / PeerDAS     |
 +-----------------------------------+     | Blob Sampling     |
                                           +-------------------+

go-ethereum Integration

ETH2030 imports go-ethereum v1.17.1 as a library for EVM execution, achieving 100% EF state test conformance:

ComponentDescription
pkg/geth/processor.goBlock processor using gethcore.ApplyMessage
pkg/geth/extensions.go13 custom precompile injection via evm.SetPrecompiles()
pkg/geth/statedb.goState creation using go-ethereum's real trie DB
pkg/geth/config.goChain config mapping (ETH2030 forks to go-ethereum params)

Custom precompiles injected: 4 Glamsterdam repriced (0x06, 0x08, 0x09, 0x0a), 1 NTT (0x15), 4 NII (0x0201-0x0204), 4 field arithmetic (0x0205-0x0208).

Mainnet & Testnet Sync Verification

The eth2030-geth binary has been verified syncing with live Ethereum networks:

NetworkCL ClientSync ModeStatusRPC APIs Verified
SepoliaLighthouse v8.1.0SnapHeaders downloading at ~9K/sec, chain ~33%, state ~4%20+ methods
Mainnet-SnapGenesis initialized, Chain ID 1, peer discovery active20+ methods

Verified RPC methods: eth_chainId, eth_blockNumber, eth_getBlockByNumber, eth_syncing, eth_feeHistory, eth_getBalance, eth_getCode, net_version, net_peerCount, web3_clientVersion, admin_nodeInfo, admin_peers, txpool_status, engine_exchangeCapabilities, and more.

Native vs Delegated Architecture

ETH2030 combines native implementations with go-ethereum as a backend. This section clarifies what is built from scratch versus delegated:

go-ethereum delegated (~40 EIPs): Core EVM opcodes, gas accounting, state root computation, trie operations, and standard precompile execution are handled by the pkg/geth/ adapter importing go-ethereum v1.17.1 as a library. This includes all Frontier-through-Prague EVM semantics, EIP-158 empty account cleanup, and SSTORE gas metering (EIP-2200/2929/3529).

Native ETH2030 (~25 features): Consensus layer (3SF, quick slots, 1-epoch finality, PQ attestations, endgame finality), data availability (PeerDAS, blob streaming, custody proofs, variable-size blobs), proposer-builder separation (ePBS, FOCIL, distributed builder), encrypted mempool (commit-reveal, threshold decryption), BAL parallel execution (EIP-7928), native rollups (EIP-8079), SSZ encoding (EIP-6404/7807), 13 custom precompiles (NTT, NII, field arithmetic), and the Engine API V3-V7.

Prototype/Functional: The zkVM framework has a real RISC-V RV32IM CPU emulator with witness collection and cycle counting, but proofs are SHA-256 hash-based rather than Groth16 (production ZK backend integration pending).

Package Structure

PackageDescriptionStatus
pkg/coreBlockchain, state processor, block builder, validator, fee logic, gas futuresComplete
pkg/core/typesHeader, Transaction (7 types), Receipt, Block, SSZ encodingComplete
pkg/core/stateStateDB interface, in-memory, trie-backed, stateless, prefetcherComplete
pkg/core/vmEVM interpreter, 164+ opcodes, 24 precompiles, gas tables, EOFComplete
pkg/core/eftestEF state test runner: 36,126/36,126 (100%) via go-ethereum backendComplete
pkg/gethgo-ethereum adapter: type conversion, block processor, precompile injectionComplete
pkg/consensus3SF (3-slot finality), quick slots, 1-epoch finality, attestations, beacon state, BLS adapterComplete
pkg/cryptoKeccak-256, secp256k1, BN254, BLS12-381, Banderwagon, IPA, VDF, shieldedComplete
pkg/crypto/pqcML-DSA-65, Dilithium3, Falcon512, SPHINCS+, hybrid signer, lattice blobsComplete
pkg/engineEngine API V3-V7, forkchoice, payload building, ePBS, distributed builderComplete
pkg/epbsEnshrined PBS (EIP-7732): builder bids, auctions, payload envelopesComplete
pkg/focilFOCIL (EIP-7805): inclusion list building, validation, complianceComplete
pkg/balBlock Access Lists (EIP-7928) for parallel executionComplete
pkg/dasPeerDAS: sampling, custody, reconstruction, blob streaming, futuresComplete
pkg/rollupNative rollups (EIP-8079): EXECUTE precompile, anchor contractComplete
pkg/zkvmzkVM: canonical guest (RISC-V), STF executor, zkISA bridge, proof backendComplete
pkg/proofsProof aggregation: SNARK/STARK/IPA/KZG, mandatory 3-of-5 systemComplete
pkg/txpoolTransaction pool, RBF, sparse blobpool, encrypted mempool, shardedComplete
pkg/p2pTCP transport, devp2p, discovery V5, gossip, Portal network, snap syncComplete
pkg/trieMPT + Binary Merkle tree (EIP-7864), SHA-256, proofs, migrationComplete
pkg/rpcJSON-RPC server, 50+ methods, filters, WebSocket, Beacon APIComplete
pkg/syncFull sync + snap sync + beam sync pipelineComplete
pkg/rlpRLP encoding/decoding per Yellow Paper Appendix BComplete
pkg/sszSSZ encoding/decoding, merkleization, EIP-7916 ProgressiveListComplete
All 48 packages (click to expand)
PackageDescription
pkg/core/rawdbFileDB with WAL, chain DB, EIP-4444 history expiry
pkg/core/state/snapshotLayered diff/disk snapshots, account/storage iterators
pkg/core/state/prunerState pruner with bloom filter reachability
pkg/core/vopsValidity-Only Partial Statelessness: executor, validator, witness
pkg/das/erasureReed-Solomon erasure coding (Lagrange interpolation)
pkg/witnessExecution witness (EIP-8025), collector, verifier
pkg/txpool/encryptedEncrypted mempool: commit-reveal, threshold decryption
pkg/txpool/sharedSharded mempool with consistent hashing
pkg/lightLight client: header sync, proof cache, sync committee, CL proofs
pkg/p2p/discoverPeer discovery V4/V5, Kademlia DHT
pkg/p2p/discv5Discovery V5 protocol with WHOAREYOU/handshake
pkg/p2p/dnsdiscDNS-based peer discovery
pkg/p2p/enodeNode identity and URL parsing
pkg/p2p/enrEthereum Node Records (extensible key-value)
pkg/p2p/portalPortal network: content DHT, Kademlia routing
pkg/p2p/snapSnap sync protocol messages
pkg/trie/bintrieBinary Merkle trie: Get/Put/Delete/Hash/Commit, proofs
pkg/ethETH protocol handler, codec, EIP-8077 announce nonce (ETH/72)
pkg/nodeClient node: config, lifecycle, subsystem wiring
pkg/cmd/eth2030CLI binary with flags, signal handling
pkg/cmd/eth2030-gethProduction node: go-ethereum embedded, mainnet/testnet sync
pkg/logStructured logging (JSON/text)
pkg/metricsCounters, gauges, histograms, Prometheus, EWMA, CPU tracker

EIP Coverage (58+ EIPs Supported)

EIPNameEIPName
150Gas Cost Changes (63/64 rule)7002EL Withdrawals
152BLAKE2 Precompile7069EXTCALL (EOF)
196/197BN254 Pairing7251MAX_EFFECTIVE_BALANCE
1153Transient Storage7480EOF Data
1559Dynamic Fee Market7547FOCIL Inclusion Lists
2200SSTORE Gas Metering7549Committee Attestations
2537BLS12-381 Precompiles7594PeerDAS
2718Typed Transactions7620EOFCREATE
2929State Access Gas7685EL Requests
2930Access List Transactions7691Blob Throughput
2935Historical Block Hashes7698EOF Creation Tx
3529Reduction in Refunds7701Native AA
3540EOF Container7702Set Code for EOAs
4444History Expiry7706Multidimensional Gas
4762Statelessness Gas7742Uncoupled Blobs
4788Beacon Block Root7745Log Index
4844Blob Transactions + KZG7807SSZ Blocks
4895Withdrawals7825Tx Gas Cap
5656MCOPY Opcode7898Uncoupled Execution Payload
6110Validator Deposits7904Gas Repricing
6404SSZ Transactions7916SSZ ProgressiveList
6780SELFDESTRUCT Restriction7918Blob Base Fee Bound
7928Block Access Lists7939CLZ Opcode
8024DUPN/SWAPN/EXCHANGE8070Sparse Blobpool
8077Announce Nonce8079Native Rollups
8141Frame Transactions

Substantially implemented: EIP-7732 (ePBS), EIP-7805 (FOCIL), EIP-7864 (Binary Merkle Tree), EIP-8025 (Execution Proofs), PQC (Dilithium3/Falcon512/SPHINCS+)

See docs/EIP_SPEC_IMPL.md for full traceability: specs, implementations, and tests for each EIP.

EF State Test Benchmark

MetricValue
Total tests36,126
Passing36,126 (100%)
Failing0
Categories57/57 at 100%
Backendgo-ethereum v1.17.1
Runnerpkg/core/eftest/geth_runner.go

Roadmap Coverage

ETH2030 tracks 8 upgrade phases from the L1 Strawmap covering consensus, data, and execution layers from 2026 through 2030+.

MetricValue
Upgrade phases8
Roadmap items tracked65
Complete65 (all items with real crypto, validation, and test coverage)
Functional0
Partial0

All 65 strawmap items are COMPLETE with real cryptographic backends wired (BLS, Dilithium3, KZG, BN254 Pedersen). See docs/GAP_ANALYSIS.md for the full audit.

Engine API

MethodForkStatus
engine_newPayloadV3CancunImplemented
engine_newPayloadV4PragueImplemented
engine_newPayloadV5AmsterdamImplemented
engine_forkchoiceUpdatedV3CancunImplemented
engine_forkchoiceUpdatedV4AmsterdamImplemented
engine_getPayloadV3/V4/V6/V7Cancun-Amsterdam+Implemented
engine_exchangeCapabilitiesAllImplemented
engine_getClientVersionV1AllImplemented

JSON-RPC

50+ methods across eth_*, net_*, web3_*, debug_* namespaces including block/tx queries, eth_call, eth_estimateGas, fee history, log filters, WebSocket subscriptions (newHeads, logs, pendingTransactions), sync status, EVM tracing, and MPT proofs.

Documentation

Development Stats

This project was built with Claude Code (Claude Opus 4/4.6) over ~8 days:

MetricValue
Total tokens (billed)3.42 billion
Total throughput7.50 billion
Unique API calls34,172
Session files analyzed966 (9 main + 957 sub-agent)
Output tokens811,000
Estimated API cost~$7,100
Cost per 1K LOC~$10.19

Contributing

See CONTRIBUTING.md for development setup, coding guidelines, and contribution categories.

Security

See SECURITY.md for vulnerability reporting.

Reference Submodules

refs/ contains 37 git submodules for upstream specs and implementations:

Ethereum specs: EIPs, ERCs, consensus-specs, execution-specs, execution-apis, beacon-APIs, builder-specs, consensus-spec-tests, execution-spec-tests

Reference client: go-ethereum

Cryptography: blst (BLS12-381), circl (PQC: ML-DSA, ML-KEM, SLH-DSA), go-eth-kzg (KZG), gnark (ZK proofs), gnark-crypto, c-kzg-4844

PQ research: hash-sig (hash-based multi-sigs), ntt-eip (EIP-7885 NTT precompile), ethfalcon (FALCON on EVM)

Devops: ethereum-package, benchmarkoor, erigone, xatu, consensoor

Audited: leanMultisig, leanSig, leanSpec, fiat-shamir (leanEthereum — 18-finding security audit)

License

The ETH2030 library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the COPYING.LESSER file.

The ETH2030 binaries (i.e. all code inside of the cmd directory) are licensed under the GNU General Public License v3.0, also included in our repository in the COPYING file.

blockchain
eip
ethereum
ethereum-client
evm
execution-layer
go
peerdas
post-quantum
zkvm

Contributors

fyInALT

592 commits

jiayaoqijia

277 commits

advatar

7 commits

sueun-dev

1 commits

jiayaoqijia/eth2030

Ethereum execution client targeting the 2030 roadmap. 50 packages, 18K+ tests, 58 EIPs, 100% EF conformance.

Go

98

877 commits

updated May 12, 2026

See the code

README

ETH2030

Ethereum execution client targeting the L1 Strawmap
eth2030.com

Experimental Build In Progress

[!WARNING] This is an experimental research project under active development. It is a reference implementation intended for study, research, and prototyping. It is not production-ready and has not been formally audited for security. APIs, data formats, and behavior may change without notice.

Do not use this software to manage real funds, validate mainnet blocks, or run production infrastructure. Exercise extreme caution with anything that touches wallets, private keys, seed phrases, or transaction signing. Always review the source code and do your own research (DYOR) before running any Ethereum client software. Use entirely at your own risk.

CI Release Go

Packages Tests EIPs supported (native + go-ethereum) EF Tests LOC

Quick Start · Devnet Testing · Roadmap · EIP Coverage · Architecture · Contributing


Built in Go, targeting the L1 Strawmap — the EF Architecture team's Ethereum protocol roadmap through the Giga-Gas era.

Features

  • Full EVM execution -- 164+ opcodes, 24 precompiles, EOF container support, go-ethereum v1.17.1 backend
  • 100% EF conformance -- 36,126/36,126 Ethereum Foundation state tests passing via go-ethereum v1.17.1 backend
  • 58+ EIPs supported -- Covering Frontier through Prague and beyond (native + go-ethereum backend)
  • Parallel execution -- Block Access Lists (EIP-7928) for BAL-driven parallel transaction processing
  • Post-quantum ready -- ML-DSA-65 (FIPS 204), Dilithium3, Falcon512, SPHINCS+ signers with hybrid mode
  • Native rollups -- EIP-8079 EXECUTE precompile and anchor contract
  • zkVM framework -- RISC-V RV32IM CPU emulator, STF executor, zkISA bridge (simulated proofs, production Groth16 integration pending)
  • Full consensus -- 3-slot finality (3SF), quick slots (6s), 1-epoch finality, PQ attestations
  • PeerDAS -- Data availability sampling, custody proofs, blob streaming, variable-size blobs
  • ePBS + FOCIL -- Enshrined PBS with distributed builder and fork-choice enforced inclusion lists
  • Complete networking -- devp2p, discovery V5, gossip (pub/sub), Portal network, snap sync
  • Engine API V3-V7 -- Full payload lifecycle, forkchoice, ePBS builder API, 50+ JSON-RPC methods

Quick Start

# Clone
git clone https://github.com/jiayaoqijia/eth2030.git
cd eth2030/pkg

# Build all packages
go build ./...

# Build the geth-embedded node (syncs with mainnet/testnets)
go build -o eth2030-geth ./cmd/eth2030-geth/

# Sync with Sepolia testnet (requires a consensus client on port 8551)
./eth2030-geth -network sepolia -datadir ~/.eth2030-sepolia

# Sync with mainnet
./eth2030-geth -datadir ~/.eth2030-geth -authrpc.jwtsecret /path/to/jwt.hex

# Run all tests (48 packages, 18,400+ tests)
go test ./...

# Run EF state test validation (36,126 vectors, 100% pass rate)
go test ./core/eftest/ -run TestGethCategorySummary -timeout=10m

eth2030-geth Flags

Note: eth2030-geth uses Go's flag package. Flags are shown with single-dash (-flag) to match --help output, but double-dash (--flag) also works.

FlagDefaultDescription
-datadir~/.eth2030-gethData directory for chain data
-networkmainnetNetwork: mainnet, sepolia, holesky
-syncmodesnapSync mode: snap, full
-port30303P2P listening port
-http.port8545HTTP-RPC server port
-authrpc.port8551Engine API port (for CL client)
-authrpc.jwtsecretautoPath to JWT secret for Engine API auth
-maxpeers50Maximum P2P peers
-verbosity3Log level (0=silent, 5=trace)
-override.glamsterdam-Test Glamsterdam fork at timestamp

Devnet Testing (Kurtosis)

ETH2030 includes Kurtosis devnet integration for multi-client consensus testing using ethpandaops/ethereum-package with 10 testing tools (assertoor, spamoor, rakoon, dora, blobscan, forky, tracoor, forkmon, prometheus, grafana).

# Prerequisites: Docker + Kurtosis CLI
kurtosis engine start
cd pkg && docker build -t eth2030:local .

# Run all 40 feature devnet tests
cd pkg/devnet/kurtosis && ./scripts/run-feature-tests.sh

# Run specific features
cd pkg/devnet/kurtosis && ./scripts/run-feature-tests.sh epbs focil native-aa

# Launch a general devnet
cd pkg/devnet/kurtosis && ./scripts/run-devnet.sh full-feature

40 Feature Tests — All passing consensus checks, covering all 65 roadmap items:

24 Roadmap Feature Tests:

FeatureEIP(s)FeatureEIP(s)
ePBSEIP-7732PeerDASEIP-7594
FOCILEIP-78053SF/Quick Slots
BALsEIP-7928BAL FeasibilityEIP-7928
BAL RetentionEIP-7928PQ Crypto
Native AAEIP-7702Encrypted Mempool
Gas Repricing18 EIPsShielded Transfers
BlobsEIP-4844/8070SSZEIP-6404/7807
Multidim GasEIP-7706Multidim Fee TxEIP-7706
Native RollupsEIP-8079Frame MempoolEIP-8141
Gas Vectors 3DEIP-7706IL SatisfactionEIP-7805
Local TxMixnet
RISC-V PrecompilezkVMSTARK FramesEIP-8141

16 Layer Group Tests (CL/DL/EL feature groups covering remaining roadmap items):

GroupItems CoveredGroupItems Covered
cl-finalityfast confirm, 1-epoch, endgamecl-validatorsattester cap, 128K, APS, 1 ETH
cl-attestations1M attest, jeanVM, PQ attestcl-security51% recovery, secret proposers
cl-infrastructurebeacon specs, tech debt, VDFdl-blob-advancedPQ blobs, variable-size, teragas
dl-reconstructionlocal reconstruct, sample optdl-futuresblob futures, custody proofs
dl-broadcastcell msgs, 7702 broadcast, streamingel-gas-schedule3x/year limit, Hegotá repricing
el-payloadchunking, block-in-blobs, nonceel-proofsoptional, mandatory 3-of-5, aggregation
el-zkvmcanonical guest/zkVM, STF, zkISAel-statebinary tree, VOPS, endgame state
el-tx-advancedAA, purges, assertions, NTTel-gas-futuresgas futures, sharded mempool, gigagas

6 General Configs — single-client, multi-client (cross-client consensus with upstream geth), stress-test, blob-test, eip7702-test, full-feature.

Additional Test Scripts:

  • test-frametx.sh — EIP-8141 frame transaction test (deploys APPROVE contract, verifies opcodes)
  • test-precompiles.sh — Custom precompile smoke test

Public Devnet Endpoints (when running):

See pkg/devnet/kurtosis/README.md for full documentation (40 feature tests, 6 configs, 10+ tools).

Architecture

                 +------------------------------+
                 |     Consensus Client (CL)     |
                 +--------------+---------------+
                                | Engine API (JSON-RPC)
                 +--------------v---------------+
                 |      Engine API Server         |
                 |  newPayloadV3-V7, fcuV3/V4    |
                 +--------------+---------------+
                                |
          +---------------------+------------------+
          |                     |                   |
 +--------v------+  +----------v--------+  +-------v-------+
 |  Block Builder |  |  Block Validator  |  | Payload Store |
 +--------+------+  +----------+--------+  +---------------+
          |                     |
 +--------v---------------------v------+
 |          State Processor             |
 |   Sequential -> Parallel (EIP-7928) |
 +--------+----------------------------+
          |
 +--------v--------------------------+     +--------------------+
 |     go-ethereum EVM (v1.17.0)     |     | Consensus Layer    |
 |  + 13 ETH2030 custom precompiles  |     | 3SF, Attestations  |
 +--------+--------------------------+     +--------------------+
          |
 +--------v--------------------------+     +-------------------+
 |          StateDB                   |---->|  Transaction Pool |
 |  Accounts, Storage, Code, Logs    |     | + Encrypted/Shared|
 +--------+--------------------------+     +-------------------+
          |
 +--------v--------------------------+     +-------------------+
 |     Trie / Binary                  |---->|  P2P / Sync       |
 |  MPT + Binary (EIP-7864)          |     | Discovery, Portal |
 +--------+--------------------------+     +-------------------+
          |
 +--------v--------------------------+     +-------------------+
 |     Key-Value Store (rawdb)        |     | DAS / PeerDAS     |
 +-----------------------------------+     | Blob Sampling     |
                                           +-------------------+

go-ethereum Integration

ETH2030 imports go-ethereum v1.17.1 as a library for EVM execution, achieving 100% EF state test conformance:

ComponentDescription
pkg/geth/processor.goBlock processor using gethcore.ApplyMessage
pkg/geth/extensions.go13 custom precompile injection via evm.SetPrecompiles()
pkg/geth/statedb.goState creation using go-ethereum's real trie DB
pkg/geth/config.goChain config mapping (ETH2030 forks to go-ethereum params)

Custom precompiles injected: 4 Glamsterdam repriced (0x06, 0x08, 0x09, 0x0a), 1 NTT (0x15), 4 NII (0x0201-0x0204), 4 field arithmetic (0x0205-0x0208).

Mainnet & Testnet Sync Verification

The eth2030-geth binary has been verified syncing with live Ethereum networks:

NetworkCL ClientSync ModeStatusRPC APIs Verified
SepoliaLighthouse v8.1.0SnapHeaders downloading at ~9K/sec, chain ~33%, state ~4%20+ methods
Mainnet-SnapGenesis initialized, Chain ID 1, peer discovery active20+ methods

Verified RPC methods: eth_chainId, eth_blockNumber, eth_getBlockByNumber, eth_syncing, eth_feeHistory, eth_getBalance, eth_getCode, net_version, net_peerCount, web3_clientVersion, admin_nodeInfo, admin_peers, txpool_status, engine_exchangeCapabilities, and more.

Native vs Delegated Architecture

ETH2030 combines native implementations with go-ethereum as a backend. This section clarifies what is built from scratch versus delegated:

go-ethereum delegated (~40 EIPs): Core EVM opcodes, gas accounting, state root computation, trie operations, and standard precompile execution are handled by the pkg/geth/ adapter importing go-ethereum v1.17.1 as a library. This includes all Frontier-through-Prague EVM semantics, EIP-158 empty account cleanup, and SSTORE gas metering (EIP-2200/2929/3529).

Native ETH2030 (~25 features): Consensus layer (3SF, quick slots, 1-epoch finality, PQ attestations, endgame finality), data availability (PeerDAS, blob streaming, custody proofs, variable-size blobs), proposer-builder separation (ePBS, FOCIL, distributed builder), encrypted mempool (commit-reveal, threshold decryption), BAL parallel execution (EIP-7928), native rollups (EIP-8079), SSZ encoding (EIP-6404/7807), 13 custom precompiles (NTT, NII, field arithmetic), and the Engine API V3-V7.

Prototype/Functional: The zkVM framework has a real RISC-V RV32IM CPU emulator with witness collection and cycle counting, but proofs are SHA-256 hash-based rather than Groth16 (production ZK backend integration pending).

Package Structure

PackageDescriptionStatus
pkg/coreBlockchain, state processor, block builder, validator, fee logic, gas futuresComplete
pkg/core/typesHeader, Transaction (7 types), Receipt, Block, SSZ encodingComplete
pkg/core/stateStateDB interface, in-memory, trie-backed, stateless, prefetcherComplete
pkg/core/vmEVM interpreter, 164+ opcodes, 24 precompiles, gas tables, EOFComplete
pkg/core/eftestEF state test runner: 36,126/36,126 (100%) via go-ethereum backendComplete
pkg/gethgo-ethereum adapter: type conversion, block processor, precompile injectionComplete
pkg/consensus3SF (3-slot finality), quick slots, 1-epoch finality, attestations, beacon state, BLS adapterComplete
pkg/cryptoKeccak-256, secp256k1, BN254, BLS12-381, Banderwagon, IPA, VDF, shieldedComplete
pkg/crypto/pqcML-DSA-65, Dilithium3, Falcon512, SPHINCS+, hybrid signer, lattice blobsComplete
pkg/engineEngine API V3-V7, forkchoice, payload building, ePBS, distributed builderComplete
pkg/epbsEnshrined PBS (EIP-7732): builder bids, auctions, payload envelopesComplete
pkg/focilFOCIL (EIP-7805): inclusion list building, validation, complianceComplete
pkg/balBlock Access Lists (EIP-7928) for parallel executionComplete
pkg/dasPeerDAS: sampling, custody, reconstruction, blob streaming, futuresComplete
pkg/rollupNative rollups (EIP-8079): EXECUTE precompile, anchor contractComplete
pkg/zkvmzkVM: canonical guest (RISC-V), STF executor, zkISA bridge, proof backendComplete
pkg/proofsProof aggregation: SNARK/STARK/IPA/KZG, mandatory 3-of-5 systemComplete
pkg/txpoolTransaction pool, RBF, sparse blobpool, encrypted mempool, shardedComplete
pkg/p2pTCP transport, devp2p, discovery V5, gossip, Portal network, snap syncComplete
pkg/trieMPT + Binary Merkle tree (EIP-7864), SHA-256, proofs, migrationComplete
pkg/rpcJSON-RPC server, 50+ methods, filters, WebSocket, Beacon APIComplete
pkg/syncFull sync + snap sync + beam sync pipelineComplete
pkg/rlpRLP encoding/decoding per Yellow Paper Appendix BComplete
pkg/sszSSZ encoding/decoding, merkleization, EIP-7916 ProgressiveListComplete
All 48 packages (click to expand)
PackageDescription
pkg/core/rawdbFileDB with WAL, chain DB, EIP-4444 history expiry
pkg/core/state/snapshotLayered diff/disk snapshots, account/storage iterators
pkg/core/state/prunerState pruner with bloom filter reachability
pkg/core/vopsValidity-Only Partial Statelessness: executor, validator, witness
pkg/das/erasureReed-Solomon erasure coding (Lagrange interpolation)
pkg/witnessExecution witness (EIP-8025), collector, verifier
pkg/txpool/encryptedEncrypted mempool: commit-reveal, threshold decryption
pkg/txpool/sharedSharded mempool with consistent hashing
pkg/lightLight client: header sync, proof cache, sync committee, CL proofs
pkg/p2p/discoverPeer discovery V4/V5, Kademlia DHT
pkg/p2p/discv5Discovery V5 protocol with WHOAREYOU/handshake
pkg/p2p/dnsdiscDNS-based peer discovery
pkg/p2p/enodeNode identity and URL parsing
pkg/p2p/enrEthereum Node Records (extensible key-value)
pkg/p2p/portalPortal network: content DHT, Kademlia routing
pkg/p2p/snapSnap sync protocol messages
pkg/trie/bintrieBinary Merkle trie: Get/Put/Delete/Hash/Commit, proofs
pkg/ethETH protocol handler, codec, EIP-8077 announce nonce (ETH/72)
pkg/nodeClient node: config, lifecycle, subsystem wiring
pkg/cmd/eth2030CLI binary with flags, signal handling
pkg/cmd/eth2030-gethProduction node: go-ethereum embedded, mainnet/testnet sync
pkg/logStructured logging (JSON/text)
pkg/metricsCounters, gauges, histograms, Prometheus, EWMA, CPU tracker

EIP Coverage (58+ EIPs Supported)

EIPNameEIPName
150Gas Cost Changes (63/64 rule)7002EL Withdrawals
152BLAKE2 Precompile7069EXTCALL (EOF)
196/197BN254 Pairing7251MAX_EFFECTIVE_BALANCE
1153Transient Storage7480EOF Data
1559Dynamic Fee Market7547FOCIL Inclusion Lists
2200SSTORE Gas Metering7549Committee Attestations
2537BLS12-381 Precompiles7594PeerDAS
2718Typed Transactions7620EOFCREATE
2929State Access Gas7685EL Requests
2930Access List Transactions7691Blob Throughput
2935Historical Block Hashes7698EOF Creation Tx
3529Reduction in Refunds7701Native AA
3540EOF Container7702Set Code for EOAs
4444History Expiry7706Multidimensional Gas
4762Statelessness Gas7742Uncoupled Blobs
4788Beacon Block Root7745Log Index
4844Blob Transactions + KZG7807SSZ Blocks
4895Withdrawals7825Tx Gas Cap
5656MCOPY Opcode7898Uncoupled Execution Payload
6110Validator Deposits7904Gas Repricing
6404SSZ Transactions7916SSZ ProgressiveList
6780SELFDESTRUCT Restriction7918Blob Base Fee Bound
7928Block Access Lists7939CLZ Opcode
8024DUPN/SWAPN/EXCHANGE8070Sparse Blobpool
8077Announce Nonce8079Native Rollups
8141Frame Transactions

Substantially implemented: EIP-7732 (ePBS), EIP-7805 (FOCIL), EIP-7864 (Binary Merkle Tree), EIP-8025 (Execution Proofs), PQC (Dilithium3/Falcon512/SPHINCS+)

See docs/EIP_SPEC_IMPL.md for full traceability: specs, implementations, and tests for each EIP.

EF State Test Benchmark

MetricValue
Total tests36,126
Passing36,126 (100%)
Failing0
Categories57/57 at 100%
Backendgo-ethereum v1.17.1
Runnerpkg/core/eftest/geth_runner.go

Roadmap Coverage

ETH2030 tracks 8 upgrade phases from the L1 Strawmap covering consensus, data, and execution layers from 2026 through 2030+.

MetricValue
Upgrade phases8
Roadmap items tracked65
Complete65 (all items with real crypto, validation, and test coverage)
Functional0
Partial0

All 65 strawmap items are COMPLETE with real cryptographic backends wired (BLS, Dilithium3, KZG, BN254 Pedersen). See docs/GAP_ANALYSIS.md for the full audit.

Engine API

MethodForkStatus
engine_newPayloadV3CancunImplemented
engine_newPayloadV4PragueImplemented
engine_newPayloadV5AmsterdamImplemented
engine_forkchoiceUpdatedV3CancunImplemented
engine_forkchoiceUpdatedV4AmsterdamImplemented
engine_getPayloadV3/V4/V6/V7Cancun-Amsterdam+Implemented
engine_exchangeCapabilitiesAllImplemented
engine_getClientVersionV1AllImplemented

JSON-RPC

50+ methods across eth_*, net_*, web3_*, debug_* namespaces including block/tx queries, eth_call, eth_estimateGas, fee history, log filters, WebSocket subscriptions (newHeads, logs, pendingTransactions), sync status, EVM tracing, and MPT proofs.

Documentation

Development Stats

This project was built with Claude Code (Claude Opus 4/4.6) over ~8 days:

MetricValue
Total tokens (billed)3.42 billion
Total throughput7.50 billion
Unique API calls34,172
Session files analyzed966 (9 main + 957 sub-agent)
Output tokens811,000
Estimated API cost~$7,100
Cost per 1K LOC~$10.19

Contributing

See CONTRIBUTING.md for development setup, coding guidelines, and contribution categories.

Security

See SECURITY.md for vulnerability reporting.

Reference Submodules

refs/ contains 37 git submodules for upstream specs and implementations:

Ethereum specs: EIPs, ERCs, consensus-specs, execution-specs, execution-apis, beacon-APIs, builder-specs, consensus-spec-tests, execution-spec-tests

Reference client: go-ethereum

Cryptography: blst (BLS12-381), circl (PQC: ML-DSA, ML-KEM, SLH-DSA), go-eth-kzg (KZG), gnark (ZK proofs), gnark-crypto, c-kzg-4844

PQ research: hash-sig (hash-based multi-sigs), ntt-eip (EIP-7885 NTT precompile), ethfalcon (FALCON on EVM)

Devops: ethereum-package, benchmarkoor, erigone, xatu, consensoor

Audited: leanMultisig, leanSig, leanSpec, fiat-shamir (leanEthereum — 18-finding security audit)

License

The ETH2030 library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the COPYING.LESSER file.

The ETH2030 binaries (i.e. all code inside of the cmd directory) are licensed under the GNU General Public License v3.0, also included in our repository in the COPYING file.

blockchain
eip
ethereum
ethereum-client
evm
execution-layer
go
peerdas
post-quantum
zkvm

Contributors

fyInALT

592 commits

jiayaoqijia

277 commits

advatar

7 commits

sueun-dev

1 commits

Languages

Go

98.3%

Shell

1.1%