diff --git a/docs/TESTNET_RUNBOOK.md b/docs/TESTNET_RUNBOOK.md new file mode 100644 index 0000000..be87129 --- /dev/null +++ b/docs/TESTNET_RUNBOOK.md @@ -0,0 +1,145 @@ +# Testnet dress-rehearsal runbook + +A repeatable rehearsal that proves the subnet does the right thing **before** mainnet. +Every step ends in an assertion, not an eyeball — `leoma preflight` gates the launch, +and `leoma smoke` confirms each scenario was actually exercised and handled correctly. + +Run this on testnet with at least one validator + one eval box (a GPU) and a handful of +miner hotkeys you control. + +--- + +## 0. Prerequisites — pin the consensus surface + +The subnet deliberately burns 100% to UID 0 until these are pinned. This is not optional. + +1. **Pick the base-model revision** and pin `chain.toml [seed].seed_digest` (the genesis + king) to the exact Wan2.1-I2V-14B-480P revision you will run — either a Hippius OCI + digest (`sha256:<64hex>`) or a HuggingFace commit SHA (`hf:<40hex>`). `preflight` + rejects anything else as unresolvable. +2. **Build and publish the corpus:** + ```bash + leoma corpus build-manifest --corpus-id leoma-testnet-v1 # decides windows, hashes truth + leoma corpus publish-manifest manifest.json # prints the digest + ``` + Paste the printed digest into `chain.toml [corpus].manifest_digest`. +3. **Verify each eval box** decodes the corpus byte-identically to the manifest: + ```bash + leoma corpus verify --sample 4 + ``` + A box that fails this must not duel — its distances would not be reproducible. + +## 1. Calibrate `delta_threshold` (the load-bearing measurement) + +This is the single largest open consensus risk. On **each GPU type** in the fleet: + +```bash +leoma calibrate generate --gpu