Skip to content

etofdn/etovm

Repository files navigation

ETO UVM

High-performance Universal VM. Pure Rust. Solana-compatible execution with EVM interop.

Performance

Mode TPS Verification Use Case
Verified Ultrafast 232K Full Ed25519 (GPU) Production
Standard 281K Full Ed25519 (CPU) CPU-only nodes
Pipeline 721K Overlapped stages Sustained throughput
Delta 14M Pre-validated Trusted sequencer

Hardware: 128 cores + NVIDIA H100

Architecture

┌─────────────────────────────────────────────────────────────────────────┐
│                         ETO UVM — PURE RUST                             │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  TX INGESTION                                                           │
│  ┌──────────────────────────────────────────┐                          │
│  │  turbo_ingest (TCP ports 19000-19007)    │                          │
│  │  → SvmMempool (lock-free SegQueue)       │                          │
│  │  → Background Ed25519 pre-verification   │                          │
│  └──────────────────┬───────────────────────┘                          │
│                     │                                                   │
│  CONSENSUS (commonware aggregation — 1-hop finality)                   │
│  ┌──────────────────▼───────────────────────┐                          │
│  │  Automaton.propose()                     │                          │
│  │  ┌───────────────┐  ┌─────────────────┐  │                          │
│  │  │   Sequencer   │  │   Validators    │  │                          │
│  │  │ drain mempool │  │ receive block   │  │                          │
│  │  │ classify txs  │  │ re-execute      │  │                          │
│  │  │ execute       │  │ verify digest   │  │                          │
│  │  │ push to vals  │  │ sign ack        │  │                          │
│  │  └───────────────┘  └─────────────────┘  │                          │
│  │                                          │                          │
│  │  2f+1 acks → quorum certificate          │                          │
│  │  Reporter.report() → finalized           │                          │
│  └──────────────────────────────────────────┘                          │
│                     │                                                   │
│  EXECUTION (TurboExecutor — Verified Ultrafast Pipeline)               │
│  ┌──────────────────▼───────────────────────────────────────────────┐  │
│  │  ┌──────────┐  ┌────────┐  ┌──────────┐  ┌────────────────────┐ │  │
│  │  │  VERIFY  │→ │  LOAD  │→ │ EXECUTE  │→ │ COMMIT + MERKLE   │ │  │
│  │  │  GPU/CPU │  │ Batch  │  │ Parallel │  │ Shard-batched     │ │  │
│  │  │   12%    │  │   5%   │  │   28%    │  │      55%          │ │  │
│  │  └──────────┘  └────────┘  └──────────┘  └────────────────────┘ │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                     │                                                   │
│  STATE (two-layer)                                                     │
│  ┌──────────────────▼───────────────────────────────────────────────┐  │
│  │  Hot: DashMap<Pubkey, Account> (FxHash, 64 shards, nanosecond)  │  │
│  │       ↓ async drain thread                                       │  │
│  │  Cold: SkippyDB/QMDB (persistent, O(1) Merkle proofs, GPU SHA) │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

Quick Start

# Build
make build

# Build with GPU support (requires CUDA 11+)
make build-gpu

# Run benchmark
make bench

# Run tests
make test

# Run standalone node
./runtime/target/release/svm-vm --config testnet/sequencer.toml --genesis genesis.json

# Run 3-node local testnet
cd testnet && ./run.sh

Project Structure

eto-vm/
├── runtime/                        # Pure Rust codebase
│   ├── src/
│   │   ├── bin/
│   │   │   ├── svm_vm.rs          # Main production binary
│   │   │   ├── turbo_bench.rs     # Primary TPS benchmark
│   │   │   └── ...                # Other benchmarks/tests
│   │   ├── consensus/             # Commonware aggregation consensus
│   │   │   ├── automaton.rs       # Block proposal + verify
│   │   │   ├── reporter.rs        # Finalization on 2f+1 certification
│   │   │   ├── block_push.rs      # Push-based block delivery
│   │   │   ├── block_server.rs    # Pull-based block server
│   │   │   ├── block_fetcher.rs   # Pull-based block client
│   │   │   ├── relay.rs           # Digest broadcast relay
│   │   │   └── config.rs          # Roles, TOML parsing, timeouts
│   │   ├── hiperf/                # High-performance execution
│   │   │   ├── turbo_executor.rs  # Production executor
│   │   │   ├── hybrid_verifier.rs # Auto GPU/CPU signature verification
│   │   │   ├── gpu_verifier.rs    # CUDA Ed25519
│   │   │   ├── batch_verifier.rs  # CPU Ed25519 batch
│   │   │   ├── block_stm.rs      # Aptos-style Block-STM
│   │   │   ├── parallel_merkle.rs # Parallel merkle computation
│   │   │   └── simd_hash.rs      # SIMD SHA256
│   │   ├── vm/                    # VM interface
│   │   │   ├── mod.rs            # Block building
│   │   │   ├── mempool.rs        # Lock-free transaction pool
│   │   │   └── turbo_ingest.rs   # TCP transaction ingestion
│   │   ├── programs/              # Native SVM programs
│   │   │   ├── system.rs         # System program
│   │   │   ├── token.rs          # SPL Token
│   │   │   ├── amm.rs            # AMM program
│   │   │   ├── agent.rs          # AI agent program
│   │   │   └── ...
│   │   ├── evm/                   # EVM interoperability (revm)
│   │   │   ├── executor.rs       # EVM execution
│   │   │   ├── bridge.rs         # SVM <-> EVM bridge
│   │   │   └── precompiles.rs    # SVM interop precompiles
│   │   ├── sealevel/             # Parallel execution scheduling
│   │   ├── bpf/                  # BPF/SBF program execution
│   │   ├── qmdb_state.rs        # Two-layer state (DashMap + QMDB)
│   │   ├── real_qmdb_state.rs   # Persistent QMDB backend
│   │   └── block_wal.rs         # Write-ahead log
│   └── Cargo.toml
├── testnet/                       # Multi-node testnet config
│   ├── run.sh                    # Launches 3-node cluster
│   ├── sequencer.toml
│   ├── validator1.toml
│   └── validator2.toml
├── paper/                         # Whitepaper
├── scripts/                       # Deployment scripts
├── genesis.json                   # Genesis state
├── Makefile
└── Dockerfile

Consensus

Uses commonware aggregation — a 1-hop streamed attestation protocol. Not traditional BFT.

Aspect Detail
Protocol Commonware aggregation (Ed25519 ack signatures)
Finality 1 hop: propose → ack → certificate
Roles Sequencer (proposer) + Validators (attesters)
Quorum 2f+1 acks form a quorum certificate
Block digest SHA256(height || merkle_root || tx_count)
Block data Pushed via TCP (zstd-compressed borsh), not through consensus channel
Pipeline window concurrent blocks in-flight (default 4)
Discovery Static peer list in TOML config

Ports

Port Purpose
19000-19007 Transaction ingestion (TCP)
19100+ Consensus P2P (commonware lookup)
19200+ Block data push/pull

Execution Modes

Verified Ultrafast (Production)

4-stage pipeline: GPU Verify → Load → Parallel Execute → Shard-batched Commit+Merkle

Standard

6-stage pipeline: Verify → Analyze → Schedule → Execute → Commit → Merkle

Delta

Pre-validated transfers only: Execute → Commit → Merkle (skips verify/analyze/schedule)

EVM Interop

EVM transactions are wrapped in SVM envelopes via sentinel EVM_PROGRAM_ID. Uses revm v19 for execution. Cross-VM call depth limited to 4.

Configuration

Consensus (TOML)

[consensus]
role = "sequencer"
private_key_seed = 1
partition = "svm-agg-v1"
listen_port = 19100
block_server_port = 19200

[[validators]]
public_key_seed = 1
address = "127.0.0.1:19100"
block_server = "127.0.0.1:19200"

Environment Overrides

Variable Default Purpose
SVM_MAX_TXS_PER_BLOCK 200,000 Max transactions per block
SVM_AGG_WINDOW 4 Concurrent pipeline depth
SVM_PREVERIFY_WAIT_MS 10 Pre-verification wait time
SIMPLEX_LEADER_TIMEOUT_MS 20 Leader timeout
SIMPLEX_NOTARIZATION_TIMEOUT_MS 40 Notarization timeout

Prerequisites

  • Rust 1.93+ (pinned in rust-toolchain.toml)
  • CUDA 11+ (optional, for GPU verification)

License

MIT

About

ETO Universal VM — 2M+ TPS blockchain with 5 execution environments (SVM, EVM, WASM, Move, ZK) on unified state. GPU-accelerated Ed25519, YOLO-STM parallel execution, universal token standard. Pure Rust.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors