docs/plans/pool.md 10.5b: the Devnet 3 pair's two daemon faults and their rules (the job window; a daemon built from the chain's own tree), the fleet's swap lesson

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-07 19:01:39 +00:00
parent 9066cd9f73
commit 02a044f9b8

View file

@ -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/<pid>/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 |