Commit graph

91 commits

Author SHA1 Message Date
igneum-labs
495c55280c counter-asic-2-node.md: gate G4 run 2 PASS on the composed class (era in the class on the mixer, 1558971): 181 / 124 blocks, 0 rejected, 0 forks; the PC 2 suite job id; the cache merge owed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:53:37 +00:00
igneum-labs
1558971521 era layout (Counter ASIC 2.0 layers 4 and 8) behind the class flag, on the ca2-v3 seam: the 7-draw era stream from E_n (stride, interleave, width pinned at 4 B), per-site window draws (dataset, half, quarter at a 256 MiB floor), the strided windowed load address in the interpreter, the acceptance mirror and the three emitters, the interleaved dataset layout riding with the program (memhard::Layout, mh_t/mh_j/mh_addr, Epoch::dataset_word), V3_CLASS with the era drawn inside by generate_from_seed_bytes_program_class, --era / --era-widths on the CLI, six class v3 era packs (packs-ca2-era), tests, the design doc, host.cu/host.c deriving host words through the pack's mh_word, emu/test-layout.sh, the PC 1 playbook
Squashed from six commits (tag ca2-era-pre-squash) for one merge.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:41:33 +00:00
igneum-labs
b3d15a7304 counter-asic-2-node.md: the two owed items (gate run 2 on the composed class, per-day dataset reuse in the CUDA and OpenCL workers)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:39:11 +00:00
igneum-labs
08db83b2eb counter-asic-2-node.md: gate G4 run 1 PASS on the mixer-x4 class (181 / 124 blocks across the boundary, 0 rejected, 0 forks, 3 switch lines, v2 and v3 program ids), the summary JSON
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:38:37 +00:00
igneum-labs
7053d206a1 counter-asic-2-node.md: the (program id, era seed) identity, the measured digest flip, the Mac suite results
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:25:09 +00:00
igneum-labs
36c5f13a5f fast-time: the proving v1 fields and pow_genesis_dataset_log2 in both override files (the fork's every-field test), README rows; class-v3.mjs reports the build time per epoch; docs/plans/counter-asic-2-node.md (the node side of Counter ASIC 2.0, gate result pending)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 21:04:39 +00:00
igneum-labs
e08909f138 mixer x4 and the cache growth rule (Counter ASIC 2.0, class v3 construction): LoadClass mixer_mult and growth, LoadClass::MX4 (v2 loads, no width roll), memhard::Shape in MixParams, m mixer applications per round with keys round_key(r m + j), Cache::fill_log2, the option C schedule (growth_doublings, cache_log2_words, dataset_log2_words, days_since_genesis) with its test table, day-sized Epoch entries, the three emitters (m loop only for m > 1, v2 text unchanged), program.h and program.json fields, packfile.h mixerMult, packbench and OpenCL host prints, --class mx4 and --days on the CLI; docs/plans/mixer-x4.md design and spec text, docs/analysis/chip-model-v3.md, the 5090 and 9070 XT dataset-build playbooks (measurements and vectors to follow)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 20:54:10 +00:00
igneum-labs
995769d0e6 finality-v3-devnet-publish.md: the app nodes, the sweep (every live node on 1f4b4425), the Mac app's external-node finding, the checkpoint read 2026-10-05 18:19:03 +00:00
igneum-labs
2260a43053 docs/plans/finality-v3-devnet-publish.md: N3 = 135,200, digest 1f4b4425, the hand nodes, the seed and the three manifests 2026-10-05 18:09:05 +00:00
igneum-labs
c30b0c0f09 release-0.3.9 plan: the ship, the proving rollout, the fee switch (H 210,000, digest ab8847da) and the sweep; restart-hand-nodes.sh: grep -c instead of grep -q under pipefail, lines() never ends the script 2026-10-05 17:55:35 +00:00
igneum-labs
8d80195869 release-0.3.9 plan: the cut so far (branch, tests, node builds, hand nodes and seed on a24ab01a, DMG, package) 2026-10-05 16:51:20 +00:00
igneum-labs
8b4b1e500a Merge origin/master (974805b) into release-0.3.9: fud-a round 6, the entity imprint, the conflict-marker check; docs/bench-log.md both entries, the site taken from master and rebuilt (519 links, 0 broken) 2026-10-05 16:48:00 +00:00
igneum-labs
fb32312383 Merge remote-tracking branch 'origin/master' into release-0.3.9 2026-10-05 16:32:53 +00:00
igneum-labs
ef3cbaf4f5 Merge housekeeping: the signed jobs envelope, build-job test flags, the PC-built node cause and the parallel finality tests recorded
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

# Conflicts:
#	tools/build-job.mjs
#	tools/ship-app.mjs
2026-10-05 16:30:47 +00:00
igneum-labs
3a96e7371c Merge fee-switch into release-0.3.9: the prover mirrors both fee tables and fees_v1_activation_daa (new pinned guest), the devnet runbook for H = 210,000
Conflicts: proving/igneum-prove/export/src/main.rs (the two use lines: master's ensure kept, fee-switch's FeeParams and FeeSchedule taken, SHARD_PROVING_GAS_BUDGET gone), docs/bench-log.md (both entries), docs/testnet/README.md (both sentences), site/index.html and site/journey.json (master's, then node site/build.mjs: 518 links, 0 broken).
2026-10-05 16:28:21 +00:00
igneum-labs
4bfb5d3928 release-0.3.6 plan: why the PC-built Windows node died at start, answered and fixed in the fork (static libstdc++); the stale comments on the Windows DLLs
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 16:26:05 +00:00
igneum-labs
24aaa0e254 Prover mirrors the fee switch: both tables and fees_v1_activation_daa in the shard input, guest re-pinned, devnet runbook for H = 210,000
igneum-prove-core carries the node's fees.rs (PgasTable, FeeParams PROTOTYPE and CALIBRATED_V1,
FeeSchedule::at); the shard input and every fixture carry the schedule and the block's DAA score; the executor
reads the set at that score, raises the base fees to its floors and meters with its intrinsic, B_p and modexp
entry, as the node's execute_segment does. The 328-byte statement is unchanged: the node's native veto pins the
schedule (a new layout would be a consensus change for every node). Exporter: schedule and daaScore from the
dump (gen.mjs writes them), per-segment switch on replay, S_p from the set. Fixtures from one simnet chain across
the switch at DAA 800: fees-switch-prototype (block 51), fees-v1-shards2 (351), fees-v1-shards3 (355); 358
segments replayed, every state root the node's. Host tests on both sides. Guest re-pinned: shard
0x2b1a81cb..., aggregator 0x474678f3...; pinned-guests-check passes.

Node fork 2b6d23ef unchanged (igneum-exec tests 11 passed). Digest for the override with
fees_v1_activation_daa 210000: ab8847da538dead1dc10e046dfaadab3c1c35928e3748810c4e050d4a886087a.
Runbook docs/plans/fee-switch-devnet.md; infra/devnet/restart-hand-nodes.sh and restart-seed.sh take the
override object (the hand nodes and the seed run 20139145 today and must move to 2b6d23ef first). One line on
the live page, spec 5.11, the testnet README, the floor analysis, the bench log and the journey.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 16:24:35 +00:00
igneum-labs
d9736b3c06 Merge testnet-infra: testnet seed profile, DNS and RPC installers, build-job watcher fix, docs/testnet, the go checklist
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 16:05:16 +00:00
igneum-labs
97f0cf14ac docs/plans/testnet-go.md: the go checklist with the state of every line at 16:05 UTC, the final genesis, the cost
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 16:04:09 +00:00
igneum-labs
53dae0ddf1 release-0.3.6 plan: the two finality tests under the parallel suite answered (fork 7003055b); build-job.mjs forwards --node-tests, --app-tests, --no-app
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 15:59:59 +00:00
igneum-labs
6cecbd4c67 jobs: one signed object (igneum-jobs.signed.json) so a file and a signature from two deployments can never pair
The 13:19:41Z refusal on PC 2: fetch_jobs took igneum-jobs.json and .sig in two requests while the edge was
still serving the previous deployment for one of them. The signer wraps the verified pair into one object and
reads it back; the app fetches that object (the pair only when none is published); publish-jobs.sh writes and
mirrors all three files and verifies every folder after the deploy; tools/jobs.mjs reads the envelope.
Tests: jobs.rs signed_envelope_binds_file_and_signature, packaging/ota/test-publish-jobs.sh (24 checks).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 15:52:34 +00:00
igneum-labs
9a204e2266 rotation phase 2, executed: old folder stripped to the 0.3.5 manifest, local files renamed, relay on the new key, DL_TOKEN rotated; 7 October swap and the owner's rewrite checklist
logs.mjs --rotation reads the old fingerprints from the dated .old-* files once the .next files are gone; fresh-repo.sh scrubs the dated secret files too; ship-app.mjs mirrors payload-inputs.json.sig.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 15:37:02 +00:00
igneum-labs
3affba561a release-0.3.8 plan: the cut, the proving rollout, the first cross-verified shard 2026-10-05 14:08:31 +00:00
igneum-labs
64009a676a Proving: pinned guest programs, the verifier on SP1's light verifier
On 5 October 2026 the Mac's host (shard program id 0x0559759b...) rejected every
proof from PC 2's host (0x05db1aca...). Both were built from the same guest
sources: host/build.rs compiled the guests on each machine and the ELF depends
on where it is built (cargo's -C metadata for a path crate includes the checkout
path; a worktree on the same Mac gave a third id, 0x0dfade07...). The node's
verifier also spent 114 s to 138 s per proof in the prover client and both key
setups before a 0.1 s to 0.4 s verify.

- elf/: both guest ELFs, their verifying keys and manifest.json (sha256, ids);
  host/src/pinned.rs embeds and checks them at every start; the prove modes
  refuse when SP1's setup does not derive the manifest's id
- --mode verify: LightProver with the pinned key, no prover client, no key
  setup; prints the proof's own program id next to ours ("IS NOT OURS")
- --mode id; igneum-prove-pin and pin-guests.sh to re-pin; build.rs builds a
  guest only under IGNEUM_BUILD_GUESTS=1
- tools/ci/pinned-guests-check.sh: elf/ must match its manifest, no script
  builds a guest outside pin-guests.sh; make-package.sh and build-dmg.sh print
  the pinned ids
- unit tests on the pinned set; bench-log entry with the three ids, the cause
  and the timing: 127.0 s wall per verify before, 1.8 s to 2.4 s after
- rollout order in proving/README.md: every prover and verifier moves together

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 12:54:31 +00:00
igneum-labs
bf5c65eb39 release-0.3.6 plan: every reachable machine on 0.3.7 with node state, the open items 2026-10-05 10:31:26 +00:00
igneum-labs
2d23b5b0a2 release-0.3.6 plan: the three Windows machines on 0.3.7 with their nodes up 2026-10-05 10:29:19 +00:00
igneum-labs
a80509f7fa release-0.3.6 plan: the Mac on 0.3.7 2026-10-05 10:27:46 +00:00
igneum-labs
6aa4d2bedc release-0.3.6 plan: the update-now job's run times per machine 2026-10-05 10:27:34 +00:00
igneum-labs
ab36015780 release-0.3.6 plan: the jobs file mirrored into the NEXT folder by hand (publish-jobs.sh does not) 2026-10-05 10:22:37 +00:00
igneum-labs
b5d72011e1 release-0.3.6 plan: the 0.3.7 ship, both manifests compared, the update-now job, the baseline 2026-10-05 10:18:18 +00:00
igneum-labs
30783391e3 release-0.3.6 plan: the 0.3.7 cross-built exes, the -static-libstdc++ result 2026-10-05 10:10:01 +00:00
igneum-labs
bc4572f6e8 release-0.3.6 plan: the watch's end 2026-10-05 09:59:51 +00:00
igneum-labs
356a564977 release-0.3.6 plan: the PC-built Windows node dies at start even with matching DLLs; 0.3.7 ships the Mac cross-build; 0.3.8 open item 2026-10-05 09:56:22 +00:00
igneum-labs
f084667cac release-0.3.6 plan: the OTA helper logs of the three machines 2026-10-05 09:50:32 +00:00
igneum-labs
ff5cc18db1 release-0.3.6 plan: PC 2 and the Mac after the publish, the node restart loop on the PCs 2026-10-05 09:50:05 +00:00
igneum-labs
8ac875bc06 release-0.3.6 plan: the 0.3.7 DMG 2026-10-05 09:49:51 +00:00
igneum-labs
341a2ad134 release-0.3.6 plan: section 9, the 0.3.6 Windows runtime incident and the 0.3.7 hotfix 2026-10-05 09:47:12 +00:00
igneum-labs
ea8061ab69 release-0.3.6 plan: the machines after the publish, PC 1 first 2026-10-05 09:39:36 +00:00
igneum-labs
6039c28ca3 release-0.3.6 plan: verify and console steps, the ship's close 2026-10-05 09:35:53 +00:00
igneum-labs
257704a83f release-0.3.6 plan: the ship, the live manifest compared field by field 2026-10-05 09:35:31 +00:00
igneum-labs
bbe3d9cecf release-0.3.6 plan: PC 1 take 2 binaries and hashes, the PC 2 pair read precisely, the finality test-isolation finding 2026-10-05 09:27:28 +00:00
igneum-labs
fa75fe68f2 release-0.3.6 plan: the DMG hash 2026-10-05 09:19:49 +00:00
igneum-labs
a03d4de860 release-0.3.6 plan: PC 2 suite result (M30 pow-cache queue under full-suite parallelism), the two follow-up jobs, the DMG with the 0.3.5 prover 2026-10-05 09:19:14 +00:00
igneum-labs
fd9c841359 release-0.3.6 plan: the PC 1 build failure (cargo mtime freshness over the persistent target dir), the fix, take 3, the PC 2 suites job 2026-10-05 09:13:59 +00:00
igneum-labs
007556df90 release-0.3.6 plan: section 8, the cut (merges, changes, tests, secrets, binaries, digest, live manifest) 2026-10-05 08:53:28 +00:00
igneum-labs
0f6fc2ead5 Merge rotation-2 (7c9a939) into release-0.3.6: packaged config from files, --dl-both, logs --rotation; windows.yml keeps the G13 signed-inputs step after the packaged configuration step 2026-10-05 08:33:37 +00:00
igneum-labs
c797fe49b3 Merge proving-app (05051c1) into release-0.3.6: verifier env for the node, igneum-prove-verify.exe wrapper, WSL probe through wslhost (hidden, as master 9835f49), tile shows the verifier 2026-10-05 08:33:13 +00:00
igneum-labs
fc137257ed Merge origin/testnet-adopt (3be4501) into release-0.3.6: testnet identity, adopted fee table (spec 05 section 5.11 next to the security budget 5.10), G13 signed inputs; plan documents combined, site rebuilt 2026-10-05 08:32:40 +00:00
igneum-labs
7e0fc7da65 publish-jobs: wake the apps after a verified deploy; jobs.mjs status shows the woken latency; 0.3.6 plan
publish-jobs.sh --deploy POSTs the new stamp (published_at plus 8 hex of the file's sha256) and the added id to the
relay's /wake once the live file verifies. The relay token goes in a 600-mode header file, never on the command line
or the screen. Prints "woke the apps (stamp ...)" or a one-line warning; the apps' 2-minute poll still catches it.

tools/jobs.mjs status reads relay_wake (one row per publish with the ids it added) and prints "woken +N s after the
publish" for a machine's latest job that a publish added; nothing when the table does not exist yet.

docs/plans/release-0.3.6.md: "Instant jobs" section with the design, the expected latency and a TODO row per machine
for the measured number once 0.3.6 is live. packaging/ota/README.md: the 10-minute poll is history.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 08:22:02 +00:00
igneum-labs
05051c111d docs: release 0.3.6 done notes for the app-side proving items
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 08:21:13 +00:00