From 08362bef2c0f28570ed132da21a06fc50f37f0b6 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Wed, 7 Oct 2026 19:10:20 +0000 Subject: [PATCH] class v5 harness: the miners stop before the final sink and count read (a node's own newest block is a tip its peers have not seen yet; the 19:50 UK run compared sinks mid-propagation) Co-Authored-By: Claude Fable 5.1 --- infra/fast-time/class-v5-signal.mjs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/infra/fast-time/class-v5-signal.mjs b/infra/fast-time/class-v5-signal.mjs index 3ebc4fa8..9406bacf 100644 --- a/infra/fast-time/class-v5-signal.mjs +++ b/infra/fast-time/class-v5-signal.mjs @@ -222,6 +222,11 @@ while (Date.now() - t0 < SECS * 1000) { if (firstV4 != null && daa != null && daa >= (firstV4.epoch + 3) * EPOCH) { endAt = +since(); break; } if (firstV4 == null && daa != null && daa >= EPOCHS * EPOCH) { endAt = +since(); break; } } +// the miners stop before the final read: with every node mining at the fast-time rate a node's own newest block is +// a tip its peers have not seen for a moment, and a read taken while they mine compares sinks mid-propagation (the +// 19:50 UK run of 7 October 2026 read 666/665/665 blocks and two sinks on three agreeing nodes). Their logs stay. +const nodeProcs = new Set(nodes.map(n => n.proc)); +for (const p of started) if (!nodeProcs.has(p)) { try { p.kill('SIGINT'); } catch { } } await sleep(3000); const dag = await Promise.all(nodes.map(async n => { try { return await n.rpc.call('getBlockDagInfo'); } catch (e) { return { error: e.message }; } }));