=======================================================
BLOCK-STM END-TO-END BLOCK-PRODUCTION THROUGHPUT
  machine threads available : 16
  txns per batch            : 20000
  simulated EVM cost per tx : 20 keccak-rounds
  timing                    : median of 5 runs (ms)
  pipeline                  : exec (parallel) + commit (serial) + state-root (serial)
  serial-equivalence        : par state == seq state AND keccak roots identical, EVERY run
=======================================================

### 0% designed conflict (disjoint accounts, 64 contracts spread)
  committed state keys      : 49637
  sequential  exec 166.95 ms | root 9.45 ms | END-TO-END 176.40 ms | root-share 5.4%
  sequential  end-to-end TPS: 113378
  W    |     exec   commit    root    e2e_ms |   execSpd    e2eSpd |     TPS  abort% |  root%e2e |  equiv
  1    |   192.12     8.69    9.24    210.04 |     0.87x     0.84x |   95220    0.0% |      8.5% |   PASS
  2    |   108.62     8.72   10.23    127.57 |     1.54x     1.38x |  156775    0.0% |     14.9% |   PASS
  4    |    71.23     8.45    8.97     88.65 |     2.34x     1.99x |  225609    0.0% |     19.7% |   PASS
  8    |    38.84     7.82    8.10     54.76 |     4.30x     3.22x |  365254    0.1% |     29.1% |   PASS
  16   |    32.50     7.33    8.23     48.06 |     5.14x     3.67x |  416134    0.2% |     32.4% |   PASS
  Amdahl: serial tail (commit+root) = 16.54 ms; end-to-end speedup ceiling @16w = 3.65x, @infinite cores = 10.67x

### 10% designed conflict (100 hot accts, 16 contracts)
  committed state keys      : 18342
  sequential  exec 170.92 ms | root 2.87 ms | END-TO-END 173.79 ms | root-share 1.7%
  sequential  end-to-end TPS: 115081
  W    |     exec   commit    root    e2e_ms |   execSpd    e2eSpd |     TPS  abort% |  root%e2e |  equiv
  1    |   208.57     4.91    3.13    216.61 |     0.82x     0.80x |   92331    0.0% |      3.7% |   PASS
  2    |   111.66     5.00    3.57    120.24 |     1.53x     1.45x |  166336    0.1% |      7.1% |   PASS
  4    |    68.63     5.13    3.34     77.11 |     2.49x     2.25x |  259374    0.2% |     11.0% |   PASS
  8    |    41.14     3.93    3.27     48.33 |     4.15x     3.60x |  413814    0.5% |     14.9% |   PASS
  16   |    31.59     5.02    3.26     39.87 |     5.41x     4.36x |  501666    0.8% |     20.8% |   PASS
  Amdahl: serial tail (commit+root) = 9.54 ms; end-to-end speedup ceiling @16w = 4.20x, @infinite cores = 18.21x

### 50% designed conflict (20 hot accts, 4 contracts)
  committed state keys      : 9006
  sequential  exec 164.90 ms | root 1.52 ms | END-TO-END 166.41 ms | root-share 0.9%
  sequential  end-to-end TPS: 120182
  W    |     exec   commit    root    e2e_ms |   execSpd    e2eSpd |     TPS  abort% |  root%e2e |  equiv
  1    |   194.05     2.72    1.57    198.34 |     0.85x     0.84x |  100839    0.0% |      2.2% |   PASS
  2    |   111.70     2.63    1.73    116.05 |     1.48x     1.43x |  172332    2.0% |      3.8% |   PASS
  4    |    64.83     2.23    1.40     68.46 |     2.54x     2.43x |  292161    5.2% |      5.3% |   PASS
  8    |    44.69     2.25    1.57     48.51 |     3.69x     3.43x |  412270    9.1% |      7.9% |   PASS
  16   |    38.28     2.03    1.59     41.90 |     4.31x     3.97x |  477368   13.5% |      8.6% |   PASS
  Amdahl: serial tail (commit+root) = 3.19 ms; end-to-end speedup ceiling @16w = 3.92x, @infinite cores = 52.13x

### PATHOLOGICAL ~100% (single hot slot, no parallelism)
  committed state keys      : 1996
  sequential  exec 164.73 ms | root 0.29 ms | END-TO-END 165.03 ms | root-share 0.2%
  sequential  end-to-end TPS: 121191
  W    |     exec   commit    root    e2e_ms |   execSpd    e2eSpd |     TPS  abort% |  root%e2e |  equiv
  1    |   191.33     0.06    0.35    191.74 |     0.86x     0.86x |  104306    0.0% |      0.2% |   PASS
  2    |   115.17     0.05    0.30    115.51 |     1.43x     1.43x |  173140    6.4% |      0.3% |   PASS
  4    |    71.82     0.07    0.35     72.23 |     2.29x     2.28x |  276876   14.0% |      0.6% |   PASS
  8    |    57.49     0.04    0.30     57.83 |     2.87x     2.85x |  345848   20.6% |      0.6% |   PASS
  16   |    61.98     0.04    0.41     62.44 |     2.66x     2.64x |  320331   24.2% |      0.7% |   PASS
  Amdahl: serial tail (commit+root) = 0.39 ms; end-to-end speedup ceiling @16w = 2.66x, @infinite cores = 422.21x

=======================================================
SERIAL-EQUIVALENCE: 100 checks, 0 mismatches
  RESULT: PASS -- every parallel run committed the exact sequential state + root
=======================================================

HONEST READING:
  - execSpd is the EXECUTION-PHASE speedup (comparable to the documented ~9.4x).
  - e2eSpd is the END-TO-END block-production speedup. It is LOWER, because the
    commit (state materialization) and state-root (keccak) phases are serial and
    do not shrink with more workers -- the Amdahl serial tail.
  - TPS is the real end-to-end transactions/second of THIS pipeline on THIS box
    (shared-vCPU cloud). It is a measured rollup-batch number, NOT the 273k TPS
    documented-conditions marketing ceiling and does not reach or imply it.
  - Under total conflict (pathological) there is no parallelism; end-to-end can be
    <= 1x. That is the correct, honest behavior of Block-STM.
