Igneum: the GPU-mined zkEVM L1. Node, miner, app, spec and site.
Find a file
2026-10-08 19:33:15 +00:00
.claude/agents Pre-public scrub, the text pass (7 October 2026, 19:5x UK): no founder name, personal login, earlier business or personal address in any tracked text file, and a gate check that keeps it so 2026-10-07 18:39:50 +00:00
.forgejo/issue_template Builder programme (8 October 2026): /build, /grants, the Devnet 3 faucet on build-1, docs/build as the source 2026-10-08 10:24:07 +00:00
.github/workflows Merge branch 'ci-steward' into ci-steward-2 2026-10-07 17:02:55 +00:00
app The wallet's History row: a block under a locked checkpoint is finalised even in a pause; the window audit records the founder's v2.0.1 calls 2026-10-08 17:27:45 +00:00
brand site: share cards and metas from one source (site/og), rendered on a build box 2026-10-08 14:51:03 +00:00
contracts Bridge: the Install script (voter table and optional certificate onto an already deployed verifier; for a chain whose table is read at its first lock, igneum-devnet-4) 2026-10-08 16:57:34 +00:00
docs F14, the relay and publisher half (the founder's ruling, 8 October 2026, 19:57 UK: the public miner carries no remote execution; the fleet runs the lab build under its own signing root, separate from the OTA key). publish-manifest.sh: the key follows the channel (igneum-2.0-devnet-lab signs with ~/.config/igneum/lab-signing/lab-signing-key, --lab names it; every other channel the OTA key; a channel naming a lab that is not the lab channel is refused); publish-jobs.sh: --channel lab|public picks the root, anything else refused. igneum-agent.ps1: App-Product reads api/state .product and Lab-Refusal refuses every task beside a public engine ("Igneum Miner"), an engine without the field (pre-2.0.2) runs as before. Release rule 16 names the split (feature lab, channel igneum-2.0-devnet-lab, product "Igneum Miner Lab", the lab kits, the per-PC exes wrapping the lab Setup, the lab root). Known-failed first: the publishers' cross refusals, relay/test/service.test.mjs 2026-10-08 19:07:34 +00:00
igneum-census Counter ASIC 3.0 item 8: the latency-shadow knob (LoadClass +sh<S>x<R>), its packs and the PC 2 playbook 2026-10-06 07:58:35 +00:00
igneum-pow class-v6: drop the second copy of DatasetSource's leaves methods the master merge brought in (master's copy lacked the geom field) 2026-10-08 16:33:09 +00:00
infra Merge box master ecb70db5 into proving-payment-guest (the 60x file lists both switches) 2026-10-08 16:53:17 +00:00
packaging 2.0.2: a manifest publish nudges every relay machine to check at once (the shipper's order, 8 October 2026: the engine's manifest check is hourly today, ten minutes from 2.0.2, and the mini took the 2.0.1 entry only when its api/update/check was called by hand). publish-manifest.sh --deploy ends by posting packaging/ota/update-check.ps1 as a relay run to every machine under ~/.config/igneum/relay-machines (--no-nudge skips it; an unreachable machine is one line, never a failure); the script asks the local engine through its own api/update/check with the token from app.url, waits 45 s and reads back what it staged (RESULT UPDATE-CHECK asked version=... manifest=... state=...); it installs, quits, pauses or resumes nothing (the engine's own path installs at its next safe moment and the MINING-ON relay run reads the apply). Also: publish-jobs.sh's edition read is safe under set -e (the pre-push publish-jobs check's sandboxed add had failed on it). Test known-failed first in relay/test/clients.test.mjs 2026-10-08 19:33:15 +00:00
pool Pool v0 rebased onto master and the 0.3.14 fork: the program class and era seed ride with every seeds and job line; the re-check test for class v3 and class v4 2026-10-06 18:49:13 +00:00
proto-cuda igneum-pow, proto-cuda: counter-asic-4's research code comes off master (the revert of 31496f4e's code paths; documents untouched), the coordinator's order of 8 October 2026, 17:32 BST 2026-10-08 16:17:08 +00:00
proto-metal class v5 kits: every worker host uploads the pack's state leaves for igneum_build (the NVRTC worker, the OpenCL host for AMD, Intel and Apple, the Metal worker), checked against the pack's count and FNV first, freed after the build; a v5 pack without its leaves builds nothing 2026-10-07 18:36:17 +00:00
proto-newpow class v5: the pod bench's run script (proto-newpow/class-v5/run.sh: both packs, two passes, 20-s power windows) 2026-10-07 11:24:23 +00:00
proto-opencl ds55 hosts (research class, 8 October 2026): the CUDA worker and the OpenCL host size the dataset by the pack's word count (IGNEUM_DATASET_WORDS and IGNEUM_DATASET_ITEMS from program.h when present, 1 << IGNEUM_DATASET_LOG2 when absent, so every existing pack runs as before), build words / 16 items, and the OpenCL bench's random points go through the pack's own index mapping; the ready, check and summary lines name the count when it is not a power of two; packfile.h refuses a count off the 2^16 grid or a mulshift flag that contradicts it; known-failed test first (emu/packfile-test.c: the old reader sized the 5.5 GiB pack at 2^30 words) 2026-10-08 13:58:18 +00:00
proto-vdf proto-vdf: Wesolowski VDF between the certified checkpoint and the program seed 2026-10-03 16:39:01 +00:00
proving Shard guest sources with the D4 split, the ELF pin left at the served release's ids (the re-pinned elf/ rides the node 2.0.1 and miner v2.0.1 paired cut) 2026-10-08 17:03:38 +00:00
relay 2.0.2: a manifest publish nudges every relay machine to check at once (the shipper's order, 8 October 2026: the engine's manifest check is hourly today, ten minutes from 2.0.2, and the mini took the 2.0.1 entry only when its api/update/check was called by hand). publish-manifest.sh --deploy ends by posting packaging/ota/update-check.ps1 as a relay run to every machine under ~/.config/igneum/relay-machines (--no-nudge skips it; an unreachable machine is one line, never a failure); the script asks the local engine through its own api/update/check with the token from app.url, waits 45 s and reads back what it staged (RESULT UPDATE-CHECK asked version=... manifest=... state=...); it installs, quits, pauses or resumes nothing (the engine's own path installs at its next safe moment and the MINING-ON relay run reads the apply). Also: publish-jobs.sh's edition read is safe under set -e (the pre-push publish-jobs check's sandboxed add had failed on it). Test known-failed first in relay/test/clients.test.mjs 2026-10-08 19:33:15 +00:00
scene Live proving feed: the page says when its shard states are stale, and a chain block with an empty plan reads "no shards in this block" (8 October 2026, main's order: the project lead wants to watch proving and shards in real time; a stale snapshot must read as stale). Reading of the day: /api/live's proven and paid states come from the Devnet 3 observer's own node on igneum-build-1 (igneum-observer-node-dn3, EVM 26850), not from hub-1; that node stopped crediting payouts at 23:57Z on 7 October (paidShards frozen at 7,304 while blocks carried 8,457 proof records by 03:00Z and hub-1 counted 11,861 by 08:56Z), and the page kept showing the paid total as fresh. site/lib/proving-health.mjs (tests known-failed first: "Cannot find module", then 10 green on build-2): stale when the observer's last status read is over 60 s old (status_at, new in the observer's live_state.proving), when the node's tip trails the newest block by over 300 DAA, or when blocks carried proof records in the last 10 minutes and no shard moved to verified or paid for 10 minutes (the blind-to-records class); a quiet chain is not stale for lack of credits. /api/live carries stale, stale_reason, status_age_s, tip_lag_daa, records_10m and last_change_at on proving (two more indexed readings; scene/feed-contract.json lists the keys; the recorded fixture carries them). /live: the Proven tile's line reads "proving feed stale: ..." in ember, else "... last credit N s ago"; the inspector's count adds "feed stale". Scene 2.0.7: a chain block whose plan is known (block.number set, carried as plan on the normalised block) and empty reads "no shards in this block"; loading and late stay for an unread plan (shard-words test, known-failed on 2.0.6). Gate: the health test joins the site unit-test line. 2026-10-08 09:12:56 +00:00
sim D5 partition row: N1b and N2b (the recovery bound measured on build-4) and the harness known-failed line on real nodes (v3 split past the expiry: both sides lock alone, 8 disagreeing locks after the heal); results, spec test table and the plan's D5 block updated 2026-10-08 16:21:46 +00:00
site Chip text: the reconciled per-tier line for the DRAM board (the two chip models agree after placement: 1.5x to 1.8x as a machine, 2.0x to 2.4x for the board alone on the same node; 1.8x to 2.1x and 2.45x to 2.8x a node ahead) replaces the single core-only line 2026-10-08 18:41:42 +00:00
tools F14 pinned and the founder's kill-by-name refusal in the relay agent (8 October 2026). The agent runs a task only beside an engine whose api/state reads edition "lab", product "Igneum Miner Lab" and channel "igneum-2.0-devnet-lab" (the window lane's reviewb-202 ef3c8402 strings); an engine with no such field is pre-2.0.2 and runs as before. publish-jobs.sh refuses an add to a target whose latest IGNEUM-APP header reads edition=public (tools/logs.mjs --header <id8>, new: the machine's latest app header line). The founder's word at 20:21 UK ("STOP all these mess ups", the fourth kill-by-name breach that day), by construction: Check-Task refuses a task body that ends a process by its name (Stop-Process -Name, taskkill /IM, Get-Process -Name | Stop-Process, pkill, killall) with exit 77 and the matched line; a pid is the only way. Tests known-failed first in relay/test/service.test.mjs (the shapes built from pieces so the tree's own kill-by-name check reads no kill) 2026-10-08 19:24:55 +00:00
.gitignore gitignore: infra/cross/out-workers-box/ (the workers tools/workers-remote.sh fetches from the box) 2026-10-06 19:11:39 +00:00
.vercelignore Commit identity rule and a deploy ignore file 2026-10-03 17:33:46 +00:00
CLAUDE.md Igneum: design docs, Metal lottery-hash prototype, CUDA test pack, finality simulation 2026-10-03 15:06:01 +00:00
rust-toolchain.toml rust-toolchain.toml: one pin for every side (1.99.0, the two cross targets); the mismatch refusal reads it 2026-10-06 23:44:20 +00:00