From e3b7ac869bc6c29b363ecbf29186e8d810f82a52 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Mon, 5 Oct 2026 21:59:18 +0000 Subject: [PATCH] counter-asic-2-node.md: the cache merge done and checked, the mixer fix owed (54bbfcc is not it; its merge conflicts in bench-log.md and packbench.swift only) Co-Authored-By: Claude Fable 5.1 --- docs/plans/counter-asic-2-node.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/plans/counter-asic-2-node.md b/docs/plans/counter-asic-2-node.md index d1d00854f..b70298387 100644 --- a/docs/plans/counter-asic-2-node.md +++ b/docs/plans/counter-asic-2-node.md @@ -131,6 +131,7 @@ The PC 2 suite job for the same tree: `build-20261005-215219` (fork 79bd8e10, ma - The Metal worker has no class v3 generator (it regenerates from the seed in Swift): the integration branch adds generator 3 there, or the Mac mines v3 with the OpenCL worker from a pack. - The GPU workers' class refusal was checked by the C test of `pf_pack_class_ok` and the syntax of both hosts, not by a live worker on a v3 pack: the integration's bit-exact gate (G1) is where a real worker first builds a v3 pack. - `next_pair` keeps the current era seed for the next epoch; an epoch boundary that is also an era boundary (once per 180 days) would prepare the wrong era, and the job line then names the right one, so the worker refuses the prepared pair and the miner prepares again (one wasted compile, no wrong block). The VDF era seed replaces the stand-in before this matters. -- Owed: the ca2-cache code (2de19e5, measured-not-adopted, hot `None`) once the cache agent rebases it onto b105a55: its merge against the era and mixer tip conflicts in 8 files (35 hunks in generator.rs, emit.rs, tests/packs.rs, verify.rs, packfile.h, accept.rs, packbench.swift, bench-log.md), aborted here on 5 October 2026 at 21:45Z; the gate did not need it. +- Done 22:05Z: ca2-cache rebased as 1950661 fast-forwarded (the first attempt, 2de19e5 on 464d6e1, conflicted in 8 files and was aborted); igneum-pow 53 + 19 tests and the packfile test pass; the fork's kaspa-pow, miner and kaspad check clean against the merged crate (seam unchanged). `V3_CLASS = { era: None, hot: None, ..LoadClass::MX4 }`. +- Owed: the mixer agent's verifier fix (the 2.2x on the v2 path at m = 1). ca2-mixer's tip 54bbfcc (22:10Z) carries the MX8 candidate, tests/mixer.rs, tests/scratch.rs and the measure docs, not the fix; a merge of it into ca2-v3 conflicts in docs/bench-log.md and proto-metal/packbench.swift only (generator.rs and verify.rs auto-merge). Merged when the fix commit arrives, then a rebuild and gate run 3 if asked. - Owed (0.3.12, coordinator's ask of 5 October 2026 22:20Z): per-day dataset reuse in the CUDA and OpenCL workers (a `Day` object shared by consecutive pairs, the cache freed after the build); the Metal worker already keys datasets by day. Until then the iGPU tier mines v3 with a dataset rebuild per epoch on those two workers. - Wire compatibility: `RpcPowEpochInfo` gained five fields in its Borsh form (wRPC) and five proto fields (gRPC); the gRPC side reads an old node's zeros as v2 / never / none; the Borsh form is versioned by `GetBlockTemplateResponse` (version 2 carries the whole struct), so a 0.3.11 wRPC client against a 0.3.10 node reads short: the miner uses gRPC, the console reads JSON (serde defaults).