diff --git a/docs/plans/pool.md b/docs/plans/pool.md index e39e3843e..2fd58eef7 100644 --- a/docs/plans/pool.md +++ b/docs/plans/pool.md @@ -475,6 +475,23 @@ faults stacked, each its own row: So the window holds no pool-0 share numbers; its rerun waits for both fixes on the 0.3.21 pair. +### 10.5b The Devnet 3 pair (7 October 2026, evening): two rules from the first live open pool + +the project lead's ruling through main (17:3xZ): the pool split goes on on Devnet 3 by activation height once one open pool of two +or more members has mined Devnet 3 for an hour with the switch at never (IGNS and IGNP carried, exec roots agreeing); +the height is the hour's last block's DAA + 7,200, compiled by the node lane. The fleet lane's pair (dn3-pool-a, +dn3-pool-b: 3070s on separate hosts, 0.3.22 nodes 69d1b56e, the paired miner, `igneum-pool --open` beside each) found +two faults in the daemon before the first share, both of this lane: + +| Fault | What the pair showed (UTC) | Rule | +|---|---|---| +| The job window: 12 jobs per member | 18:16Z: a template every second on a 1-block-a-second chain plus the vardiff and re-stamp fetches (3.6 jobs a second), so the window was about 3 s and a GPU batch outlived it; 25,477 `unknown_job` and 19,119 `stale`, 0 accepted; the fast-time gate never showed it because its CPU miners found shares inside the window | jobs are kept 60 s or 256 per member, never fewer than 12; the open pool's stale grace is 30 s unless `--stale-grace-ms` says otherwise (P2Pool's rule: a share of the share chain is valid on any template whose share-chain parent the chain accepts; a share that is also a block on an old template is at worst an orphan) (9fd3b258) | +| The hash tree: a daemon a release behind the chain | 18:47Z: `WRONG HASH` on every share that reached the check; the daemon was built from the release-0.3.21 repo tree (igneum-pow before the 0.3.22 re-pin, fork b0444f51) and Devnet 3 runs class v4 sub-version 3 (bd710a36: igneum-pow 017e7037, object byte 7); the miner, built from the 0.3.22 tree, hashed program ed21887203460356 for epoch f3271700 and the daemon another program for the same seeds | a pool daemon is built from the same repo tree as the chain's node, never a release behind; the Devnet 3 daemon is pool-finish-22 c15b39b0 on the release-0.3.22 tree against the fork at 69d1b56e (sha256 45db7613e167...), and pool-0 on Devnet 3 carries the same constraint | + +The fleet lane's own lesson beside them: its first swap killed a wrapper and not the daemon (`pgrep | head -1`), so the +old binary ran on for 26 minutes under a new file; a swap reads the running exe's sha from `/proc//exe`, never the +file's (the standing rule's shape: the chain-side or process-side fact, never a name). + ### 10.6 Open after this round | Item | Why it is open | What closes it |