Architecture
Podseq separates four concerns: producing blocks on a timer, executing them against an EVM,
publishing the resulting blocks to a DA layer, and settling commitments on L1.
Note: Transaction selection and ordering within a block are
handled by Reth, not podseq: see Sequencer.)
System overview#
┌─────────────────────────────────────────────────────────────────┐
│ Client Apps │
│ (wallets, dapps, indexers, RPC) │
└─────────────────────────────┬───────────────────────────────────┘
│ JSON-RPC / Engine API
┌─────────────────────────────▼───────────────────────────────────┐
│ Podseq │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌──────────────┐ │
│ │ Sequencer │ │ Reth │ │ P2P │ │ Walrus │ │
│ │ (signing) │ │ (Engine) │ │(Commonware)│ │ Submitter │ │
│ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ └───────┬──────┘ │
└────────┼──────────────┼──────────────┼────────────────┼─────────┘
│ │ │ │
▼ ▼ ▼ ▼
In-process Reth node Block gossip Walrus DA
sequencer (EVM state) (soft (erasure-coded)
loop confirmations)
│
▼
Sui L1
(attestations,
settlement)Crate layout#
crates/
├── core/ # Interfaces, types, Ed25519BlockSigner, Commonware runtime bridge
├── engine/ # Reth Engine API client
├── sui/ # Sui layer: Walrus DA + settlement + bridge vault (one wallet)
├── p2p/ # Block propagation (Commonware discovery + broadcast)
└── node/ # Binary: CLI, config, runner, full node, bridge relayer,
# and the `store` module (blocks, state, crash recovery)
move/ # Settlement contract (Sui Move)
solidity/ # EVM-side contracts
e2e/ # Integration tests against a real Reth container
docs/ # Project documentationpodseq-sui owns Walrus data availability, Sui settlement, and the Sui side of
the enshrined bridge. All go through a single Sui wallet, so they live in the
same crate. See Sui Settlement and
Bridge.
Design principles#
Zero-dependency core.
podseq-corecontains only traits, types, and the canonicalBlockSignerimplementation, with no external dependencies beyond the Sui signer primitives. Interfaces are stable; any implementation can be swapped without touching consumers.One responsibility per crate. Execution, DA/settlement, and networking each live in their own crate and communicate only through core traits. Block signing and persistent storage are single-consumer concerns and live next to their consumers (signing in
core, storage in thenodebinary).Rust-native stack. Async with Tokio, errors via
thiserrorin libraries andanyhowin the binary, serialization with Serde.Settlement-anchored DA. Block data lives on Walrus. The Walrus blob ID and the sequencer commitment are anchored on Sui. A full node can independently verify availability from those two sources.
Data flow#
The end-to-end path of a transaction, from mempool to settlement, is described in Block Production.