Commit graph

717 commits

Author SHA1 Message Date
igneum-labs
f9a4cd9c9c Counter ASIC 3.0 gates (node): the replay gate passes on the bonus across a span past two weight windows (697 blocks synced from genesis in 5 s, 0 rule errors, the payout unchanged); the devnet-window case (four hours) named as owed before a switch is set there
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 00:43:01 +00:00
igneum-labs
c9fe208b5d Counter ASIC 3.0 gates (node): the replay gate passes on both vote switches with the silence reading as a function of the block's past (fork 812c3ac2)
7.6: the late node synced from genesis across a switched-on span holds every block (313 of 313 for the burn, 331 of
331 for the bonus, one sink each, 0 rule error lines, 5 s) and the payouts read as before (0.8000 and 0.9000, the
pool 0.25 and 0.35). The first reading's failure is kept for the record. Not yet shown and named: a fresh node
syncing a span longer than two weight windows, where the vote records behind the pruning horizon are the one
node-local input left.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 00:30:37 +00:00
igneum-labs
6b1c43b8b8 Counter ASIC 3.0 gates (node): the fork gate's fast-time lines on the no-shortcut build (aa0182aa): gate on holds a 183-DAA private chain by a 27.5 percent key with one refusal line per block; the rule's known-failed case reorgs; the harness's own failed shape fails
Section 7.5: five runs recorded. The first idled nothing and never asked the gate; the second found the depth gap
(fixed 3301cf32); the third found the extension shortcut (fixed aa0182aa: a candidate on the sink's chain is not let
through, the depth along its own chain decides); the fourth, on aa0182aa, PASSES (B 2,750 bps at the fork, 183 DAA
deep, heavier by 183, A kept its chain for 150 s and learned 177 of B's blocks, 268 refusal lines, one per refused
block); the known-failed case PASSES (gate off, A reorged onto a 2,083 bps key's 162-DAA chain 25 s after the heal);
the harness's failed shape FAILS as it must. Three harness faults fixed on the way (shared ports, an RPC call before
the socket opened, a reorg test by key instead of by chain) and one build fault (ledger N5, the stub-engine node).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 00:15:36 +00:00
igneum-labs
67bac99025 Counter ASIC 3.0 gates (node): ledger N5 (a kaspad built alone validates with the stub), the vote-or-burn rows with the replay gate's result on both switches, the fork gate's first runs and the depth finding, the hardened fork-gate harness
Ledger N5: cargo build -p kaspad alone leaves the igneum-pow feature off (kaspad/Cargo.toml, default kHeavyHash
stub); igneum-miner turns kaspa-pow/igneum-pow on, and feature unification carries it into kaspad only when the two
are built together. A node built alone refused every real block (two fork-gate chains, 0 blocks), the same miner
mined 118 and 115 blocks against nodes built with both packages. Recommendation: igneum-pow a default feature of
kaspad for 0.3.17, the engine named in the version string (igneum_getNodeInfo's powEngine carries it now).

Node document 7.5 and 7.6: vote-or-burn none PASS, the known-failed case FAILS, burn and bonus PASS on the payout
(0.8000 and 0.9000, the pool 0.25 and 0.35) and FAIL on the replay (a node synced from genesis across the span
disqualified 240 blocks as UTXO-invalid: its silence reading differs from a present node's; both switches stay
never until the reading is a pure function of the block's past); the replay gate's own failed shape (another
digest) refuses at the handshake. Fork gate: the rule's known-failed case PASSES (a 32.5 percent key's 171-DAA deep
fork took A's sink 25 s after the heal under the rule as written); the gate-on case found the depth gap (fixed on
the fork, 3301cf32) and then PASSED on the rebuilt pair (B 2,810 bps, 193 DAA deep, heavier by 193, A held, A learned
188 of B's blocks) with a log flood fixed next (9a44fcb8); the harness now waits for each node's RPC and clears
leftover nodes before a case. The chain on the final pair runs; its three lines land in the table when it closes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 23:38:11 +00:00
igneum-labs
09c053046a Horizon closers (node): the relay ceiling as the fourth block-rate gate (network.md 5.11, ledger N3), the controller verdict rows, ledger N4 (the stalled desktop node, diagnosed from the log intake and the observer) with the miner-stall gate, the fork-gate and vote-or-burn harnesses with their first lines, the replay-gate finding against both vote switches
network.md 5.11 and proposal 1: Kaspa's relay requests one round per batch, so at 10 bps and a 2-s RTT the hub took
one spoke block in three (every block a chain block, two thirds of the network's hash merged nowhere); at 400 ms it
took all of them. The fourth gate for any rate step: relay delivers the full block rate at the measured inter-region
RTT with margin. CLAUDE.md's block-rate line carries it. The live 1 bps devnet offers under one block per RTT and is
nowhere near it. Controller rows (node document 7.2): rule v3 at 600 ms holds 9.93 blocks/s with the difficulty 4.5
percent over the hash-implied value; the live rule v2 reads 22 percent under on the same DAG shape.

Ledger N4: the vote weigh-up's silent desktop key, upload by upload from miner_logs and the observer: the voter never
died and --no-vote was never set; the node fell off the network (a digest-mismatch refusal, then a same-digest peer
that relayed nothing), its tip froze for 53 minutes, and the miner hashed and voted on the frozen template with
synced=true throughout while the node accepted 1,750 blocks into a dead branch. The fix pair on the fork (miner
e6e1fbe2, node 96619b7d); infra/fast-time/miner-stall.mjs: stall PASS (STALLED at 30 s, exit 45 at 31.5 s), moving
PASS, today's miner FAILS as it must.

infra/fast-time/fork-gate.mjs and vote-or-burn.mjs with the replay gate (--replay). First lines: vote-or-burn none
PASS, the known-failed case FAILS, burn PASS on the payout (ratio 0.8000, pool 0.25) but the REPLAY FAILS: a node
synced from genesis across the span disqualified 240 blocks as UTXO-invalid (its silence reading differs from a
node that was present), so both vote switches stay never until the reading is a pure function of the block's past;
fork gate: the first run idled the honest side and the depth read 0 (fixed on the fork, 3301cf32: depth along both
chains), the re-run's lines follow. The tree ships as 0.3.17 (node document section 7).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:31:06 +00:00
igneum-labs
20a4841030 Counter ASIC 3.0 gates (node): the seven-window signal gate re-run on fork 0760b844 (four cases, section 6.5), the controller harness for difficulty rule v3, the getRecentBlocks API row
class-v4-signal.mjs now runs the 0.3.16 rule (95 percent in each of 7 consecutive windows ending at the seed block;
the flip at epoch 4 with the 30-DAA window), requires a floor for a signalling case (the canary rule: no floor, no
signal; the floor-less first pass read every chain byte 0), reads programClassV4SignalWeakestBps and checks that the
signal line names seven windows. The four cases on 6 October 2026, 20:57 to 21:25Z: two of three signal, no flip
(weakest 5,666 to 6,333 bps); all three, flip at epoch 4 (DAA 241 seen, boundary 240; 3 of 3 signal lines; the id
assertion on epochs 4 to 6); nobody, the floor at 360, flip at epoch 6 and not before; the known-failed case FAILS on
nine checks. Summaries in docs/plans/counter-asic-3-gate/class-v4-signal7-*.json.

infra/fast-time/difficulty-v3.mjs (Horizon lane 5 proposal 2's harness case): three nodes in a star through a TCP
delay proxy (the document's propagation delay d over Kaspa's three relay legs, inv, request, block, so d / 3 per
leg; the handshake's first 5 s undelayed, the version exchange times out at 4 s), override-60x.json re-rated to
10 bps (the override-params.md example's k 124 and limits, depths x10, PoW epoch 600 DAA so an epoch stays 60 s),
one CPU miner per node, pass = DAG rate within 10 percent of target and the sink's expected hashes per block within
10 percent of the miners' summed hash x T after 600 of 900 s; the red share and chain step spacing reported. Results
follow in their own commit (the runs are in progress at 21:30Z).

docs/design/execution-layer.md 8.2: the igneum_getRecentBlocks row (fork eec34ac3).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:25:58 +00:00
igneum-labs
a06c708bf6 Counter ASIC 3.0 gates (node): the receive-side version rule (fork f1ea7a38) and the poisoned-peer case of the node-cut gate (PASS: the new node refuses version-1026 blocks with 0.3.14's line, relays none, stays the old hub's peer), ledger N1 extended with the receive side and the stale-block answer
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 20:46:25 +00:00
igneum-labs
a2806e0661 Counter ASIC 3.0 gates (node): the P5 row, the dependency pass for 0.3.15.1 (6 to 1 vulnerabilities, the one left named)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 20:29:07 +00:00
igneum-labs
6f337cb9b8 Counter ASIC 3.0 gates (node): the node-cut compat gate (node-compat.mjs: a mining new node beside a 0.3.14 node on the live object, both joins, the served genesis sync, the restart; PASS on 7961c5f1, FAIL on the canary binary 713ef876), the ledger rows N1 (version 1026 on the live file) and N2 (the pruned node's sync panic, a remote crash vector), the P4 row
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 20:25:39 +00:00
igneum-labs
297dadb1ca Counter ASIC 3.0 gates (node): the shipper's 0.3.15 readings in the P3 row (the three fixtures equal, the live floor's publish-2 digest 2c1162e2..., 0.3.14 exits at parse on the sixteen-field file, the box suite line)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 19:03:47 +00:00
igneum-labs
58fdfda87a Counter ASIC 3.0 gates (node): the 0.3.15 digest rule's compat and refusal cases on real nodes (digest-compat.mjs: a fixed node and a 0.3.14 node on the thirteen-field file peer on one digest; the sixteen-field node is refused), the P3 row, the sixteen-field digest 1dddfa55... on the devnet id
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:59:34 +00:00
igneum-labs
1cf76c0f8a Counter ASIC 3.0 gates (node): the rehearsal's miners are the GPU workers (the object inherits the devnet genesis bits); the id assertion on a worker box reads the pack's program.h
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:38:26 +00:00
igneum-labs
c5bfa14dc0 Counter ASIC 3.0 gates (node): the digests re-read on the right network ids (the digest folds the network id in; the fleet's a15db4f0 on suffix 400 confirmed with the Mac binary of the same fork commit; the publish example 65a42ab2 on the devnet id); the 0.3.13 parse refusal as a cut-order fact
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:34:52 +00:00
igneum-labs
ea5e4588e2 Counter ASIC 3.0 gates (node): the rehearsal re-cut for the hour (1 block/s: 600-DAA epochs, window 600, flip at minute 20, floor at minute 40; digest d23394e7...)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:18:04 +00:00
igneum-labs
6a57c69580 Counter ASIC 3.0 gates (node): G6 on the signalling fork change GREEN (jobs build-20261006-173017, -174027, -174823: the 2.0 flake re-run alone, the five crates and the app, the relay upload fault noted)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:56:11 +00:00
igneum-labs
f35cf492bf Counter ASIC 3.0 gates (node): the signalling gate GREEN (two of three never flips, all three flips at the first full window, nobody flips at the floor; the failed case fails on eight checks), the four summaries, the preconditions rows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:47:31 +00:00
igneum-labs
2439d18c03 Counter ASIC 3.0 gates (node): the two cut preconditions: the fleet rehearsal plan (counter-asic-3-rehearsal.md, the publish and rehearsal override objects with their digests ac8e60ce... and bc2142b1...), the PROPOSED miner-signalled activation (node doc section 6), the fast-time signal gate class-v4-signal.mjs, the signal window in override-60x.json (120) and the README
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:27:50 +00:00
igneum-labs
5db68a99ec Counter ASIC 3.0 status: the two cut preconditions (staging rehearsal, miner-signalled activation) as gates; the line for the project lead re-worded, no date until 0.3.14 runs a clean day 2026-10-06 16:47:12 +00:00
igneum-labs
52a3491af0 Counter ASIC 3.0 status: the blocker closed (G4 re-run with the id assertion green), every gate green, the line for the project lead confirmed 2026-10-06 16:45:52 +00:00
igneum-labs
f1938c3357 Merge branch 'ca3-v4-node' into ca3-coord 2026-10-06 16:44:27 +00:00
igneum-labs
78634555f4 Counter ASIC 3.0 gates (node): the program id carries the class: G4 re-run GREEN with the id assertion (every v4 epoch's id = the CLI's class v4 id, differs from the same-seed v3 id; the assertion's failed case fails on that one check), the seven re-exported packs' Metal fingerprints equal the hash lane's table, G5 workers rebuilt from the fix
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:43:46 +00:00
igneum-labs
d022e5ef76 Counter ASIC 3.0 status: the hash lane green on the id fix (4366418 merged) 2026-10-06 16:40:09 +00:00
igneum-labs
551198d864 Merge branch 'ca3-v4-hash' into ca3-coord 2026-10-06 16:39:24 +00:00
igneum-labs
43664184ed Counter ASIC 3.0 gates (hash): follow-up 1 on the program-id fix (e05eb0c merged): crate suite 97 of 97, the seven v4 packs re-exported byte-identical (generator 4, id c120d7963abdcd96), fingerprints unchanged on Metal and Apple OpenCL, Mac G2 16 x 1,024 of 1,024 through the v4 class token, the harness 4 of 4 on the class and on the era with the id assert_ne holding; the job scripts take the class token from the pack
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:38:48 +00:00
igneum-labs
eef181124f Counter ASIC 3.0 status: the program-id fix merged (e05eb0c), the re-runs open 2026-10-06 16:26:11 +00:00
igneum-labs
329d256202 Counter ASIC 3.0 status: AMD G2 job ready (chain-seed packs, own kit) 2026-10-06 16:22:31 +00:00
igneum-labs
480c0518f6 Counter ASIC 3.0 status: every gate green on the hash, the program-id blocker on the cut, the one line for the project lead 2026-10-06 16:18:08 +00:00
igneum-labs
e029091c3d Merge branch 'ca3-v4-node' into ca3-coord 2026-10-06 16:16:21 +00:00
igneum-labs
3521d9a002 Merge branch 'ca3-v4-hash' into ca3-coord 2026-10-06 16:16:21 +00:00
igneum-labs
d2237cc566 Counter ASIC 3.0 gates (hash): the RTX 5090 G1 and G2 JSON summaries
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:15:17 +00:00
igneum-labs
85c267971c Counter ASIC 3.0 gates (hash): the RTX 5090 G1 and G2 evidence from the collected job.log (eight fingerprints equal to the Mac's, 8 x 1,024 of 1,024); hash-gates.md and the bench-log entry closed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:14:08 +00:00
igneum-labs
ed53e96fd8 Counter ASIC 3.0 gates (node): G6 row, the two crates whose lines the relay upload does not carry
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:10:30 +00:00
igneum-labs
f0b3355a7a Counter ASIC 3.0 gates (node): G4, G4b, G5 and G6 GREEN for class v4 (the three fast-time summaries incl. the known-failed case, node-gates.md, counter-asic-3-node.md)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:10:00 +00:00
igneum-labs
fa857683be Counter ASIC 3.0 gates (hash): the gate directory (hash-gates.md, G1 Mac, G2 Mac, G3 and verifier JSON) and the bench-log entry; the RTX 5090 G1 rows pending the collected job.log
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:07:55 +00:00
igneum-labs
179443499d Counter ASIC 3.0 status: job 1 closed (G1 AMD green, the 9070 XT ladder flat to 330,700 ops, watts owed) 2026-10-06 15:58:03 +00:00
igneum-labs
e5e54a681f Counter ASIC 3.0 status: G1 AMD green on the candidate pack (interim, job 1 running) 2026-10-06 15:52:47 +00:00
igneum-labs
2df45c43fb Counter ASIC 3.0 status: the Ember run 5 rows for the 5090 (the cap never binds, 0.41 MH per W flat) 2026-10-06 15:45:39 +00:00
igneum-labs
3c62a8a9c7 Counter ASIC 3.0 status: the PC 1 AMD scripts ready (checks pass, kit verified) 2026-10-06 15:40:42 +00:00
igneum-labs
868c13b393 Counter ASIC 3.0 status: the gate run opened on mx8+sh256x27 (the project lead 16:50 UTC), the gate table 2026-10-06 15:38:44 +00:00
igneum-labs
0962364e03 Counter ASIC 3.0 status: the PC 1 AMD job queue (prepared, not published) 2026-10-06 15:13:22 +00:00
igneum-labs
4bdf9af4c3 Counter ASIC 3.0 status: the close (items 6, 7 and 8 closed; the chip model before and after; the class v4 candidate mx8+sh256x27 ready for the gate run; nine decisions for the project lead; the owed list) 2026-10-06 08:48:18 +00:00
igneum-labs
f4478a8ee1 Merge branch 'ca3-reserve' into ca3-coord 2026-10-06 08:45:48 +00:00
igneum-labs
1d0cc97721 Merge branch 'ca3-shadow' into ca3-coord
# Conflicts:
#	docs/bench-log.md
2026-10-06 08:45:48 +00:00
igneum-labs
697b8833df Counter ASIC 3.0 items 6 and 7: the RTX 5090 step-cost rows (PC 2 job run-ca3-family-pc2-20261006, every family bit-exact, mm8 included) in the bench-log and the reserve document 2026-10-06 08:45:02 +00:00
igneum-labs
9417a14ac7 Counter ASIC 3.0 item 8: the RTX 5090 rows, the chip side on the measured 11 pJ per op, the verdict
PC 2 job run-ca3-shadow-pc2-20261006 (card empty, every pack bit-exact against the Mac): the 5090 holds its rate to
150,800 ops per hash and loses 2.7 percent at 199,600 under the app's 431 W cap, which binds from 102,100 ops up and
takes the clock from 3,037 to 1,834 MHz (86 MH/s at 330,700 ops); 350 W at the control, 2.65 to 3.27 microjoules per
hash; marginal ALU energy 10 to 13 pJ per counted op. Clock rows OWED (nvidia-smi refused -lgc without rights). Chip
side at N = 100,000 and k = 1: 2.1x over the 5090 on GDDR7, 0.9x over the M5 Max. GO at mx8+sh256x27.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:44:57 +00:00
igneum-labs
aab9858068 Merge branch 'ca3-derive' into ca3-coord
# Conflicts:
#	docs/bench-log.md
2026-10-06 08:31:10 +00:00
igneum-labs
c6e03662a6 Counter ASIC 3.0 item 2: the RTX 5090 rows from PC 2 (bit-exact on CUDA, +1.1 s NVRTC per pack, the card-off key finding)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:30:15 +00:00
igneum-labs
881ae59779 Counter ASIC 3.0 status: the detector's two calibration findings answered (ba4a995 merged; max r 0.10) 2026-10-06 08:29:28 +00:00
igneum-labs
5b0b08e17f Counter ASIC 3.0 status: PC 2 clear, the detector and vendor-share dry rows on the live tables, the restart constraint 2026-10-06 08:26:52 +00:00
igneum-labs
cb75491b31 Counter ASIC 3.0 status: the marker guard exists in CI already 2026-10-06 08:25:02 +00:00