igneum/sim/horizon/network/README.md
2026-10-06 20:52:33 +00:00

14 lines
2.2 KiB
Markdown

# sim/horizon/network
Models behind `docs/analysis/horizon/network.md` (Horizon lane 5, network, 6 October 2026). Python 3.10, standard library only; the Mac, under the main checkout's run lock (`/Users/joshm/Projects/igneum/tools/lock/with-lock.sh run nice -n 19 ...`). Outputs are counts, shares and seconds, never timings of this machine.
| File | What | Run |
|---|---|---|
| `propagation.py` | Poisson block production, star or mesh topology, lognormal link latency, inv/request/block hops, a hub (or every node) with a per-block validation cost and a queue, GHOSTDAG colouring with the first k-cluster condition, mergeset and parent caps, the natural reorg depth at miner 0 | `python3 sim/horizon/network/propagation.py --grid` (the bps x delay grid); single runs with `--topology star --nodes 41 --bps 10 --k 124 --link 40 --hub-s0 115 --schedule sim/horizon/network/runA-schedule.csv --seconds 1200` |
| `run-batch.sh`, `run-batch2.sh` | the lane's runs, appended to `results.md` and `results-2.md` | `bash sim/horizon/network/run-batch.sh` (about 2 min), `run-batch2.sh` (about 2 min) |
| `runA-schedule.csv` | run A's measured production per minute (the Devnet 2 seed's `PoW accepted` lines on igneum-build-1, `/home/build/dn2seed-A.log`) | input to `--schedule` |
| `burst-schedule.csv` | a 26 blocks/s genesis burst for 5 min then 10 bps | input to `--schedule` |
| `controller.py` | the difficulty rule against a wide DAG: the fork's blue-work-over-capped-chain-step estimator, the whole-DAG estimator (Kaspa's window) and a red-corrected blue estimator, closed loop with the 3% / 10% clamps | `python3 sim/horizon/network/controller.py --delays 0.3,1,2,3,5,10,30` (10 bps); `--bps 1 --k 18 --delays 0.3,2,5,20,30,60 --lambda0 2.6` (1 bps); outputs `controller-10bps.md`, `controller-1bps.md` |
| `cost.py` | GHOSTDAG parameters per rate, the vote bounds, bytes per node per day, CPU per block, RSS and disk, pruned and archival storage, subsidy and payout intervals, the solo-miner table, finality timing, light-client bytes; every input labelled in `INPUTS` | `python3 sim/horizon/network/cost.py > sim/horizon/network/cost-tables.md` |
Seeds: 7 everywhere. Results files: `results.md`, `results-2.md`, `controller-10bps.md`, `controller-1bps.md`, `cost-tables.md`.