Commit graph

570 commits

Author SHA1 Message Date
igneum-labs
2e783eaa84 bench: run.sh --patched-env; the PC 2 bench job A script (SP1 stock and patched, default and 2^26, beside the miner)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:57:57 +00:00
igneum-labs
c6dacb5690 bench/proof-systems: run.sh portable (GNU time on Linux, host and out paths, a row label, the patched server's HOME), the table keys on the label and fixture
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:56:22 +00:00
igneum-labs
3e48415e5f bench/proof-systems: the first Mac rows (SP1 stock on the M5 Max CPU: 4,717,439 cycles, 71.7 s, 27,821 MiB RSS, 1,272,897 B, verify 0.258 s; sp1-patched and jolt n/a with the reason) and the table
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:55:11 +00:00
igneum-labs
29bc922422 bench-log: the proof-system slot on the fast-time harness (21 and 34 checks)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:54:40 +00:00
igneum-labs
796a67eb52 proving v2: the harness gains --v2 <daa> (case 5: both proof systems and the switch; version 3 and version 2 records refused before, paid from it, an SP1 fresh chain after a system 2 segment), the fast-time file carries the switch; bench/proof-systems: the proof-system watch (run.sh one row per candidate, table.mjs, README)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:51:19 +00:00
igneum-labs
4f5cc29d26 app, proving v2: the proof system is a setting (prove_system, 1 = SP1 default, 2 = RISC Zero), /api/prove takes {on, system}, the prover runs the system's host (igneum-prove-r0-host next to the SP1 host, WSL2 too) and signs shard records with --system, the segment path and the aggregator stay on SP1 proofs (one system per segment), the tile has the selector
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:41:49 +00:00
igneum-labs
b68ddd59b3 Funding plan: proof-system audit line item beside the hash cryptanalysis row
Scope (SP1 shard and aggregator guests, pinned ids and pin script, the node's
verifier path and record rules of spec 7.7 and 7.8, the version 2 RISC Zero
guest when it lands), deliverables, six candidate reviewers with published
zkVM audits and their sources, cost basis from public rate cards and
comparable engagement sizes, and when it bites. Totals refreshed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:36:10 +00:00
igneum-labs
ee8b766470 plan: 12 GB mine-and-prove met on the 5090's allocation by a core-only prover at 2^25 (8.1 GB before the display, 19.8 s a shard), pending the core-proof hand-off path and the card itself
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 09:14:28 +00:00
igneum-labs
2501308b6a plan: the prover-floor agent's route 2 rows (core-only prover 7.8 GB own beside the miner; the core-only server is the step to 12 GB mine-and-prove)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:54:38 +00:00
igneum-labs
f0a40cdb9e bench-log: the fast-time harness on the fresh-record rule, both cases
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:35:13 +00:00
igneum-labs
f380ccc7c7 proving v1 harness: under --fresh-rule the second offer of segment 3's record is a duplicate, not a chain-rule refusal
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:32:42 +00:00
igneum-labs
a96776883b bench-log and plan: the segment-aligned prover on PC 2 (9 whole segments in 30 min, 72 of 72 shards paid, 11.0% of the miner) and the chain rule's 8-DAA fresh window, its fix behind the switch
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:26:59 +00:00
igneum-labs
f3a98cd291 proving v1 harness: --fresh-rule <daa> (default never keeps the known-failed line; set, case 3 expects a fresh record accepted while the previous segment is pending and freshAdmissible true)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:05:04 +00:00
igneum-labs
a113557da2 prover: a segment record the chain rule refuses is held and offered again every pass until the segment's deadline (the fresh-record window on the 0.3.11 rule is one segment length in DAA); the tile counts held records; the fast-time file sets the fresh-rule switch
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:03:46 +00:00
igneum-labs
7bdc8a9060 pc2-segments: int64 segment keys (a double never matched the int64 hashtable keys, so job b claimed nothing in 88 passes); the work-list line; the log search widened
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:50:46 +00:00
igneum-labs
9ea77aa2ae pc2-segments: the port probe sets the port before the call (the first run dialled an empty port and refused itself)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:19:15 +00:00
igneum-labs
a1f05d6888 plan: segment-aligned proving (the change, item 2 answered from the relay source, the arithmetic; the PC 2 numbers to follow)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:18:59 +00:00
igneum-labs
8bb3c892d6 proving v1: the PC 2 segment-aligned prover job (tools/proving-v1/pc2-segments.ps1) and the CPU validation of --save-shards records and --prev
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:18:15 +00:00
igneum-labs
3671918fb4 prover: segment-aligned work (proving v1): a free prover claims a whole segment, proves every shard from one export in one chain run, submits the shard records and the segment record; the host's chain mode takes --prev and writes per-shard records with --save-shards
One prover at 2.2% coverage never had 8 consecutive proven blocks (C47, 6 October 2026); claiming whole segments makes it complete about 1 segment in 75 instead of none. The choice is deterministic per key (FNV of first block and key hash) over the untouched whole segments inside their deadline by a margin (240 DAA or 1.5x the last segment's time); the per-block path stays as the fallback. Unit tests for the grid, the grouping, the margin, the attempted set and the per-key order; 120 app tests, 8 core and 9 host tests pass.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 07:12:23 +00:00
igneum-labs
7dade79bcb Aggregation cost on the 5090 (5 October, night): the chained aggregation is 2.1 s alone and 9.7 s beside the miner, the batch-log2 curve (2^16 buys 1.6x for a fifth of the hash rate), batch and tree folds estimated, two streams and SP1 knobs closed; the host times the stdin build and names the knobs, --save-shards; the PC 2 job scripts and the readers
The statement and the pinned guests are unchanged; every fixture proof verifies as before. The defaults stay (batch-log2 22, SP1 defaults): the one knob that moves a mining card's prover costs a fifth of the hash rate; the plan carries the trade for the project lead and the batch fold for the next pin. Measured: docs/bench-log.md "aggregation cost on the RTX 5090"; the plan line: docs/plans/proving-v1.md "Aggregation cost (5 October, night)". Also: make-package's gate skips the exporter's .node-plan.json side files and takes the run lock for its execute step; the state-reply class (/api/state answering {} once paid_wei passes u64::MAX) found on the way and fixed on the app branch at 42f36b3.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit ea38ece9eaa5949dd657cbfea5308c4948177ff8)
2026-10-06 07:04:50 +00:00
igneum-labs
0e6a4cd333 plan: C47 card counts from the fleet table (47 as shipped, 18 chain mode, 6 proving-only)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 04:18:14 +00:00
igneum-labs
d02f3fb1b7 plan: v1 live on devnet, no segment record because one prover cannot cover 8 consecutive blocks (C47)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 04:17:51 +00:00
igneum-labs
559a5a0648 plan: the beside-the-miner pair (floor-sweep-4): 16 GB mines and proves at 12.7 GB and 17 s a shard on the patched server; 12 GB proves alone, mine-and-prove 9.9 GB before the display, over the 9.0 GB line
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 00:38:51 +00:00
igneum-labs
e054c914e6 plan: the /api/state fix heads 0.3.12 (0.3.11 closed at a2f08e3)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 00:28:27 +00:00
igneum-labs
42f36b3fd3 app: /api/state never answers {} again (paid_wei over u64::MAX broke to_value; the field is a decimal string, the error is logged once)
serde_json's to_value refuses a u128 over u64::MAX (18.45 IGN) and state_json turned the error into json!({}). A paid shard is 1.23 IGN on average, so a proving machine's dashboard went blank about 15 paid shards after every app start. Unit test over the boundary; 114 app tests pass.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 00:27:35 +00:00
igneum-labs
047932f2e1 plan: the prover-floor agent's sweep 3 rows (the patched server proves the v1 shard at 10.3 GB on the 12 GB profile, 12.9 GB at 2^27; the 12 and 16 GB rows move from nothing to proves alone, the pairs pending)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 00:18:32 +00:00
igneum-labs
2f2bdb5a70 plan: the prover-floor agent's first sweep (the v1 shard at 12.7 GB with the 2^26 split, 5.3 s; the 9.7 GB Setup is next) and the 12 GB profile decision
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 22:42:12 +00:00
igneum-labs
a2f08e3f70 prover loop: a PermissionDenied from the host names the root-owned GPU-server socket and the fix (the root-socket class); the plan's two times
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 22:38:22 +00:00
igneum-labs
9f6a4ebc65 App: every worker gets --prepare-packs in the platform's path form and runs with the app data folder as cwd (program class v3: the Metal worker compiles v3 only from a prepared pack; the Macs would have answered need lines at the first v3 epoch)
cargo test --release -p igneum-app under the build lock: 113 + 27 + 8 passed, 0 failed (the prepare_packs_tests,
resume_tests and provedefault tests among them).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 22:22:44 +00:00
igneum-labs
e041fb5e73 plan: the self-built CUDA server's packaging row before 0.3.12 (arch list, builder, signing, DMG and WSL2 placement, evidence note, rebuild at each SP1 upgrade, the verifying keys unchanged)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 22:10:55 +00:00
igneum-labs
4f0b9f5475 bench-log: the root-socket recurrence of 21:25Z and the fix job of 22:01Z (the prover proved again at 22:02Z)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 22:03:06 +00:00
igneum-labs
23ab08202f plan: the 12 GB floor's cause (the shipped sp1-gpu-server refuses cards under 24 GB and allocates every prover at Setup; the prover-floor agent's source read)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 22:00:37 +00:00
igneum-labs
3f81901155 plan: the aggregation-cost agent's card-alone rows (an empty shard 2 s, an aggregation 2 s, 4 proving-only cards for an empty chain)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:57:26 +00:00
igneum-labs
c4da08d302 App: the resume path re-arms every stopped card, re-exports its pack and checks 90 s later that every enabled card mines (PC 2 at 21:25:11Z and the Mac that afternoon stayed at 0 MH/s after resume); the PC 2 socket-fix job
The known-failed case, from PC 2's 0.3.9 log (run win-1ccfe586-20261005-200114): 1791234223 pause -> 'stopping the
miners (paused)' (every slot's restart_at cleared, the 5090 'off'); 1791235511 '[ok] mining resumed'; then
'0.00 MH/s, waiting' at every 30-s status line until the 0.3.10 restart at 21:49:41Z. Cause: Cmd::Resume re-armed
only slots whose watchdog said faulted; the 5090's slot was healthy and stopped, so nothing restarted it. The test
the_pc2_resume_of_21_25_11z_restarts_under_the_new_rule_and_not_the_old encodes that slot (faulted false, live
false): the old rule returns [] (the defect), the new rule [0]. cargo test -p igneum-app resume: 3 passed;
provedefault: 6 passed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:56:20 +00:00
igneum-labs
d7c28ec695 prover loop: the CPU path is refused under 32 GB of RAM on every OS with the measured reason, and its tile line names the cost (consequences C22)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:12:37 +00:00
igneum-labs
2f6c7138b6 evidence and litepaper: the 24 GB tier is measured on the 32 GB card's allocation, not yet on a 24 GB card (consequences C22)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:12:13 +00:00
igneum-labs
649d37bad0 fast-time file: proving_v1_unproven_daa 10 (a DAA clock, 600 / 60, as the merged tree carries it; the harness passes its own --unproven)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:05:13 +00:00
igneum-labs
5424c30bba Proving v1: the app's default restores Decision and gb (lost in the tier rewrite), the AMD-only and Apple 'mines and does not prove' line with the CPU prover's measured cost, the plan's AMD/Apple row
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:03:42 +00:00
igneum-labs
46bad306d8 Proving v1: the harness passes on the final fork tree (N = 8, 21 checks in 244 s)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:57:33 +00:00
igneum-labs
4ddc9fcf4c Proving v1: the miner-on curve's 2^25 rows (the prototype shard 24.7 GB and 38.8 s beside the miner)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:56:32 +00:00
igneum-labs
1aff0b79d1 Proving v1: the miner-on curve (the adopted shard 22.2 GB and 13.2 s beside the miner; the prototype 30.1 GB): the 24 GB tier measured, the public lines updated
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:55:54 +00:00
igneum-labs
1eaeefd770 Proving v1: the S_p curve's re-plan points (28.4 GB at 20 M cycles: the peak is flat from 20 M to 60 M)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:49:26 +00:00
igneum-labs
894022b926 Proving v1: the tiers from the S_p curve (24 GB proves the adopted shard, 32 GB mines and proves the prototype one, 12 and 16 GB off on this build) in the app's default, the litepaper, evidence rows 15 and 16 and the plan
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:45:01 +00:00
igneum-labs
03313281ba Proving v1: the S_p curve, card alone (13.9 GB floor, 20.4 GB at the v1 shard, 28.3 GB at the prototype shard): the 12 and 16 GB tiers cannot prove on SP1 6.8.1's GPU server, 24 GB proves v1 shards, 32 GB the prototype
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:43:22 +00:00
igneum-labs
344cba8e8c Proving v1: the memory sweep and the miner-on peaks, the root-socket class fix (cleanup lines, tools/ci/prover-socket-check.sh in CI), the host's --budget re-plan and the S_p curve job, the RAM and aggregation-card gates, N = 8 in the fast-time file and spec 7.4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:35:13 +00:00
igneum-labs
73358ca92d Proving v1: the 12 GB memory sweep on the 5090 (13.9 GB floor on an empty shard, 28.3 GB on a full one, no knob moves the floor)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:27:45 +00:00
igneum-labs
340d7f4cd7 Proving v1: the decisions (N 8, T 600, a tenth to the aggregator, H = tip + 14,400, no sortition, Apple off) with the other networks' rules read tonight; the profile rows wait for the sweep
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:22:32 +00:00
igneum-labs
d4848453ae Proving v1: the chain of 8 on the 5090 measured (N = 2, 4, 8: 32.6, 66.8, 135.6 s; chained aggregation 9.7 s a block on a mining card), the fleet table re-cut on the measured rows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:21:14 +00:00
igneum-labs
e9508926dc Proving v1: the chain of 2 on the 5090 (31.8 s, the chained aggregation 9.5 s), the job aborted by the 0.3.10 restart at block 3
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:21:14 +00:00
igneum-labs
470b6a884f pc2-chain.ps1: the export goes through curl.exe to a file (Invoke-WebRequest's Content is a string; the first run failed on WriteAllBytes)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:21:14 +00:00