diff --git a/docs/plans/finality-v3-devnet-publish.md b/docs/plans/finality-v3-devnet-publish.md index 4c1b4bdbc..b16868788 100644 --- a/docs/plans/finality-v3-devnet-publish.md +++ b/docs/plans/finality-v3-devnet-publish.md @@ -38,4 +38,40 @@ The live manifests at 18:02:55Z (token and public): `0.3.9, published 2026-10-05 135200, deadline_note "finality v3", override {difficulty_v2_activation_daa 33000, fees_v1_activation_daa 210000, finality_v3_activation_daa 135200, proving_v0_activation_daa 84100}}`. -(pending: the app nodes, the sweep, the split length, the first v3 checkpoint) +## The app nodes + +| Node | `update-now-finality-135200` ran | Node restarted with the object | Lines (the digest job `digest-pcs-135200`, 150 s after its wake) | +|---|---|---|---| +| Mac d937c69d | 18:02:57Z | none needed: the app has had NO node of its own since its hourly engine restart at 17:45:16Z. That engine found node 1 answering on 127.0.0.1:26610 (`a node already answers on 127.0.0.1:26610; using it (it is not stopped by this app)`, 17:45:16Z) and runs as an external-node app since; its card's DAA and peers are node 1's. The app wrote `override.json` = the object at 18:02:58Z and logged `the node restarts with it at a safe moment`, which never comes for an external node (`engine.rs` 2050: `!self.node_external`); the restart job `restart-node-mac-135200` (18:10:47Z) answered `the node is external; nothing done` (18:11:11Z). Node 1 itself restarted with the object at 17:58:25Z | node 1's lines, below | +| PC 2 1ccfe586 | 18:04:55Z | 18:04:5xZ (`node-20261005-165651-r3.log`) | at 18:04:57Z already `Refusing peer 192.168.68.67 (PC 1): ... local 1f4b44255fcd2ea8f75664ed47200f409186ddd2292960c9e2cf95bbbdc11505 remote ab8847da...`; `override.json` = the object | +| PC 1 ae432dc7 | 18:06:26Z | 18:06:28Z (`node-20261005-172631-r3.log`) | `Finality rule v3 from the override file: active from checkpoint DAA score 135200`, `Consensus params digest: 1f4b4425...`, `igneumd/2.1.0-a24ab01a`; `override.json` = the object (PC 1 was not busy after all: the HiveOS job had ended, so no queueing was needed) | + +The split: the three hand-run nodes on 1f4b4425 from 17:58:13Z, the miners (PC 1, PC 2) on ab8847da until 18:04:57Z +and 18:06:28Z; the observer's DAA crept 120,755 -> 120,835 between 17:57Z and 18:03Z (only node 1's own blocks on +that side), then 121,486 at 18:09:54Z once PC 2 had joined it: 6 min 44 s until the first miner, 8 min 15 s until both. + +## The sweep: every live node on 1f4b44255fcd2ea8f75664ed47200f409186ddd2292960c9e2cf95bbbdc11505 + +| Node | Carried N3 from | Read from | +|---|---|---| +| The observer | 17:58:13Z | `/tmp/igneum-devnet/observer-v4.out` | +| Node 1 (also what the Mac app reports since 17:45Z) | 17:58:25Z | `/tmp/igneum-devnet/node1.out` | +| The seed | 17:58:43Z | the journal, through `restart-seed.sh` | +| PC 2 app node 1ccfe586 | 18:04:57Z | `node-20261005-165651-r3.log` through `digest-pcs-135200` | +| PC 1 app node ae432dc7 | 18:06:28Z | `node-20261005-172631-r3.log` through `digest-pcs-135200` | +| The Mac app's own node | none since 17:45:16Z (above); its last own node, started 17:42:15Z for the fee switch, died with the engine at 17:45Z | `node-20261005-165710-r2.log` ends there | + +Not reached: PC 37ba0461 (0.3.7, silent since 13:52Z) and Sam's Mac (0.3.5, silent since 09:43Z); each takes 0.3.9 and +the object on its next check and is refused by every peer from its next restart until then. + +Open from this publish: the Mac app without a node of its own means the Mac no longer verifies proof records (node 1 +reports `verifier off`; PC 2's node verifies and includes its own); the app's port 26610 clashing with node 1's is the +cause and is for the owner to decide (stop node 1, or move it). The Mac's miner at 0.0 MH/s is paused on the project lead's +instruction and left alone. + +## The first v3 checkpoint (pending) + +The sink crosses N3 = 135,200 about 22:05Z on 5 October (DAA 122,035 at 18:18Z, 0.965 blocks/s); the first v3 checkpoint +follows about a minute later. The read, on two nodes: `grep -E 'LOCKED|CONFLICTING|held by the frozen table|folded' /tmp/igneum-devnet/node1.out | tail` and +the same on `/tmp/igneum-devnet/observer-v4.out` (expected from the runbook: every LOCKED line from the first v3 +checkpoint ends with `..% of the table frozen at lock `, "certificate ... folded" within 3 s, 0 CONFLICTING).