5.8 KiB
propagation.py results, batch 2 (per-block node cost), 2026-10-06T20:07:52Z, Mac, under with-lock run, seed 7
E. Run A replay with the hub's MEASURED per-block CPU (61, 115, 345 ms per accepted block; A.jsonl cpu_rss deltas over accepted deltas), link 40 ms
star bps=10.0 k=124 nodes=41 degree=8 link=40.0 hop=0.0 hub=(61.0,0.0) node=(0.0,0.0) join=0.0 sched=sim/horizon/network/runA-schedule.csv seconds=1200.0 seed=7 produced 12812 (10.68/s) merged 12812 red share 46.8% chain 1461 mergeset mean 8.8 max 194 tips 20.2 reorg max 43 p99 4 hub wait 26.35s util 0.65 node wait 0.00s d90 26.71s star bps=10.0 k=124 nodes=41 degree=8 link=40.0 hop=0.0 hub=(115.0,0.0) node=(0.0,0.0) join=0.0 sched=sim/horizon/network/runA-schedule.csv seconds=1200.0 seed=7 produced 12815 (10.68/s) merged 9108 red share 88.1% chain 441 mergeset mean 20.7 max 199 tips 21.6 reorg max 2 p99 2 hub wait 320.84s util 1.23 node wait 0.00s d90 276.55s star bps=10.0 k=124 nodes=41 degree=8 link=40.0 hop=0.0 hub=(345.0,0.0) node=(0.0,0.0) join=0.0 sched=sim/horizon/network/runA-schedule.csv seconds=1200.0 seed=7 produced 12746 (10.62/s) merged 3509 red share 82.6% chain 358 mergeset mean 9.8 max 45 tips 9.9 reorg max 3 p99 2 hub wait 1768.55s util 3.66 node wait 0.00s d90 439.87s
F. The knee: star at a constant 10 bps, hub per-block cost 20 to 150 ms, 600 s
star bps=10.0 k=124 nodes=41 degree=8 link=40.0 hop=0.0 hub=(20.0,0.0) node=(0.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 5923 (9.87/s) merged 5916 red share 0.0% chain 1712 mergeset mean 3.5 max 10 tips 3.5 reorg max 2 p99 2 hub wait 0.00s util 0.20 node wait 0.00s d90 0.33s star bps=10.0 k=124 nodes=41 degree=8 link=40.0 hop=0.0 hub=(40.0,0.0) node=(0.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 5906 (9.84/s) merged 5900 red share 0.0% chain 1592 mergeset mean 3.7 max 10 tips 3.7 reorg max 3 p99 2 hub wait 0.01s util 0.39 node wait 0.00s d90 0.36s star bps=10.0 k=124 nodes=41 degree=8 link=40.0 hop=0.0 hub=(60.0,0.0) node=(0.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 6072 (10.12/s) merged 6065 red share 0.0% chain 1478 mergeset mean 4.1 max 12 tips 4.1 reorg max 3 p99 2 hub wait 0.05s util 0.61 node wait 0.00s d90 0.41s star bps=10.0 k=124 nodes=41 degree=8 link=40.0 hop=0.0 hub=(80.0,0.0) node=(0.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 6101 (10.17/s) merged 6096 red share 0.0% chain 1244 mergeset mean 4.9 max 20 tips 5.2 reorg max 4 p99 2 hub wait 0.18s util 0.81 node wait 0.00s d90 0.57s star bps=10.0 k=124 nodes=41 degree=8 link=40.0 hop=0.0 hub=(100.0,0.0) node=(0.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 6089 (10.15/s) merged 5947 red share 15.2% chain 293 mergeset mean 20.3 max 116 tips 22.6 reorg max 8 p99 7 hub wait 8.50s util 1.01 node wait 0.00s d90 8.81s star bps=10.0 k=124 nodes=41 degree=8 link=40.0 hop=0.0 hub=(150.0,0.0) node=(0.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 6048 (10.08/s) merged 3986 red share 75.2% chain 146 mergeset mean 27.3 max 66 tips 21.8 reorg max 3 p99 3 hub wait 156.83s util 1.51 node wait 0.00s d90 105.57s
G. Mesh of degree 8 where EVERY node pays the per-block cost (40, 80, 115 ms), 10 bps, 600 s
mesh bps=10.0 k=124 nodes=42 degree=8 link=40.0 hop=0.0 hub=(0.0,0.0) node=(40.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 5763 (9.61/s) merged 5763 red share 0.0% chain 1874 mergeset mean 3.1 max 9 tips 3.0 reorg max 3 p99 2 hub wait 0.00s util 0.00 node wait 0.01s d90 0.34s mesh bps=10.0 k=124 nodes=42 degree=8 link=40.0 hop=0.0 hub=(0.0,0.0) node=(80.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 6034 (10.06/s) merged 6030 red share 0.0% chain 1356 mergeset mean 4.4 max 18 tips 4.3 reorg max 3 p99 2 hub wait 0.00s util 0.00 node wait 0.12s d90 0.66s mesh bps=10.0 k=124 nodes=42 degree=8 link=40.0 hop=0.0 hub=(0.0,0.0) node=(115.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 6069 (10.12/s) merged 5318 red share 52.4% chain 159 mergeset mean 33.4 max 160 tips 15.2 reorg max 16 p99 11 hub wait 0.00s util 0.00 node wait 25.98s d90 46.48s
H. Mesh at 1 bps with the same per-block costs (the control), 600 s
mesh bps=1.0 k=18 nodes=42 degree=8 link=40.0 hop=0.0 hub=(0.0,0.0) node=(115.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 645 (1.07/s) merged 645 red share 0.0% chain 455 mergeset mean 1.4 max 5 tips 1.4 reorg max 2 p99 1 hub wait 0.00s util 0.00 node wait 0.01s d90 0.49s mesh bps=1.0 k=18 nodes=42 degree=8 link=40.0 hop=0.0 hub=(0.0,0.0) node=(345.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 562 (0.94/s) merged 562 red share 0.0% chain 341 mergeset mean 1.6 max 7 tips 1.7 reorg max 2 p99 2 hub wait 0.00s util 0.00 node wait 0.07s d90 1.08s
I. Star at 10 bps, ideal hub, link latency 40 to 300 ms (pure latency)
star bps=10.0 k=124 nodes=41 degree=8 link=40.0 hop=0.0 hub=(0.0,0.0) node=(0.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 5906 (9.84/s) merged 5901 red share 0.0% chain 1802 mergeset mean 3.3 max 9 tips 3.3 reorg max 3 p99 2 hub wait 0.00s util 0.00 node wait 0.00s d90 0.30s star bps=10.0 k=124 nodes=41 degree=8 link=100.0 hop=0.0 hub=(0.0,0.0) node=(0.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 5954 (9.92/s) merged 5948 red share 0.0% chain 1017 mergeset mean 5.8 max 15 tips 5.9 reorg max 3 p99 2 hub wait 0.00s util 0.00 node wait 0.00s d90 0.73s star bps=10.0 k=124 nodes=41 degree=8 link=200.0 hop=0.0 hub=(0.0,0.0) node=(0.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 6083 (10.14/s) merged 6075 red share 0.0% chain 609 mergeset mean 10.0 max 20 tips 9.4 reorg max 4 p99 3 hub wait 0.00s util 0.00 node wait 0.00s d90 1.45s star bps=10.0 k=124 nodes=41 degree=8 link=300.0 hop=0.0 hub=(0.0,0.0) node=(0.0,0.0) join=0.0 sched=None seconds=600.0 seed=7 produced 5862 (9.77/s) merged 5847 red share 0.0% chain 472 mergeset mean 12.4 max 23 tips 11.8 reorg max 4 p99 3 hub wait 0.00s util 0.00 node wait 0.00s d90 2.16s DONE 20:09:57