Skip to content

Performance Baselines

Michael Fazio edited this page Mar 15, 2026 · 5 revisions

Performance Baselines

Measured performance numbers from preview testnet validation. These serve as regression baselines for ongoing development.

Test Environment

  • Network: Cardano Preview Testnet (network-magic=2)
  • Backend: torsten-lsm (custom LSM-tree with WAL)
  • Build: cargo build --release (panic=abort, LTO)

Block Replay

Metric Value
Replay throughput 13,728 blk/s
Total blocks replayed ~4M
Elapsed time ~290s

Block replay measures the rate of applying blocks to the ledger from the ImmutableDB (no network I/O). This exercises the full validation pipeline: CBOR deserialization, UTxO lookups, Phase-1/Phase-2 validation, and ledger state updates.

Mithril Snapshot Import

Metric Value
Import time ~9 min
Blocks imported ~4M
Import method tar.zst download + extraction + digest verification

Mithril import downloads a certified snapshot from the Mithril aggregator, verifies SHA256 digests, and stores blocks directly as ImmutableDB chunk files. This bypasses the full sync from genesis.

Memory Usage at Tip

Metric Value
RSS at tip ~5.8 GB
Primary consumers UTxO in-memory cache, ledger state snapshots (mark/set/go), volatile block cache

Memory is measured after the node has synced to tip and is operating in steady state (receiving new blocks, serving peers).

UTxO Store Disk Usage

Metric Value
On-disk size ~1.8 GB
Backend torsten-lsm SSTables + WAL
Bloom filter Tuned for ~15M UTxO entries
Cache 256 MB block cache, 128 MB write buffer

Sync Performance (Network)

Metric Value
ChainSync pipeline depth 150 (default)
Concurrent block fetchers 4
Full preview sync (genesis) ~10 hours
Full preview sync (Mithril + catch-up) ~15 min

Prometheus Metrics

The node exposes Prometheus metrics on port 12798. Key performance-related metrics:

  • blocks_applied — total blocks applied to ledger
  • sync_progress_percent — percentage of chain synced
  • utxo_count — current UTxO set size
  • mempool_tx_count / mempool_bytes — mempool utilization
  • peers_connected — active peer count

Notes

  • All measurements are from the preview testnet. Mainnet numbers will differ (larger UTxO set, more complex transactions, longer chain).
  • Performance varies with hardware. Numbers above are from development hardware and should be treated as approximate baselines.
  • The TORSTEN_PIPELINE_DEPTH environment variable can be tuned to trade memory for sync speed.

Clone this wiki locally