Benchmark methodology

How performance numbers are measured and reported.

Principles

Reported throughput values are intended to be reproducible and conservative: strict validation enabled, deterministic execution, and a clear separation between synthetic throughput and end-to-end committed throughput.

What we publish

python scripts/praxisnet_benchmark_tps.py --blocks 10 --tx-per-block 20000 --block-interval-ms 200 --accounts 2000 \ --require-rust --state-apply-mode partitioned --state-partitions 16 --batch-signature-verify

Public artifacts

Performance figures

  • Validator-path throughput (strict profile runs): approximately ~340k–380k TPS, depending on workload shape and batch configuration.
  • End-to-end committed throughput (single machine, CPU-only): see the published JSON artifact. Current strict profile windows are approximately ~17.8k–18.1k TPS (20k tx/block profile) and ~73k–84k TPS (100k tx/block profile).

Hardware

Publish hardware details alongside results (CPU model, core count, RAM, OS, kernel). Keep the runtime single-machine and CPU-only.

Exact commands

Generate a fresh POR-style report bundle (includes the synthetic TPS JSON):

python scripts/praxisnet_por1_verify.py --out-dir data/artifacts/praxisnet_por1/$(date -u +%Y%m%d_%H%M%S) \
  --synthetic-accounts 2048 \
  --synthetic-batches 1000,5000,10000

Publish the public verification bundle (copies required reports + exports chain JSONL and genesis artifacts):

python scripts/praxisnet_publish_artifacts.py --version v1 \
  --praxisnet-data-dir data/praxisnet_testnet \
  --out-root artifacts/public/praxisnet

Important: never claim “validator TPS” from HTTP ingest. Label synthetic/apply/validator/end-to-end numbers separately.

End-to-end TPS harness

Run the end-to-end benchmark harness (single machine, CPU-only) and publish the raw JSON output.

python scripts/praxisnet_benchmark_tps.py --blocks 10 --tx-per-block 20000 --block-interval-ms 200 --accounts 2000 \
+  --require-rust --state-apply-mode partitioned --state-partitions 16 --batch-signature-verify