Commit graph

183 commits

Author SHA1 Message Date
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
igneum-labs
03ec2833b6 Windows launcher: brace a variable before a colon (second PowerShell parse error, found on PC 2)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:02:41 +00:00
igneum-labs
57db3a9286 One-click miner app: Rust engine (node, miner and worker supervisor with a local dashboard), Mac WKWebView window with a menu-bar item, design screenshots
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:00:22 +00:00
igneum-labs
70bed1065a CI on every push: igneum-pow tests, census build, simulator quick modes, site build + link check, identity grep
GitHub Actions workflow (.github/workflows/ci.yml) on push and pull_request with three jobs on the free runners:
igneum-pow `cargo test --release` and the igneum-census build; the two Python simulators' --quick modes under a
120-second timeout; the site build, an internal link check of site/*.html (tools/ci/link-check.mjs) and a gh-free
identity grep of the public export list (tools/ci/identity-check.sh over tools/ci/forbidden-strings.txt: machine
names, LAN and overlay addresses, home paths, local time zones, the log-intake key pattern; never a key or a name).
The node fork is too big for CI today and the workflow says so.

sim/finality_v2.py --quick is now a genuine smoke run (one day or hour per scenario, one partition and one eclipse
setting): 149 s at nice 19 on a loaded Mac, was 745 s. sim/difficulty/sim.py gains --quick (up50 and warmup-hard,
kaspa and igneum controllers, 36 s). One bench-log time-zone label reworded so the identity grep passes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 09:57:34 +00:00
igneum-labs
56d6dc6efe Windows package 0.3.0: prebuilt one-click workers first, nvcc/cl.exe build path as the fallback
igneum-common.ps1 uses igneum-worker-cuda.exe (with nvrtc64_*_0.dll next to it) and igneum-worker-opencl.exe when they
are in the folder, passes the exported pack with --pack, and only surveys the toolchain (Find-Toolchain) when a worker
is missing or FORCE_BUILD=1; the dashboard and the status block name the path per card; a prebuilt worker that is not
ready after 150 s falls back to the build path once when a toolchain exists; 90 s of seed mismatch errors re-export
the pack and restart the vendor; WORKER_ARCH overrides the NVRTC target. make-package.sh ships the two exes, the two
NVRTC DLLs, the licence texts, THIRD-PARTY.md and TEST.md (what the first RTX 5090 run should print and what to send
back). README.txt, the bats, proto-cuda/README.md (nvrtc/ section), WINDOWS-MINER.md and the bench log updated with
what the Mac measured.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 09:55:05 +00:00
igneum-labs
079ed76a2d OpenCL worker: generic --pack serve mode and OpenCL.dll loaded at run time (one-click AMD worker)
host.c --serve --pack <dir> serves a pack read at run time (packfile.h), whatever pack the exe was built against: the
first pair is built and self-tested like a prepared one (pairBuffers, pairSelfTest), prepared pairs are self-tested
too, the ready line says path prebuilt-generic. cl_dynamic.h (IGNEUM_CL_DYNAMIC) opens OpenCL.dll with LoadLibrary and
fills a function pointer per entry point, so the mingw build links no import library. test-generic.sh checks the mode
through Apple OpenCL with the packs of the CUDA emulation test: PASS (192 found, prepare and swap, 15 sampled hashes
equal igneum-pow hash-bound), built against a different placeholder pack than it served.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 09:55:05 +00:00
igneum-labs
f535abb59d One-click CUDA worker: driver API + NVRTC loaded at run time, pack read at run time, Mac emulation check
proto-cuda/nvrtc/worker.cpp serves igneum-miner's worker protocol with nothing installed but the NVIDIA driver:
nvcuda.dll and the redistributable nvrtc64_120_0.dll are opened with LoadLibrary (cuda_api.h), the pack's kernel.cu
and kernel_bound.cu are handed to NVRTC byte for byte up to the host launch wrappers with program.h and memhard.h as
named headers, every pack is self-tested against its vectors.h (cache head, last line, FNV-1a 64, dataset head, last
word, 64 samples, 96 vector lanes) before it serves a job, prepare runs on a thread for the hourly swap, and a job on
seeds without a pair makes the worker find the miner's pack by seeds.txt and build it. packfile.h (C99) reads a pack
directory. fetch-redist.sh verifies and stages the NVIDIA 12.8.93 redistributables and the Khronos headers
(THIRD-PARTY.md records URLs, hashes and the EULA clause); build-windows.sh cross-compiles with mingw (static,
KERNEL32 + Universal CRT only). emu/: the two libraries as host functions, the pack kernels on host threads, the NVRTC
source compared with the pack files; test.sh PASS on the Mac (two real packs, swap, self-heal, 17 sampled hashes equal
igneum-pow hash-bound). Not run here: the real NVRTC compile and driver load (RTX 5090 PC).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 09:55:05 +00:00
igneum-labs
4c3f8420ce Live DAG: final phone screenshot of the deployed page
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 09:54:00 +00:00
igneum-labs
dc442b5701 Live page: slower time scale on phones so about 20 s of blocks stay on screen
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 09:53:37 +00:00
igneum-labs
309ac87990 Live page: block DAG redrawn for 20 miners at 4 blocks/s
One lane per miner ranked by share, overflow in an others lane with a count.
Lane labels in a left gutter in the miner's colour (3-character tag on phones).
No per-block labels: short id on the chain tip, the lock, and on hover or tap
with a canvas tooltip (id, blue, DAA, parents, chain or side). Same-lane
overlaps nudged in a fixed sequence. Chain as one path, side blocks linked to
their first parent only, clamped cubics so no edge becomes a tall loop. Block
size and time scale step down together at density. One rAF loop, DPR aware,
paused when hidden or scrolled out. Final band and lock marker. Before and
after screenshots in docs/design/live-dag.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 09:49:57 +00:00
igneum-labs
597fc5077d Evidence page header links the live devnet
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 09:17:05 +00:00
igneum-labs
213d2bb796 Live devnet linked from every page header and the litepaper cover
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 09:16:35 +00:00
igneum-labs
d3cf542eb8 Bench log: first GPU proof on the RTX 5090 and the devnet v4 cut-over; ledger P20
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 09:14:18 +00:00