Igneum: the GPU-mined zkEVM L1. Node, miner, app, spec and site.
Find a file
2026-10-08 09:20:30 +00:00
.claude/agents Igneum: design docs, Metal lottery-hash prototype, CUDA test pack, finality simulation 2026-10-03 15:06:01 +00:00
.github/workflows windows.yml smoke: a direct call with the exit code read, in place of Start-Process -Wait -PassThru that raced a program exiting at once (the 0.3.21 run's failure at the version read-back) 2026-10-07 17:02:58 +00:00
app Merge amd-clock-25 2ab55388 into release-0.3.25 (the integrated Radeon's dash-only tune line reads not available; the 9070 XT's real line gives the knob) 2026-10-08 09:20:30 +00:00
brand brand/marks/vendor-marks.mjs: the app's vendor marks and tokens exported verbatim for the site (site-ui-5), with the Windows mark in the same treatment and macOS as the Apple glyph, regen.mjs to refresh it from app.js, a view test that fails on drift; the review shots re-taken on build-2 against gpu-logos-21 (the Prove page on, off and light added: the switch fix in the picture) 2026-10-07 13:28:36 +00:00
docs Merge pool-finish-22 b3872b77 into release-0.3.24 (the pool daemon reconnects its node connections after a node restart; rejections by code in STATUS and /api/stats; dn3-split-read.mjs as the pool lane's) 2026-10-07 21:39:35 +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 0.3.24: igneum-pow and the class v5 packs from the frozen class-v5 f2267bb6 (rule 7: the node, the pool daemon and the app's CPU re-check pair against the pinned igneum-pow; the packs pin travels with the generator); the sub-version 3 packs unchanged 2026-10-07 21:44:18 +00:00
infra Open pool: the retarget clamps against the window's mean (never compounded share by share), the ceiling in u128 (a 2^49 first target shifted by 20 wrapped to 0 on the box), a deeper reorg depth and a progressive sync when parents are missing; the fast-time file carries pool_split_activation_daa (never); the gate runs on build-1 2026-10-07 14:03:05 +00:00
packaging 0.3.24 installer: drop the unused Age: TDateTime var that stops ISCC (the install-close-23 9b4a4324 fix, which release-0.3.24 had merged before) 2026-10-08 09:18:37 +00:00
pool Pool daemon: every node connection reconnects by itself after the node restarts (connect_reconnecting: the gRPC client reconnect flag, off in GrpcClient::connect; 7 October 2026, the Devnet 3 sweep minute with daemons running on across their nodes restart); pool.md 10.5d row 2026-10-07 21:17:57 +00:00
proto-cuda 0.3.24: igneum-pow and the class v5 packs from the frozen class-v5 f2267bb6 (rule 7: the node, the pool daemon and the app's CPU re-check pair against the pinned igneum-pow; the packs pin travels with the generator); the sub-version 3 packs unchanged 2026-10-07 21:44:18 +00:00
proto-metal Counter ASIC 3.0 gates (node): the program id carries the class. A class v4 program is generator 4 wherever it is made: the CLI's --era path stamps the generator from the class (era_generator_of: 4 on V4_CLASS, 3 otherwise; ProgramClass::of_load_class), show honours --program-class and --era-hex; the shadow block marks class v4 in packcheck, packfile.h and the Metal worker (a generator 3 pack with IGNEUM_SHADOW_INSTRS is refused as a v4 program stamped v3, a generator 4 pack without it is refused; generator 2 ladder packs unchanged); the seven gate packs re-exported (generator 4, id c120d7963abdcd96 against the v3 control's 73bcbfe8ccf988f1, every other line byte-identical); class-v4.mjs asserts every v4 epoch's id against the CLI's same-seed v3 and v4 ids (--id-check-against v4 is the assertion's failed case); v2 and v3 ids byte-identical (60 + 7 + 4 + 19 + 7, the pinned packs) 2026-10-06 16:24:02 +00:00
proto-newpow Horizon: lane 8 (new-proof-of-work) lands: three schemes, two prototypes measured on rented 4090s 2026-10-06 20:18:39 +00:00
proto-opencl 0.3.25: the AMD core-clock and power-cap knob for Ember Tune (main's order of 8 October 2026: PC 1's RX 9070 XT measured 18.9 MH/s at 202 W and stopped, "no knob on AMD"; the card is latency-bound on the whole class v4 ladder, so a core-clock cap is the lever as on NVIDIA). Two findings behind the stop: the app's AMD lever (--tune, --set-gmax, --set-plimit, --reset in igneum-gpu-telemetry: ADLX IADLXManualGraphicsTuning2 and IADLXManualPowerTuning on Windows, pp_od_clk_voltage and hwmon power1_cap on Linux) was built on 5 October (8c27350f) and never left branch opencl-rdna4-telemetry, so the kit's exe answers no tune line and every AMD tune fell to "measure only"; and the 9070 XT's max clock is an OFFSET range (gmax 0, gmax_range -500 1000), which the engine read as "no clock knob". Now: proto-opencl/gpu-telemetry.c takes 8c27350f's tool whole (a superset of the shipped one); src/ember.rs amd_knob turns the tune line and the card's stock clock under load into the knob (clock ladder stock down to stock + gmax_min, power ladder on the percent scale 100 + plimit range; absolute-MHz drivers pass through), amd_limits, amd_gmax_arg (the apply sends the offset), and "not available (<reason>)" with nothing set for no AMD device, a tune line that read an error, Linux (root under /sys, a later cut), or a stock clock not yet known; Plan::full takes a narrow range (the floor above the 45 percent rung) as the fine ladder alone in 100 MHz steps, so the 9070 XT runs 2870, 2770, 2670, 2570, 2470 under a 2,970 MHz stock, the stop rule at the knee or a faulted row, lock_result and the lock_* fields as on NVIDIA. ADLX manual tuning needs no elevation (PC 1, 5 October 2026, an unelevated job), so the no-prompt rule holds with no Power Helper verb; nothing of the engine runs elevated. engine.rs carries the whole tune line in TuneProbe.amd_tune and the card's amd_stock_mhz and amd_gmax_offset. Tests known-failed first: the_amd_knob_reports_not_available_with_its_reason_and_sets_nothing, the_9070_xt_gets_a_power_ladder_and_a_clock_ladder_from_its_stock_clock, the_9070_xt_ladder_locks_at_the_knee (a declared ladder in the card's shape, not a measurement). Owed: the kit's igneum-gpu-telemetry.exe rebuilt from this source (MSVC on a PC or build-1, the ADLX SDK at vendor/adlx beside the tree), then the first measured grid on PC 1 by job when the hash lane's queue is clear 2026-10-08 08:42:15 +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 exec 0.3.14 app side on release-0.3.14: the prover exports from one block below and seeds from the account dump; nothing claimed below the restart; the harnesses 2026-10-06 16:59:18 +00:00
relay 0.3.25: relay/playbooks/ca3-pc1-amd-grid.ps1, the RX 9070 XT's first measured grid on the AMD knob by job, under the installed app (0.3.20 to 0.3.24 have no AMD knob in the engine), driving the rebuilt igneum-gpu-telemetry.exe directly: the tune line names the card's ordinal and ranges, each point sets the max-clock offset then the power-limit offset (refusals are rows marked refused), holds 75 s with the first half settling, reads the app's own hash_now for the card and the tool's watts and clock in force, prints RESULT GRID row lines, resets the card at the end and names the best point against stock. One card at a time, the NVIDIA cards untouched, never quits, pauses or resumes the app and never starts its tune 2026-10-08 08:53:27 +00:00
scene The shard sentence from the block's facts (7 October 2026, the site's animation said "no shard plan yet" on every planless block): IgneumDag.shardWords(block, nowMs) in scene/live-dag.js (2.0.6) is the one source for the tooltip, the /live inspector and the app's inspector: no shards reads shard plan loading (a chain block under 10 s), excluded, nothing to prove, not yet ordered (pending), off the selected chain, no shards planned, or no shard plan after N s; a planned shard with no prover reads awaiting a prover with the block's age, assigned to <prover> when one holds it, proving, verified, paid as before; the app's inspector prints these per shard and as the count line; the copies synced; tools/scene/shard-words.test.mjs on the gate's scene line, known-failed first on 2.0.5 2026-10-07 18:13:23 +00:00
sim Merge box-capacity 585e87b: the builder's background capacity layer (fuzz, sims, sweeps, clippy; yields to builds) 2026-10-06 21:35:54 +00:00
site The shard sentence from the block's facts (7 October 2026, the site's animation said "no shard plan yet" on every planless block): IgneumDag.shardWords(block, nowMs) in scene/live-dag.js (2.0.6) is the one source for the tooltip, the /live inspector and the app's inspector: no shards reads shard plan loading (a chain block under 10 s), excluded, nothing to prove, not yet ordered (pending), off the selected chain, no shards planned, or no shard plan after N s; a planned shard with no prover reads awaiting a prover with the block's age, assigned to <prover> when one holds it, proving, verified, paid as before; the app's inspector prints these per shard and as the count line; the copies synced; tools/scene/shard-words.test.mjs on the gate's scene line, known-failed first on 2.0.5 2026-10-07 18:13:23 +00:00
tools Ember Tune: the core-clock knob's display (knob-24, 0.3.24; the hash lane's engine tip 8bb0e288 on release-0.3.24, the shipper's line of 7 October 2026): the card row and the Ember panel read the card's lock_* fields. The row's tune line carries the lock against the unlocked row at the same cap ("the lock: 112 W less for 1.3% of rate, knee at 1200 MHz"; "no rate lost" when nothing was lost; "clock unlocked, the knee came at 2472 MHz" when the first lock step was already past it) and, while the clock ladder runs, the search step inside the tune's ("locking clocks: step 4 of 9 · about 7 min left"). The panel adds a lock line (the measured point, the unlocked row, the knee in words: the rate fell, a hash mismatch with the clocks reset, or the floor with no knee), the rule the knob keeps (Ember never locks the clock below the knee by itself; going lower is the user's choice) and the knee as a dashed point on the curve with its sentence in the note; "no lever" names a card without a clock lock; a build without the fields shows nothing new. View.lockWords, kneeWords and LOCK_RULE in the pure block; the rows re-render when the lock fields change (sig). The mock gains scenario=knob (the 5090 locked at 1,300 MHz with the knee at 1,200, the 4070 in the clock search) and knob-search; ?tune=tuned and ?tune=running carry the fields. view.test.mjs: the lock, the knee words, the search step, no lever, the untouched older shape (known-failed first on build-2: "V.lockWords is not a function"; then 69 green). Display only: the knob and its fields stay the engine's. 2026-10-08 08:32:19 +00:00
.gitignore Merge remote-tracking branch 'origin/master' into release-0.3.15 2026-10-06 19:15:08 +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: the one pin (1.99.0) from master, so master's build tools run against this tree 2026-10-07 01:36:28 +00:00