Skip to content

SeismicSystems/summit

Repository files navigation

WIP

Summit

Summit consensus client

Summit is a high-performance consensus client designed to drive EVM-based blockchains. Originally built to power the Seismic Blockchain, Summit works with any EVM client that implements the Engine API.

Key Features

  • Responsive Consensus: Powered by the Simplex consensus protocol, enabling sub-second block times
  • High Throughput: Significantly higher TPS than Ethereum
  • EVM Compatible: Works with any execution client supporting the Engine API
  • BLS12-381 Cryptography: Secure validator key management
  • Built with Commonware: Leverages primitives from the Commonware library

Summit uses the Simplex protocol, a responsive consensus mechanism that adapts to network conditions rather than waiting for predetermined timeouts. This allows the network to move as fast as conditions permit, achieving sub-second block times in most cases.

Benchmarks

We run our benchmarks using EC2 instances spread across these regions: ["us-west-2", "eu-central-1", "us-east-1", "ap-northeast-1", "sa-east-1"]. We use 100 kB blocks.

Metric 5 nodes 10 nodes 20 nodes 100 nodes 500 nodes 1000 nodes
Average TPS 707 tx/s 962 tx/s 1051 tx/s TBD TBD TBD
Average Block Time 1290ms 940ms 870ms TBD TBD TBD

The TBD benchmarks are currently running (7/24/25). With 20 nodes and under, the mempool is more of a bottleneck than consensus. This is why we see performance increasing for the first few columns.

You can reproduce these results by running the sequence in this repository.

Installation

Prerequisites

  • Rust (latest stable)
  • An EVM execution client (e.g., Reth, Geth) with Engine API support
  • (Optional) Reth binary in PATH for local testnet

Building from Source

git clone https://github.com/SeismicSystems/summit.git
cd summit
cargo build --release

Quick Start

1. Generate Validator Keys

cargo run -- --key-path path/to/store/key keys generate

2. View Your Public Key

cargo run -- --key-path path/to/store/key keys show

3. Configure Genesis

Create a genesis file that references your EVM genesis configuration. See example_genesis.toml for the required format.

4. Start Your Validator

Ensure your EVM client is running, then:

cargo run -- \
  --key-path /path/to/priv-key \
  --store-path /storage/directory \
  --engine-jwt-path /path/to/evm/jwt.hex \
  --genesis-path /path/to/genesis.toml

The validator will automatically discover other nodes listed in the genesis file and begin participating in consensus. Transactions can be submitted through the EVM client's RPC interface as usual.

Local Development

To spin up a 4-node testnet locally (requires reth in PATH):

cargo run --bin testnet

Architecture

Summit acts as the consensus layer, communicating with EVM execution clients through the Engine API. The execution client remains responsible for building blocks and processing transactions, while Summit handles:

  • Validator coordination
  • Block proposals
  • Consensus finalization
  • Network communication

Next steps / Future Roadmap

  • Dynamic Validator sets and staking through the Ethereum staking contract
    • Currently Summit just uses a static validator set at Genesis
    • We will leverage EVMs staking contract and add and remove validators in a similar fashion as Ethereum
  • Deeper benchmarks
  • More optimizations (potentially DKG threshold signatures to improve throughput)
  • Full Audit and completeness Q4 2025

Resources

Status

⚠️ Work in Progress - This project is under active development. APIs and features may change.

About

A consensus client for Reth

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages