Skip to main content

Vexidus Load Test Results

Latest: March 31, 2026 — Performance overhaul deployed (Tier 1 scaling + RocksDB + Borsh + ElasticState) Network: 5-validator testnet with leader rotation + Vexcel attestation DAG Protocol: HyperSync consensus, Dragonfly Stream Phase 3 (mempoolless direct delivery)


Proven TPS (March 29, 2026)

MetricValue
Sustained TPS1,005 ops/sec (block-level throughput)
Engine throughput830,000+ ops/sec (1,329 bundles in 16ms)
Execution success99.5% (1,329/1,336 in peak block)
RPC rejection0% (all bundles accepted)
Peak single block1,318 bundles (13,180 ops)
Block time~2.2s (5 validators, 4 continents)
FinalitySingle-round BFT (1 block = final)

Network Configuration

ParameterValue
Validators5 (across 4 continents)
Block time~2.2s average (adaptive: 100ms-12s range)
Max tx/block50,000 (100,000 in benchmark mode)
LeaderBuffer capacity100,000
Gas price10 nanoVXS/gas
Leader rotationEnabled (pure stake-weighted, leader skip recovery)
P2P transportDragonfly Stream (sealed direct-to-leader, PQ envelopes)
Wire encodingBorsh binary with JSON fallback (dual-format)
StorageElasticState 3-tier (Hot/Warm/Cold) + RocksDB bloom filters + 512MB cache

Validator Nodes

NodeLocationStakeNotes
GravelinesOVH, France10,000 VXSSeed + validator
Remote 1Contabo, Germany10,000 VXS
Remote 2Contabo, Germany10,000 VXSTop producer
SG2OVH, Singapore10,000 VXS
MumbaiContabo, India10,000 VXS

Test Methodology (March 29)

Audit-grade Rust load tester (tools/loadtest-rs/) with pre-signed Ed25519 bundles. Each wallet sends exactly 1 bundle (nonce 0) — zero nonce contention by design. Wallet count auto-calculated from target TPS.

Transaction type: VXS transfers (10 per bundle, 1 nanoVXS each). Lightest operation type for pure throughput measurement.

Submission: Single RPC endpoint (localhost:9933), 128 concurrent async workers, token-bucket rate limiter at 100 bundles/sec. Bundles forwarded to leader via Dragonfly Stream direct routing.

Verification: Balance-delta checking (pre-test vs post-test wallet balances) + node execution logs as ground truth.


Results Summary (March 29)

MetricValue
Bundles submitted2,712 (100% RPC acceptance)
Bundles in blocks2,714 (block-level count)
Block span9 blocks (~27s)
Block-level TPS1,005 ops/sec
Submit rate90.4 bundles/sec (904 ops/sec)
Peak block#1760860: 1,318 bundles (4,393 ops/sec)
Latency p50 / p990.3ms / 552ms

Block-by-Block Breakdown

BlockBundlesOpsOps/sec
#17608601,31813,1804,393
#17608613013,0101,003
#17608622852,850950
#17608632812,810937
#17608644484,4801,493
#176086581810270

Engine Execution Speed

From node execution logs (precise Instant::elapsed() timing):

BlockProposedExecutedTimeSpeed
#17590611,3361,32916ms83,062 bundles/sec
#17591552662663ms88,667 bundles/sec
#17591562812814ms70,250 bundles/sec
#175942864164115ms42,733 bundles/sec

The execution engine processes bundles at 42,000–89,000 bundles/sec depending on block size. With 10 operations per bundle, this translates to 420,000–890,000 operations/second of raw processing speed.


Theoretical Maximum TPS

ParameterValue
Max bundles/block50,000 (100,000 in benchmark mode)
Ops per bundle10-50 (configurable)
Block time~2.2s (current), 100ms (adaptive under extreme load)
Max at 10 ops/bundle, 2.2s blocks227,000 TPS
Max at 10 ops/bundle, 100ms blocks5,000,000 TPS
Benchmark mode (100K bundles, 100ms)10,000,000 TPS

These are theoretical ceilings. Real-world throughput depends on RocksDB I/O, network propagation, and client submission rate. The engine processes 830,000+ ops/sec — execution is not the bottleneck. Distributed multi-client testing across all 5 validator RPCs is needed to push observed TPS toward the ceiling.

Scaling Tiers (Deployed + Planned)

TierStatusChangesCeiling
Tier 1: ConfigDeployed (Mar 31)50K bundles, 100ms floor, 250ms high load500K TPS
Tier 2: SerializationPartially deployedBorsh wire encoding (live), WriteBatch pipelining (planned)500K-1M TPS
Tier 3: ArchitecturePlannedTransaction lanes, block sharding, state commitment deferral1M+ TPS

What Limits Current TPS

The blockchain execution engine has never been saturated. All throughput limits are client-side:

  1. Single-RPC submission: All bundles submitted to one node (Gravelines). Distributed submission across 5 RPCs would increase throughput ~5x.
  2. HTTP round-trip: 128 concurrent workers limited by TCP connection pool and serialization overhead.
  3. Dragonfly forwarding: ~75% of bundles delivered to leader on first attempt. Remaining arrive via bootnode relay.

What is NOT a bottleneck

  • Execution speed: 830K+ ops/sec — engine idle >99% of the time
  • RocksDB writes: WriteBatch commits in under 1ms. Bloom filters, 512MB cache, periodic flush (every 100 blocks) all deployed.
  • Block capacity: Peak observed is 1,318 bundles (2.6% of 50K limit)
  • Network gossip: Block propagation uses Borsh binary encoding (5-10x smaller than JSON). Across 4 continents in under 500ms.
  • State reads: ElasticState hot tier provides sub-microsecond reads for active accounts

Historical Results (March 5, 2026)

Earlier Python-based load test with 500 wallets and 11 operation types:

MetricValue
Submitted12,361 (100% RPC acceptance)
On-chain success92% (sampled)
Peak block2,856 transactions
Submission TPS67.9
Inclusion TPS144.5
Operation types11 (transfers, swaps, intents, liquidity)

This test was limited by Python client throughput and nonce collisions. The Rust load tester (March 29) eliminated both bottlenecks.


Current Testnet State

MetricValue
Block height1,803,000+
Validators5 (4 continents)
VexVisor upgrades30+
Continuous uptime33+ days
Block time~2.2s average
Node crashes0

Transaction Cost

OperationGasCost (at $1/VXS)
VXS Transfer~21,000~$0.00021
Token Create~50,000~$0.0005
Swap~55,000~$0.00055
Bridge Deposit~100,000~$0.001
Name Registration~60,000~$0.0006 + name fee

Gas price: 10 nanoVXS per gas unit. Fees split: 80% to block proposer, 20% to Foundation Treasury.


Key Takeaways

  • 1,005 sustained TPS proven with single-client submission — chain is not the bottleneck
  • 830,000+ ops/sec engine throughput — execution completes in milliseconds per block
  • 99.5% execution success with proper nonce management (1-wallet-per-bundle)
  • ~$0.0002 per transaction — Solana-competitive fees
  • Single-round BFT finality — 1 block (~2.2s) = final, no confirmations needed
  • Zero crashes across 30+ binary upgrades and 1.8M+ blocks
  • Theoretical ceiling: 500,000 TPS at current config, 1M+ TPS with planned Tier 2-3 optimizations
  • Borsh binary wire protocol — 5-10x smaller block propagation across all validators
  • ElasticState active — 3-tier intelligent storage with sub-microsecond hot reads