Commit graph

1497 commits

Author SHA1 Message Date
igneum-labs
59d2177fd3 igneum-light: the finality object (version 1, 832 bytes), its verifier and the test vectors
light/ is its own workspace: igneum-light (no_std core: the object container, the statement offsets of
BlockOutput and FinExt, the MMR history check, the SP1 6.8.1 Groth16 wrap verified with arkworks under the
compiled-in key, the final-at answer), igneum-light-wasm (a C ABI for the tab, no bindings generator) and
igneum-light-cli (vectors, encodings, native timing). The wrap has not landed, so the chain fixture (the
fin-proof lane's proof 81053, public values 504 bytes) is a kind-0 stub; a kind-1 object with generator points
exercises the pairing and is refused. Native on this Mac: the pairing 0.78 ms in arkworks, 155 ms in
sp1-verifier's substrate-bn (kept as the reference check).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 09:02:58 +00:00
igneum-labs
3f0091f2e2 Merge branch 'fin-proof' into pocket-finality 2026-10-07 09:02:37 +00:00
igneum-labs
3e0c0c90c8 fin-proof: the re-measure after the two fixes and the Merkle table (fp-2, RTX 5090), bench-log and design 6.2a
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:58:45 +00:00
igneum-labs
67cebcab74 fin-proof: design page, level 1 and the Merkle key table as built
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:52:24 +00:00
igneum-labs
836c0b0755 fin-proof: guests re-pinned with the Merkle key table (aggregator 827,056 bytes, id 0x4ab78fb1)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:51:45 +00:00
igneum-labs
b00a008e17 fin-proof: the Merkle key table (a slot per key, one path per touched key in the fold, the full table once per certificate over the dense prefix)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:51:13 +00:00
igneum-labs
125d65b039 fin-proof: guests re-pinned with the cost fixes and level 1 (aggregator 809,520 bytes, id 0x7b8ac0dd)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:43:43 +00:00
igneum-labs
20cb559b86 fin-proof: level 1 of the blue colouring (headers hashed in the guest, selected parent and blue count from blue scores, parent-link reachability, reds kept in the ring)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:42:58 +00:00
igneum-labs
b6e8d324e8 fin-proof: the two cost fixes, the sha2 precompile for the fold's hashes and the certificate path over validated signer points (no square root, no subgroup check per signer)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:39:12 +00:00
igneum-labs
4b6ff61feb fin-proof: the measurement (cycle counts at 100, 1,000 and 3,429 keys; 4090 prove time with and without the extension; final-at), bench-log and design section 6
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:34:29 +00:00
igneum-labs
7c5d612cf4 fin-proof: bench-log, the 100-key cycle counts on rz-4090
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:26:07 +00:00
igneum-labs
210084b0e5 build server: the remote checkout's clean spares a lane's scratch (AP-H1, the lost-scratch class)
remote-run.sh checkout_tree ran `git clean -fd` on the box mirror before every build from any agent, so the attack rows
lost attack-f3/, attack-f1-venv/ and tools/attack/*/target to each other's builds (7 October 2026, 09:2x UK). The clean now
also spares the fixed prefixes attack-*, scratch-*, target-attack-*, .build-remote.log and every glob in the mirror-local
.igneum-scratch-spare (one per line, # comments, the file itself spared), keeps the target and stamp excludes and still runs
without -x. The clean-tree test asks `git clean -nd` with the same excludes instead of filtering the status list, so a spared
dir is not "not clean". --self-test: a fixed-prefix dir at the root and nested, a declared dir and the spare file survive, an
undeclared dir is removed. tools/ci/scratch-spare-check.sh in the pre-push gate fails when the clean line loses the spare
arguments, spare_args stops reading the file, a fixed prefix goes, or -x appears. docs/plans/build-server.md R4a says how a
lane declares its prefix.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:24:07 +00:00
igneum-labs
e94cc7ebfd fin-proof: bench-log entry frame
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:23:21 +00:00
igneum-labs
d91fe9bbb3 Merge mission: the last research round (five lanes: past, unfinished, future, invent, reinvent) and The Igneum Mission, the closed list of twelve
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:22:14 +00:00
igneum-labs
bbe0acce28 Export exclusion: docs/analysis/mission is internal research (the last mission's five lanes and the closed list), outside the public export list
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:22:09 +00:00
igneum-labs
3ae76a3047 The Igneum Mission: the one page for the project lead and the closed list of twelve (five in flight, seven new, about 290 agent hours, no new consensus rule beyond the three cut branches), the rejected ideas with the line that killed each, what was not run, and the closing line: nothing is added without removing something
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:19:29 +00:00
igneum-labs
f4acab066d fin-proof: the synthetic witness reveals a key with its first block
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:18:22 +00:00
igneum-labs
000a976209 Mission lane 2, unfinished: proof of useful work (every scheme that passed cheap-verify did so by making the work useless; Filecoin at 29 to 36 percent utilisation), the stalled ASIC-resistance programmes, merged mining, finality on proof of work (every one that held was a second set bought with coins), decentralised pools (only Monero's P2Pool at 7.7 percent; a share sidechain about 40 hours on Igneum), the one-click miner apps against Ember, the three-way verdicts
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:18:20 +00:00
igneum-labs
e4efea469d Mission lane 5, reinvent: the miner's dopamine loop from a 105-post sample (the miner's own card at 777x the room median, the network's milestone at 66x), Helium, Chia, Ethereum 2017 and Kaspa 2022 compared, the first month on Igneum per tier (an 8 GB card: a block in 1.6 h at 100 GH/s, never the vote line at 1 TH/s), the 30-day weight as the status ladder, the launch gates, the surfaces table, what not to build
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:15:30 +00:00
igneum-labs
83069944e2 Mission lane 4, invent: proof of following, serving, propagation and state availability judged against class v5 (the 108 ms answer kills every challenge scheme), the in-protocol pool priced (FruitChains shape, 14.6 GB a day at 10,000 miners), heat mode, the 786 B offline finality QR, the self-generated candidates, four persona verdicts, the honest answer
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:08:01 +00:00
igneum-labs
79f3096219 Mission lane 3, the far future 2030 to 2036: HBM4 and the end of GDDR, the chip maker's break-even by node and market cap, the rental deflation curve against the 51 percent table, heat and grid rules by region, zk proving cost to 2036, phone light clients, post-quantum votes at 8,192 voters, regulation of a coin with no issuer, the three-scenario table
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:08:01 +00:00
igneum-labs
f3df738a35 Mission lane 1, the past: every GPU-mined chain since 2011 (31 rows), what each promised and paid, the earnings-curve shape (income halves 60 to 120 days after peak, under USD 0.10 per kWh in 6 to 18 months, 50 to 100 percent of hash gone in 90 days), the three wants and three hates from the archives, the lessons mapped to the design
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:08:01 +00:00
igneum-labs
25a1a310e9 Merge site-ui-3: light-theme wallet captures, the miner light showcase
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:07:55 +00:00
igneum-labs
6785f71a93 site: light-theme wallet captures (0.1.5, rendered from the wallet's mock), the miner showcase frame differs from the hero in light
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:07:53 +00:00
igneum-labs
d845af5d1d fin-proof: fin-synth takes a DAA base when the fixture carries none
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:06:59 +00:00
igneum-labs
53e0927801 fin-proof: guests re-pinned with the finality fold (aggregator 767,424 bytes, id 0x12bff5be); build-remote --measure forwards the box's measure hold
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:04:18 +00:00
igneum-labs
107090dba9 Merge site-ui-3: the site redesign (simple nav, miner, app, live devnet, one design system), X36, the Discord vanity
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:01:06 +00:00
igneum-labs
583eeea437 site: light-theme app captures, the X9 withdrawal correction (ledger X36), the Discord vanity link
Light theme shows light screenshots on the miner and app pages (the
0.3.16 renders from the RTX 5090 Windows rig's live state, the 390 px
pair included). The X9 never shipped: pre-orders 26 December 2025,
withdrawn mid-May 2026 before any unit shipped, no benchmark; every
public sentence that had it shipping now says so, with k about 0.33
labelled as the claimed, unmeasured core; ledger X36, notes on X34, X35,
M34 and C2. Every public Discord link is https://discord.gg/igneum.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:01:03 +00:00
igneum-labs
d3fc1ba159 fin-proof: the inclusive two-thirds test over a divisible window; the switch in the fast-time file
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 08:00:19 +00:00
igneum-labs
de5ff2357f fin-proof: a reveal rides with a key's first block in the table; a failed fold restores the ring
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:59:23 +00:00
igneum-labs
38da44d15f fin-proof: history_first is the attestation's start, never restamped at a proof-chain root (chain_len marks the root)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:58:32 +00:00
igneum-labs
df097420d9 fin-proof: certificates are checked against the history before the block (witnesses are built before the fold)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:57:14 +00:00
igneum-labs
98bb67389f fin-proof: fin-synth and fin-execute host modes (the cycle-count measurement), prepare stamps the root as the guest does
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:56:07 +00:00
igneum-labs
b2f9434513 fin-proof: host depends on the fin crate; finproof.js, the browser half of final-at; design page refined after the build
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:52:55 +00:00
igneum-labs
6e8335d9b9 site: no paragraph above the fold on /live; the v5 capture set (every page, 1440 and 390, dark and light, fold and full)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:51:42 +00:00
igneum-labs
a289e675da fin-proof: edition fixes in the fin crate
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:48:52 +00:00
igneum-labs
a83fdba796 fin-proof: igneum-fin-core (the carried table, ring, history, certificate step), the fold in the aggregator, host --fin and final-at
The W2 table folded one chain block at a time with the ring witnessed and
the key table inline; the certificate verified against the table the proof
committed at its own checkpoint; the frozen table never expiring in the
proof; the harness tests with real BLS keys, the known-failed case first.
The evm-types path dependency now names vendor/igneum-node (this lane's
clone of release-0.3.18-node). Work in progress: not yet built.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:45:49 +00:00
igneum-labs
7e44748295 site: the simple nav, the miner and app pages, the live devnet redrawn, one design system for every page (not deployed)
Nav sitewide: Litepaper, Miner, App, Wallet, Live devnet, Ledger and the
Download button; the rest in the sheet and the footer. /miner is the
product page for the installers: the shipped app in its frame, the card
picker with the live time to a block, the downloads with sizes, HiveOS,
the fee in full view, three real shots. /app is new: the Igneum Ember app
page by page (Overview, Cards with Ember, the chain drawn live by the
module the app ships, Earnings, Prove, Settings, phone width, what keeps
it mining), light and dark, every shot a real capture or a render from
the RTX 5090 Windows rig's live state with the hostname painted out.
/live is redrawn to show the system working: the step scene, six live
cells, finality in plain words, miner lanes, provers paid, recent blocks
landing, the light client in one line, the DAG below. site.css carries
the shared product components (frames, download list, lines, your-card
line, phone download bar); yourcard.js reads the network rate. The
ledger and wallet pages no longer overflow at 390 px.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:44:15 +00:00
igneum-labs
c7149bdd6a Ledger decisions: the project lead approves the emission schedule, the signing bonus, the ladder, the cryptanalysis engagement and the testnet genesis re-cut (7 October 2026, 09:3x UK)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:36:12 +00:00
igneum-labs
02d7f5ab81 Observer sync follows GitHub: the deploy-key probe captured before grep (ssh -T exits 1 under pipefail); plan 5c done
the project lead added the read-only deploy key on 7 October 2026 (SHA256:51ice3W8...). The sync still said 'mirror' because ssh -T to GitHub
exits 1 after its greeting and observer-sync.sh runs under pipefail, so su ... | grep -q reported failure although grep had
matched (the same line by hand, without pipefail, said authenticated; shown under the unit's environment with systemd-run -v).
The probe's output is captured first. First github pass 07:30:54 UTC: the clone moved from the mirror's d79f4a6 to origin/master
8b878ba4, the observer restarted on it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:31:42 +00:00
igneum-labs
b0c4d5d222 fin-proof: design page, finality carried inside the segment proof
The weight table of spec 03 W2 as a commitment inside the recursive
segment proof, updated once per segment, the certificate verified in the
guest against the table the proof carries, the light client that needs no
node for the voter set, the never-expiring frozen table and why, the
colouring levels, the costs to measure.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:27:46 +00:00
igneum-labs
8b878ba43c Merge site-ui-3: the one-screen home page is back
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:14:26 +00:00
igneum-labs
fc77e88683 site: the one-screen home page is back (84b349e), with the wording that landed since
The owner's word this morning: the 56 px header, the eleven-word
statement, two buttons, the step scene full bleed, three facts, the
downloads and one line to the ledger. Kept from the nights since: the
X31 testnet sentence, the X35 chip range with k stated, the Discord
line. The RandomX correction (X34), G4, C2 and X8 stand on the
litepaper; the ledger notes and the text check say so. The app showcase
moves to the miner page in the next step.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 07:14:24 +00:00
igneum-labs
3cc5e5c2f0 Hands mover: on 0.3.18 trees the restart read-back takes powEngine and the blockrate object from igneum_getNodeInfo; a stub answer stops the sequence
The shipper's read-back for 0.3.18 (7 October 2026): igneum_getNodeInfo exists again and must answer powEngine igneum-pow (a stub
is a FAIL) with a blockrate object, which the mover prints; a tree before 0.3.18 answers -32601 and the engine is still read from
the binary's igneum-pow source paths. The parser is checked against the three answer shapes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 06:25:12 +00:00
igneum-labs
081f832b01 Hands plan: the 0.3.17 hotfix run log (hands and seed on 5899f603, read-backs, times, the pairs held for 0.3.18)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 05:33:45 +00:00
igneum-labs
fd4785d2bc lib.sh: bs_pin gives an empty pin for a tree without rust-toolchain.toml (a failed sed under pipefail ended the caller silently)
The b3c228fa builds under the 0.3.16 app tree 5d118f58 (no rust-toolchain.toml yet) died right after the pairing line with no
message: sed on the missing file failed, pipefail carried its status into the assignment, set -e ended the script. A guard and a
tolerant pipeline; checked alive against a tree without the file.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 03:44:26 +00:00
igneum-labs
db6475def5 Build tools: whole-body blocks (the edited-while-running class, with its check), the igneum-pow pairing line, move-hand.sh restart with its readbacks
Three classes from the 0.3.17 night. (1) bash reads a script incrementally: tools/build-remote.sh was edited while a four-minute remote
build ran, the running copy continued at shifted bytes and died with a syntax error after the build had succeeded on the box; the
four long-running tools (build-remote, cross-remote, workers-remote, move-hand) now keep their body in one brace block ending in exit,
parsed whole before a line runs; tools/ci/whole-body-check.sh (in the gate, self-test with a block-less copy) holds the shape.
(2) A fork build pairs with the igneum-pow of the igneum worktree it sits in: a fork at 12153428 under a master worktree failed in
kaspa-pow four minutes in (no chain_program_shadow; master's igneum-pow predates release-0.3.17's); build-remote.sh says the
pairing on its first line ('pairs with igneum 6f8d7a7e (detached): igneum-pow 0.2.0') and the JSONL line carries pairs_with.
The first version of that line used '[ -n ... ] && echo' inside an assignment's $( ) and set -e ended the script on the false
status; fixed. (3) move-hand.sh restart <hand> [--digest <hex>] [--go]: after binary installed a release, restart ONE unit and read
it back (first exec line, commit string in the running binary, digest against the wanted one, igneum_getNodeInfo powEngine over the
node's loopback EVM RPC); the digest readers tolerate a missing line.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 03:12:51 +00:00
igneum-labs
3720c40bce glibc ceilings per artefact class: hive and rig 2.31, seed and linux 2.35, native unchecked; proven in ubuntu:20.04 and 22.04 on the box
Main's order of 7 October 2026 after RunPod's Ubuntu 22.04 canaries (glibc 2.35) refused the box's GLIBC_2.38 binaries and HiveOS
turned out Ubuntu 20.04 based (2.31). The table lives once, in tools/ci/glibc-ceiling-check.sh (--class, --ceiling-of; self-test
covers the table, an unknown class and a 2.34 need against hive); tools/build-remote.sh --ship hive|rig|seed|linux (default seed)
and tools/workers-remote.sh --class (default rig) build with zig at the class's glibc and check against it. provision.sh installs
docker.io (user build in the docker group) for the proof. Proof: fork 3bfe346f at class hive, igneumd and igneum-miner need
GLIBC_2.30; the workers at class rig need GLIBC_2.17; all four run in ubuntu:20.04 (ldd 2.31) and ubuntu:22.04 (ldd 2.35) and
print their version or usage lines (the OpenCL worker its own no-libOpenCL message, the binary running in a GPU-less container).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 00:35:18 +00:00
igneum-labs
01aa9fae83 Deploy key: the plan's section 5c (the project lead's four steps and the public half) that 9215d624 named but did not carry; observer-sync.sh runs git as build
The previous commit's plan edit aborted on a changed anchor, so section 5c was missing; written now with the public half
(ssh-ed25519 ... igneum-build-1 observer read-only) and the CI-runner row closed. observer-sync.sh ran git rev-parse as root
against the build-owned clone (safe.directory refused it, 'up to date at' with no commit); every git call runs as build now.
Verified on the box: one sync pass prints 'source: mirror (the deploy key is not accepted by GitHub yet ...)' and the commit.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 23:49:20 +00:00
igneum-labs
9215d624d2 Observer clone: a read-only deploy key made on the box, GitHub preferred over the mirror once accepted; the project lead's steps in the plan
Main's order of 7 October 2026. install-hands.sh creates /srv/observer/.ssh/deploy_igneum (ed25519, user build, mode 600; the private
half never leaves the box and nothing prints it) and the ssh alias github-igneum-observer; observer-sync.sh tests the key with
ssh -T on every pass, pulls from GitHub when it is accepted and from the mirror otherwise, saying which. docs/plans/build-server.md
5c: the four steps for the project lead (print the public half, Settings > Deploy keys > Add, read-only, start one sync pass) and the public
half itself. Verified on the box: key created, alias written, one sync pass reads 'source: mirror (the deploy key is not accepted by
GitHub yet)'. The CI-runner row is closed (the box-work agent's runner service).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 23:47:10 +00:00