Skip to content

TPS Analysis

O edited this page Dec 23, 2025 · 1 revision

O Blockchain Transaction Throughput (TPS) Analysis

Current System Configuration

Block Parameters

  • Maximum Block Weight: 4,000,000 weight units (same as Bitcoin)
  • Maximum Block Serialized Size: 4,000,000 bytes (~3.8 MB)
  • Minimum Transaction Weight: 240 weight units (WITNESS_SCALE_FACTOR Γ— 60)

Block Time (Dynamic)

The O Blockchain uses dynamic block time based on business participation:

Business Participation Block Time Blocks/Hour Blocks/Day
Low (0%) 12 seconds 300 7,200
Medium (50%) 9 seconds 400 9,600
High (80%) 6 seconds 600 14,400

Source: src/consensus/o_pow_pob.h and src/consensus/o_pow_pob.cpp

Theoretical Maximum TPS

Scenario 1: Maximum Capacity (Minimum Transaction Size)

  • Transaction Weight: 240 (minimum)
  • Transactions per Block: 4,000,000 Γ· 240 = ~16,667 transactions
Block Time Blocks/Second Maximum TPS
12 seconds 0.083 ~1,389 TPS
9 seconds 0.111 ~1,852 TPS
6 seconds 0.167 ~2,778 TPS

Scenario 2: Realistic Capacity (Average Transaction Size)

Assuming average transaction weight of ~600 weight units (typical P2PKH with SegWit):

  • Transactions per Block: 4,000,000 Γ· 600 = ~6,667 transactions
Block Time Blocks/Second Realistic TPS
12 seconds 0.083 ~556 TPS
9 seconds 0.111 ~741 TPS
6 seconds 0.167 ~1,111 TPS

Scenario 3: Conservative Capacity (Larger Transactions)

Assuming larger transaction weight of ~1,000 weight units (complex transactions):

  • Transactions per Block: 4,000,000 Γ· 1,000 = 4,000 transactions
Block Time Blocks/Second Conservative TPS
12 seconds 0.083 ~333 TPS
9 seconds 0.111 ~444 TPS
6 seconds 0.167 ~667 TPS

Current System Performance Summary

Realistic Throughput Range

  • Minimum (12-second blocks): 333-556 TPS
  • Maximum (6-second blocks): 667-1,111 TPS
  • Peak Theoretical: ~2,778 TPS (with minimum-sized transactions)

Average Expected Performance

With typical business participation (30-50%), expect:

  • Block Time: ~9-10 seconds
  • Throughput: ~400-600 TPS (realistic)
  • Peak: ~700-800 TPS (under optimal conditions)

Comparison with Other Blockchains

Blockchain Block Time Block Size Theoretical TPS Actual TPS
Bitcoin 10 minutes ~4 MB ~7 TPS ~3-7 TPS
Ethereum ~12 seconds Variable ~15 TPS ~15-20 TPS
O Blockchain 6-12 seconds ~4 MB 333-1,111 TPS 400-600 TPS (est.)

Factors Affecting Actual TPS

Positive Factors

  1. βœ… Fast block times (6-12 seconds vs Bitcoin's 10 minutes)
  2. βœ… Standard Bitcoin block size (4 MB weight limit)
  3. βœ… Dynamic block time adapts to demand
  4. βœ… SegWit support (efficient transaction encoding)

Limiting Factors

  1. ⚠️ Network propagation (faster blocks = more orphan risk)
  2. ⚠️ Transaction complexity (O transactions may include measurement data)
  3. ⚠️ Multi-currency support (may increase transaction size)
  4. ⚠️ Database writes (3 LevelDB databases per transaction)

Practical Recommendations

For Current Production Use

  • Target: 400-600 TPS sustained
  • Peak: Up to 800 TPS during high business activity
  • Conservative: Plan for 300-400 TPS for capacity planning

For Scaling Beyond Current Limits

  1. Layer 2 Solutions (mentioned in README as future plan)
  2. Transaction batching (combine multiple operations)
  3. Optimize transaction size (use efficient encoding)
  4. Network optimization (reduce propagation delays)

Notes

  • These calculations assume the standard Bitcoin Core block weight limits are in use
  • Actual TPS may be lower due to network conditions, mempool management, and validation overhead
  • O-specific transaction types (water price measurements, validations, etc.) may have different sizes
  • The dynamic block time system automatically adjusts throughput based on business participation

Last Updated: 2025-01-06
Configuration Source: src/consensus/consensus.h, src/consensus/o_pow_pob.h

Clone this wiki locally