Commit graph

195 commits

Author SHA1 Message Date
igneum-labs
bd1a62df4c Evidence: rows 8 and 30 carry the outside Apple silicon laptop on the app (33 blocks, 21.0 MH/s), still tested by the team
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:53:15 +00:00
igneum-labs
cdb9b3a734 Evidence: 4 October measurements (live hourly swap, first live lock and the 280 locks since, first GPU proof, one-click worker, generator v2, difficulty oscillation and v2 pending, 12-node propagation and partition, clock skew); rows 29 and 30 added; difficulty and floor claims softened
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:52:45 +00:00
igneum-labs
2a9d3e7c34 Bench log: first outside machine on the devnet (an Apple silicon laptop through the app)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:51:32 +00:00
igneum-labs
5c471eab07 Public API: no peer addresses, no full key hashes, no payout addresses (R4.6.2, R4.6.8)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:47:39 +00:00
igneum-labs
8de5ad6daa Site: the engineering log page renders a scrubbed copy of the bench log and the build fails on any private string (R4.6.1)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:46:44 +00:00
igneum-labs
3eb7af819f Igneum Miner: the NVIDIA power cap is judged by reading nvidia-smi back (anything but the requested watts = NOT applied), the card tile and Settings say 'power cap: N W applied' or 'power cap NOT applied (needs the administrator prompt)' with a Retry, the elevated step runs through the window host (ShellExecuteEx runas, a UI context) with the PowerShell path as the 150 s fallback, events either way, cap state in the stability line (PC 2 mined uncapped at 118 MH/s on 0.3.1)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:43:04 +00:00
igneum-labs
4d907d8a14 Workers answer a job they have no pair for with a need line; the miner prepares the current pair (PC 2 stuck on the previous epoch)
Root cause from the uploads (bench-log entry): the app exported the pack while its node was in IBD inside the previous
epoch, the OpenCL worker started after the boundary with no next epoch within lead, so no prepare was ever sent and
every job was a seed mismatch; the CUDA worker on the same PC had swapped correctly. Both workers now print
need <epoch> <day> before the error; the devnet-v4 miner (3bfe346f) prepares the current pair on a need line or three
mismatches, exits 42 for a worker without prepare support, and restarts a ready worker that completes no job for
60 s with jobs queued. Package rebuilt with the guarded miner (ship build on dc749905), payload inputs published.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:32:58 +00:00
igneum-labs
bdd6f602f5 Bench log: the observer stall of 4 Oct 2026, measured, and what changed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:27:49 +00:00
igneum-labs
344893ee11 Observer: decoupled ingest, lag metric, per-minute by header time, feed self-check, restart loop
After the 4 Oct 2026 stall (no block stored from 11:57 to 13:15 UTC, then 7,022
blocks in two minutes). Notifications only enqueue; a drain loop handles them
in bounded batches. Block flush, colour marking and certificate work each run
on their own timer and never wait on one another. Mergesets come from the
notification's verbose data (bounded cache); getBlock only on a miss, four at
a time. live_state gains observer_lag_s and queue_depth; the API serves them;
the page shows "observer N s behind" past 30 s instead of waiting for the
first block. blocks_per_minute and blocks_60s are bucketed by the block's own
timestamp and reseeded from the table on start, so a catch-up fills past
minutes instead of painting a spike. If no blockAdded arrives for 60 s while
the node's block_count advances, the observer resubscribes; after two failed
attempts it exits 2 and tools/observer/run.sh restarts it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:26:46 +00:00
igneum-labs
c8bb100e34 Igneum Miner 0.3.1: lock file
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:26:45 +00:00
igneum-labs
b4ca73419f Igneum Miner 0.3.1: the first build with over-the-air updates
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:26:24 +00:00
igneum-labs
c01b9544a4 Difficulty: the live oscillation of 4 October, its cause, the DAG replay and rule v2 (reference window 600 behind a height switch)
Live devnet v4: a second RTX 5090 joining 7 minutes into an epoch left the whole-epoch reference lane polluted for the hour; the short lane read 11 to 25% above it and the 25% trigger flipped between the two for 40 minutes (102M to 164M, 54 to 81 blocks a minute). Record and hash-rate truth under sim/difficulty/records/. sim.py gains a DAG model (miners on nodes with igneum-miner's template staleness, GHOSTDAG, the rule as the node runs it) and --live replay: std of log difficulty 0.115 against the record's 0.134, 4.3 peaks of 1.31x against 4 of 1.37x. The brief's candidates (short lane 240/360, ease clamp 3%, clamp once per DAA second, hysteresis, median of three) leave 0.09 to 0.13; capping the reference lane at the newest 600 blocks of the epoch gives 0.026 with no flips. Rule v2 = that cap, epoch lane only, behind difficulty_v2_activation_daa (devnet-v4 fork). Attack suite and synthetic set before and after, 3-node test network of the switch (testnet_v2.py), analysis document, spec 2.3, bench-log entry, ledger M24, fast-time file carries the new field.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:26:23 +00:00
igneum-labs
9de0429633 Igneum Miner: over-the-air updates (the project lead's rule: every app updates itself and downloads the update by itself). Signed manifest (Ed25519, key on the Mac, public key compiled in), hourly check with jitter, download with resume and sha256, staged bundle on macOS, silent Inno upgrade on Windows, apply at a safe moment (node synced, no hour boundary within 3 min, no worker starting), red bar and no waiting near a consensus activation height, rollback to .previous / the previous installer, Settings: Check now, Install now, automatic switch; publish-manifest.sh, fetch-ci-artifacts.sh adds the Windows entry; dry run on a private devnet 0.3.0 -> 0.3.1 and back (rollback), screenshots; TEST.md for PC 2
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 13:25:14 +00:00
igneum-labs
611b87cd17 Brand: before/after Finder renders of the app and DMG volume icons (docs/brand)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 11:51:11 +00:00
igneum-labs
c6a425ed8c Brand: one master mark (black square, no circle) for every icon, favicon and profile picture
the project lead's rule, 4 October 2026: the mark sits in a black square, never in a circle, never on another colour, 20% clear
space; the Mac app is the model. brand/master/igneum-mark-square.svg (1024, #0C0C0E, the exact header polygons at 62%)
and igneum-mark-square-rounded.svg (Apple's 824-on-1024 grid, DMG volume icon only). make-icons.py now rasterises the
masters (rsvg-convert if installed, else Pillow draws the polygons) into igneum.icns (plain square, 16 to 1024),
igneum-volume.icns, igneum.ico (each size from the vector), the Inno art, the DMG background, site favicons
(favicon.ico 16/32/48, favicon-32, apple-touch 180, 192, 512, maskable 512 + manifest entry), relay favicons, and
brand/profile (400/512/1024, github-org-512, X banner). Every page head's inline SVG favicon and the relay header lose
the ring. The .rc and Info.plist paths are unchanged (same file names). docs/brand/before holds the old set.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 11:39:55 +00:00
igneum-labs
d4cb2d2078 Igneum Miner: NVIDIA power cap by default (80% of the card's default limit through an elevated nvidia-smi -pl step at start, restored on quit, per-card slider 60 to 100%), nvidia-smi telemetry on the card tile (draw, cap, GPU and memory temperature with amber over 90 C and red over 95 C), a stability line every 5 min and at quit (draw p95, max temps) for crash correlation (PC 2's 5090 hard-crashed at full power)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 11:39:52 +00:00
igneum-labs
cbe927e390 Igneum Miner: node state derived from every watch reading (caught up within 2 headers and moving beats a false getInfo flag), an accepted block in the last minute is proof of sync, live height/daa/peers on the node tile; state-machine test for syncing -> clock-refused -> catch-up -> steady (PC 2 showed syncing while mining at 118 MH/s)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 11:32:22 +00:00
igneum-labs
ae3be2feeb Bench log: first machine on the Igneum Miner app (PC 2, 118 MH/s) and the clock-skew finding
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 11:29:56 +00:00
igneum-labs
ab7fd9a30a Igneum Miner: clock-skew detection (the node's too-far-in-the-future refusals, the median of local minus block time over the EVM RPC, an HTTPS Date header), warn over 5 s, block Start and hold the miners over 10 s, one-click Sync clock per platform; bench-log entry and the node-change note (a 60 s slow node is silently dead)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 11:23:56 +00:00
igneum-labs
3c30c17ab0 Igneum Miner: identity labels and vote keys come from a per-install machine id, never the hostname (two cloned PCs shared COMPUTERNAME and signed with the same keys); hostname is a display label only, editable in settings; upload fields carry the id
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 11:07:31 +00:00
igneum-labs
fcdb04bb41 Bench log: the gfx1036 worker fault, the two Apple OpenCL soaks (no reproduction, no leak) and the injected-fault check; ignore the soak outputs
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 11:04:54 +00:00
igneum-labs
f6f340040a Bench log: first finality lock on the live devnet (checkpoint 242, 77.4% of weight)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 11:04:32 +00:00
igneum-labs
56e5194d72 Live DAG: the tip label picks a free spot around the block so it never covers a neighbour on phones
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 11:01:11 +00:00
igneum-labs
b3b61f41b9 Site: mobile menu button works again (the hero animation's links array shadowed the nav element); tap outside or Escape closes it
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:58:47 +00:00
igneum-labs
d69d70c3fc Windows exes carry the coin icon and a version block (the project lead's rule, 4 Oct 2026)
Every Windows executable now ships with the coin icon Explorer shows and the version block Properties shows
(CompanyName Igneum, ProductName Igneum Miner, FileDescription per exe, 0.3.0, LegalCopyright Igneum contributors),
like the Mac app and DMG already do.

- igneumd.exe, igneum-miner.exe: packaging/windows/embed-resources.sh now takes the worktree and target dir
  (defaults vendor/igneum-node-v4 and vendor/igneum-node/target-integration) and relinks with a linker shim first in
  PATH instead of `cargo rustc -- -C link-arg`: cargo rustc takes one package and unifies features differently from
  the two-package cross-build (300 crates differ), and a configured linker is fingerprinted and rebuilds everything;
  the PATH shim changes neither. .rc files moved to 0.3.0.
- igneum-worker-cuda.exe, igneum-worker-opencl.exe: proto-cuda/nvrtc/build-windows.sh compiles the two new .rc
  files with windres and links the objects; the icon is made with make-icons.py if missing.
- igneum-app.exe: app/igneum-app/build.rs runs windres on resources/igneum-app.rc for Windows targets and links it
  (cargo:rustc-link-arg-bins, no crate dependency); it fails the build if the .rc version drifts from Cargo.toml.
- packaging/windows/resources/verify-exe.py: small PE parser that checks the .rsrc section, icon group and version
  strings on the Mac; both build scripts call it, and it checks every exe inside the packages.
- proto-opencl/cl_dynamic.h: clGetEventInfo added to the run-time loader table (4714b51 added the call in host.c
  without it, so the one-click OpenCL worker no longer linked under IGNEUM_CL_DYNAMIC).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:44:20 +00:00
igneum-labs
4714b510f2 OpenCL worker fault guard, miner-side fault state in the launcher, NVRTC annotation rule in the emulation
After PC 2's gfx1036 (prebuilt-generic path) completed 2,000 jobs a second with no hash from 600 s on: every OpenCL
call in host.c's job path is now fatal on error (exit 3, the miner restarts the worker), the dispatch event must read
CL_COMPLETE, a chunk 20x faster per nonce than the running mean or an output buffer unchanged since the previous
dispatch is a fault, and a stats line every 200 jobs carries the live event and buffer counts (a leak over 16 events
or 12 buffers is fatal too). IGNEUM_FAULT_TEST=N exercises the detectors on a healthy device (verified on Apple
OpenCL: the stale-output guard fires on the chunk after the injected fault). The launcher shows 'worker fault' and
'restarting' for the card on the miner's WORKER FAULT line and drops the last rate. The emulation's NVRTC stand-in
now applies NVRTC's execution-space rule (program.h(46) igneum_launch_* declarations are host code unless
-default-device or -DIGNEUM_NO_CUDA), which is what the RTX 5090 reported; test.sh checks the rejection.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:42:36 +00:00
igneum-labs
4574890602 Cloud devnet: private-network mode (4 zone networks, 4 gateways), 12 nodes up, first latency measurement
A new Hetzner account is capped at 10 primary IPs (IPv4 and IPv6 both count), 20 shared vCPUs, 8 dedicated
vCPUs and no Arm, and a network cannot span zones. So: one private network per zone (10.20.<zone>.0/24),
the lowest-index node of each zone keeps a public IPv4 and is its gateway (NAT, MSS clamp, one DNAT port
27000+index per private node, persisted as igneum-nat.service), every other node has no public address.
nodes.tsv gains access, pub and port columns; lib resolves same-zone vs cross-zone dial addresses and jumps
ssh through the gateway for private nodes. All nodes.tsv loops read on fd 3 (a backgrounded ssh drained the
file). TYPE_BY_INDEX puts nodes 8 to 11 on ccx13; node 12 is the last shared one the account allows.
create.sh prints the plan's cost from the live API. provision.sh install takes node names and skips binaries
whose sha256 matches. Binaries copied from the seed's staged v4 build (same sources), no vCPU for a builder.

Results 2026-10-04: RTT matrix (hel1-fsn1 35 ms, ash-sin 289 ms) and a 10-minute propagation window of 644
blocks: p50 343 ms, p90 497 ms, p99 666 ms across 12 nodes in 5 locations.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:41:23 +00:00
igneum-labs
a1ad8fffb9 Windows installer: Inno Setup version from the uninstall key or ISCmplr.dll when ISCC.exe has no version block (the GitHub runner image)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:36:39 +00:00
igneum-labs
d29016d576 Linux cross-compile from the Mac: cargo-zigbuild for x86_64 glibc 2.36, BIN_SOURCE=mac in provision.sh and stage-v4.sh
infra/cross/build-linux.sh builds igneumd and igneum-miner for x86_64-unknown-linux-gnu.2.36 (Debian 12) with
cargo-zigbuild 0.23.4 and zig 0.17.0 into vendor/igneum-node/target-linux: rocksdb, lz4, blst, secp256k1 and the
execution layer all link through zig, no crate failed (Docker is absent here, so cross was not needed). Cold build
1,856 s at 4 jobs, nice 19, on a loaded Mac; the seed's own build took 55 min and the builder VM 10 to 25.
Verified on igneum-seed-1 in /root/xbuild-test: igneumd --version, igneum-miner --help, and a 60-s private
network with real proof of work where the cross-compiled miner found 7 blocks that the cross-compiled node
accepted (0 rejected). /opt/igneum/v4/bin untouched.

BIN_SOURCE=mac: provision.sh skips the builder VM and takes build/bin from the cross-compile; stage-v4.sh
cross-compiles, uploads to /root/v4/out and installs exactly as a VM build would.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:34:19 +00:00
igneum-labs
6b72c3b3e6 Fast time: the devnet at 60x for test networks (override-60x.json, --fast-time in both harnesses, proof script)
infra/fast-time/override-60x.json is the devnet with every clock-like consensus parameter divided by 60 and every
block count unchanged (finality window, ban and min_daa 120 DAA; merge depth 60; Kaspa finality depth 720; pruning
depth at the anticone bound 13,838; coinbase maturity 2; the hourly program epoch 60 blocks with a 10-block lead;
the dataset day 24 minutes). The epoch length, lead and day are consensus parameters of the node since devnet-v4
a5ef8b07, carried by the override file. README lists each field, why it scales or not, the flags and the numbers.

Measured (simnet.mjs, three devnet-v4 nodes, three vmine voters at 1 block/s, one real-hash CPU miner): next
epoch seed in the template at 56.1 s, program swap at 65.1 s wall (DAA 60), first finality lock at 185.5 s wall
(checkpoint 5, DAA 149). Both harnesses take --fast-time: finality-attacks s3 PASS in 113 s wall with 16 locks
per node (the devnet rule needs 20 min of warm-up at 6 blocks/s before any lock); harness s3 partition and heal
43 s wall for three cuts against 983 s for four on the devnet profile with the same binary. Bench-log entry.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:34:19 +00:00
igneum-labs
7717c4fdac Windows CI: the one-click app built on GitHub runners, no PC needed
windows.yml: parse job (every .ps1 through the Windows PowerShell 5.1 parser with a negative fixture, PSScriptAnalyzer
as warnings, parenthesis check of every .bat/.cmd with a negative fixture), build job (engine on the MSVC target,
window host through BUILD-APP.bat as it is, payload through make-payload.sh in Git Bash, installer through
build-installer.ps1, smoke run of both exes, launcher DRY_RUN, three artifacts for 90 days).
push-inputs.sh publishes payload-inputs.zip (node, miner, workers, NVRTC DLLs) to the downloads host from the Mac;
fetch-ci-artifacts.sh pulls the green run's installer and payload back into the downloads folder.
Host: --version and --help, version.h shared with host.rc. Launcher: DRY_RUN=1 prints the plan and starts nothing.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:32:20 +00:00
igneum-labs
5097c0468a Proving plan: shards implemented and measured on the Mac CPU; bench-log entry for the devnet v4 shards (GPU row empty until the PC runs)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:26:52 +00:00
igneum-labs
b491b43540 Live page: the miners stat is labelled as identities (vote keys); a card runs several
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:24:56 +00:00
igneum-labs
fd05f47547 Revert "Live DAG: chain rail layout, time ruler, slide-in, red as ember tint, pending count"
This reverts commit 3e03e9bff7.
2026-10-04 10:24:49 +00:00
igneum-labs
5d7181e84b Live DAG: screenshots of the chain rail layout
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:17:06 +00:00
igneum-labs
3e03e9bff7 Live DAG: chain rail layout, time ruler, slide-in, red as ember tint, pending count
The selected chain runs along one horizontal rail; crowded chain blocks
stagger to three rows around it. Side blocks hang above and below in time
order, packed into rows so none overlap. The miner is the ring colour; the
gutter lists active miners with their on-screen block counts. A ruler under
the blocks ticks every 5 s with clock labels and now at the right edge. New
blocks slide in from the right. Red blocks are a dim ember tint. Header stats
gain a pending count. Density steps, tooltips, final band and the one-rAF
loop are unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:15:45 +00:00
igneum-labs
734dbd134f NVRTC worker: -default-device (NVRTC rejects unannotated pack helpers as host code; found on the first real card)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:12:35 +00:00
igneum-labs
a7d7f5da2a Igneum Miner 0.3.0: GPU selection per card (switch, kind, VRAM, identities), Windows WebView2 host + BUILD-APP.bat, Mac DMG and Windows payload around the app, installer scripts for the engine
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:11:47 +00:00
igneum-labs
cbe003e38b tools/prove-fixtures: ignore node_modules
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:10:32 +00:00
igneum-labs
6671d88a95 Proving host: the setup line splits prover-client creation from the two key setups (ledger P20 gap); simnet export and generator results kept with the fixtures
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:10:26 +00:00
igneum-labs
f5bf494344 Docs: ledger P12 fixed in the proving code and P20 fixed in the host; spec 7.6 shard statement definitions and the provisional S_p; benchmark standard rows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:10:17 +00:00
igneum-labs
a0a2bc3d10 Windows launcher: MACHINE_NAME override for cloned PCs; litepaper and homepage carry the honest builder text (Canto/Blast line removed)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:10:03 +00:00
igneum-labs
748912af9c Prover package: PROVE-SHARD.bat runs the shard at S_p and the two- and four-shard blocks on the GPU
prove-shard.sh: mode shard on block-338-shard1 (execute, core, compressed), then mode block on block-341-shards2 and block-344-shards4 (compressed proof per shard, aggregation), RESULT lines with timestamps, log uploaded after each stage. PROVE-BLOCK.bat keeps the small block (mode all; the CPU comparison is mode shard now). make-package.sh packs the aggregator crate and the simnet export too; README rewritten for the shard run.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:09:33 +00:00
igneum-labs
aa90c6f65b Bench log: first hourly swap on the live devnet, no pause on three vendors
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:07:35 +00:00
igneum-labs
b64a31c77f Proving fixtures: blocks of one, two and four shards at S_p from a private simnet, plus the v1 cut of the v0 blocks
tools/prove-fixtures: a one-node simnet on ports 29300+ and a generator that lands bursts of equal-sized modexp calls, transfers and Counter increments in one chain block (blocks 338, 341, 344: 0.90, 1.80 and 3.60 S_p). block-56-transfers-3shards is a test cut at 200 pgas for the Mac CPU multi-shard check.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:05:05 +00:00
igneum-labs
f71af23dcb Proving: aggregator guest, host modes shard and block with per-stage timestamps, exporter with shard plans
Two SP1 programs: the shard guest and the aggregator guest (deferred proof verification of the shard vk). Host modes native (cut, witnesses, chain and sums, three tamper checks, stub), execute (cycles per shard and for the aggregator), shard (execute, core, compressed, each verified), block (compressed proof per shard, aggregation, verified against the shard program id and the claim). Every stage prints a STAGE line and a RESULT line with a UTC timestamp so a silent gap is visible, and the host holds a Tokio runtime for the whole run and drops the proof system inside it, for the sp1-cuda Drop panic (ledger P20). The exporter writes v1 fixtures with the plan and every shard's expected roots, links and witness size; --budget makes a test cut.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:05:05 +00:00
igneum-labs
9bea7c718b Proving: shard cutter, MPT witnesses, shard and block statements in igneum-prove-core
The executor runs any contiguous range of a segment from a carried-in position and emits a boundary per transaction (cumulative gas and pgas, the carry link, the state root natively); the planner cuts at transaction boundaries to at most S_p pgas (provisional S_p = B_p / 4, the specification has no number yet), deterministically from the trace. Witnesses are partial Merkle Patricia tries (touched leaves in full, every untouched subtree as a hash, collapse-safe siblings carried) for the account trie and each touched storage trie; the guest rebuilds the pre-root from them, refuses any read they do not cover, and rebuilds the post-root after execution. The shard statement commits the prover's payout address (ledger P12) and the carry links; the block statement verifies the shard proofs in order, chains roots, links and transaction commitments, and carries the provers and the shard program id (design 5.1, 5.3). Port moved to igneum-exec b7fca5a0 (spec 7.5 pgas cap and abort).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:05:04 +00:00
igneum-labs
d7485c01b9 Live DAG: screenshots with block colour
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:04:42 +00:00
igneum-labs
53f7f55796 Relay: text, files and runnable tasks between the Mac, the PCs and the phone (relay.igneum.network)
New Vercel project igneum-relay from relay/: one function (api/relay.mjs) over Neon tables relay_items and relay_machines,
files in Vercel Blob store igneum-relay (50 MB client uploads, 4 MB through the function), phone-first web page at /r/<token>/
with the site tokens. Mac CLI tools/relay.mjs (feed, read, drop, task, run, watch, inbox, machines, role, name).
Windows clients send.bat/send.ps1 and the igneum-agent (registers hostname, role, GPUs, WSL, nvcc; runs queued PowerShell
scripts, posts results, reboot-continue via scheduled task + RunOnce), bash twins send.sh and agent.sh (verified live),
playbooks for WSL setup, prover setup, prove-block, miner v4, one-click placeholder. make-clients.sh bakes the secrets
into a zip; the repo copies hold placeholders. Screenshots under docs/design/relay.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:04:30 +00:00
igneum-labs
617d3b9682 Live DAG: side blocks carry their GHOSTDAG colour (blue paid, red excluded, pending)
Observer: additive live_blocks.color (pending by default). Every chain block's
mergeset marks its blues blue and its reds red, from the notification's verbose
data or getBlock for chain blocks learned via virtualChainChanged; a reorg puts
the removed chain blocks' mergesets back to pending. API serves color. Page:
blue side blocks filled in the miner's hue at 70% with the ring, pending the
faint outline, red a dark outline with a strike; tooltip and legend name the
state.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:03:28 +00:00