MCPcopy Create free account
hub / github.com/SeismicSystems/summit

github.com/SeismicSystems/summit @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,423 symbols 6,793 edges 128 files ⚖ MIT 331 documented · 23% updated 9d ago★ 628 open issues

Browse by type

Functions 1,261 Types & classes 162
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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 & Ed25519 Cryptography: Secure validator key management
  • Built with Commonware: Leverages primitives from the Commonware library
  • Dynamic Validator Set: Supports validator deposits (EIP-6110) and withdrawals (EIP-7002)

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 --bin summit -- keys generate --key-store-path /path/to/keys

2. View Your Public Key

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

3. Configure Genesis

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

Print the config digest that identifies the chain it founds — every validator must agree on it, and the file is checked on the way in:

cargo run --bin summit -- genesis digest /path/to/genesis.toml

4. Start Your Validator

Ensure your EVM client is running, then:

cargo run --bin summit -- run \
  --key-store-path /path/to/keys \
  --store-path /storage/directory \
  --engine-ipc-path /tmp/reth_engine_api.ipc \
  --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

  • 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.

Extension points exported contracts — how you extend this code

browse all types & interfaces →

Core symbols most depended-on inside this repo

browse all functions →

Shape

Method 673
Function 588
Class 126
Enum 23
Interface 13

Languages

Rust100%

Modules by API surface

types/src/ssz_state_tree.rs162 symbols
types/src/consensus_state.rs115 symbols
types/src/withdrawal.rs51 symbols
types/src/ssz_tree.rs42 symbols
node/src/test_harness/mock_engine_client.rs38 symbols
finalizer/src/db.rs38 symbols
types/src/ssz_tree_key.rs36 symbols
syncer/src/actor.rs36 symbols
types/src/reth.rs35 symbols
types/src/dynamic_epocher.rs32 symbols
types/src/protocol_params.rs30 symbols
syncer/src/ingress/handler.rs28 symbols

For agents

$ claude mcp add summit \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page