Commit graph

180 commits

Author SHA1 Message Date
igneum-josh
e68ac6bbdb release-0.3.5 plan: final round from fork 20139145, every suite green, header and digest confirmed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 04:16:14 +01:00
igneum-josh
8e8b739bc0 release-0.3.5 plan: fud-consensus fork results, the scratch run, m20-pruning merged (final-round hashes to follow)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 03:43:56 +01:00
igneum-josh
5695424e6b release-0.3.5 plan: fud-consensus on both repos (fork results to follow)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 03:21:12 +01:00
igneum-josh
7abce72165 Merge origin/fud-consensus into release-0.3.5
bench-log.md: both appended entries kept (the round-4 consensus items and the red team next to the branch's own).
2026-10-05 03:19:41 +01:00
igneum-josh
0420c887e2 Round-4 consensus items: final runs on 977db931 (reorg-final2, the red team's f23 / f24b / f24c), the M31 and un-determination entries, result files
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 03:17:49 +01:00
igneum-josh
6332f7aa92 Ledger F23, F24, G12, X18, M30, M31, F25 to 'Fix built, pending rollout' with the measured runs; bench-log entry for the round-4 consensus items; red team branch merged
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 02:57:24 +01:00
igneum-josh
eee7030321 Merge branch 'fud-memory' into fud-consensus 2026-10-05 02:56:28 +01:00
igneum-josh
afb2ce38d5 Harness s8 steady state and the bench-log paragraph: RSS per 1,000 blocks before and after the M30 fix
s8-steady.mjs: two nodes, one honest vmine miner at 1 block/s, no flood,
RSS and cache-build count every 60 s, vmmap -summary at 0, 500, 1,000 and
1,500 blocks. Both builds ran 1,500 blocks on the 60x profile: before
41 to 1,342 MB by 514 blocks (9 cache builds, five 256 MiB chunks resident:
KEEP 4 plus one evicted chunk the allocator keeps) then flat, 27 builds in
1,529 blocks; after 319 MB at 510 blocks (1 build), 589 at 1,029 (the second
day's cache, by design), 603 at 1,526, 2 builds. Residual 30 MB per 1,000
blocks on both builds, read as the consensus database and caches filling,
not the PoW cache. JSON and vmmap files under
docs/benchmarks/memory-floods-2026-10-04/.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 02:49:46 +01:00
igneum-josh
2ca10df22d Merge branch 'redteam' into fud-consensus
# Conflicts:
#	docs/fud-ledger.md
2026-10-05 02:34:21 +01:00
igneum-josh
815c659b0b fud.mjs: node logs kept per scenario, pre-F24 refusal wording counted, reorg criterion as the rule promises; first-pass and control results kept
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 02:34:04 +01:00
igneum-josh
9a3583461a release-0.3.5 plan: master merged once more
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 02:14:24 +01:00
igneum-josh
5556f7870a release-0.3.5 plan: round-3 binaries from fork 2e75a238 (build-info fix), header igneumd/2.1.0-2e75a238 confirmed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 02:14:05 +01:00
igneum-josh
25d48ef4f2 Merge branch 'fud-memory' into fud-consensus 2026-10-05 02:12:27 +01:00
igneum-josh
f9b186c679 bench-log: M30 floods re-run on the committed fork build 796f758d (second after pass)
s6 +6/+3/+1 MB per load, s7 302 to 318 MB, 0 cache builds, epochs 0 to 3
rolled, 202 blocks accepted; the pass-1 column stays beside it. Result JSON
after-{s6-exhaustion,s7-flood}.json added. The s6 one-instant sink check is
noted as a harness flake.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 02:06:07 +01:00
igneum-josh
33888fb550 release-0.3.5: master 2897e21 and bugfix-collect-exit merged, site rebuilt, plan rows (round-3 hashes to follow)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 02:04:17 +01:00
igneum-josh
2c0bb2f0ac Red team 4 Oct 2026: every attack suite against the 0.3.4 finality-fixes build (rule v3 on, fast time); 30 scenarios, ledger F25 M30 M31 new, F21 F23 F24 measured
Report docs/review/redteam-2026-10-04.md: finality attacks s1-s8 plus 34% withholding, 50/50 long partition, F23 and
F24 custom runs, ordering harness, execution suite and EVM smoke, proving hostile tests and a proof flood, difficulty v2
timestamp forging in the simulator. New fails: the fast-time harnesses corrupt the u64::MAX sentinels of the override
(F25), a block or transaction flood grows the node by hundreds of MB in a minute (M30), the coinbase does not fit the
204-byte limit on mainnet, testnet and simnet parameters (M31). F23 and F24 reproduced on this build; F21's bound
measured at one window of the side's own DAA. Scenario scripts under tools/finality-attacks/redteam/.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 02:03:08 +01:00
igneum-josh
1c338980f1 Merge remote-tracking branch 'origin/master' into release-0.3.5 2026-10-05 02:02:23 +01:00
igneum-josh
5a7ec15265 Harness: port and data-dir overrides, per-load RSS deltas, cache-build counts; bench-log entry for ledger M30
tools/harness: IGNEUM_HARNESS_BASE_PORT and IGNEUM_HARNESS_TMP move the test
network's ports and data directory so two agents can run it at once; the u64
sentinel round-trip in overrideParams is fixed with the BigInt reviver from
tools/finality-attacks (ledger F25); s6 records rss_start, rss_delta and
cache_builds per load and reports per-load growth (the old row subtracted one
baseline taken before all three loads, which is how the mempool flood was
read as +270 MB); s7 counts "PoW cache built" lines beside every RSS sample;
--live-only skips the s7 simulator part.

docs/bench-log.md: the 4 October 2026 (night) entry: the floods' growth was
one 256 MiB PoW cache per epoch roll (the engine kept a cache per (epoch,
day) pair, KEEP 4), measured before and after the fork fix (fork branch
fud-memory, 796f758d): submit load +263/+257 MB with 1/1 builds before,
+9/+2 MB with 0/0 after; block flood 302 to 1,085 MB with 3/3 builds before,
300 to 315 MB with 0/0 after. Result JSON under
docs/benchmarks/memory-floods-2026-10-04/.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 01:38:33 +01:00
igneum-josh
2897e21474 bugs.md: the stopped detector's second live firing (a plain quit)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 01:18:05 +01:00
igneum-josh
f48d317397 Round-4 consensus items: the fud.mjs runner (digest, ban, reorg scenarios on the fast-time 3-node network, ports 29400+), per-node override files and --equivocate-at in the harness, spec 02 section 2.8, spec 03 C1/C4/3.6 and the 3.10 rows, spec 08 section 8.7
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 00:53:35 +01:00
igneum-josh
7e453f00e6 release-0.3.5 plan: final binaries from fork 6ef230d5 with hashes, every test result
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 00:29:59 +01:00
igneum-josh
bd578668ce release-0.3.5 plan: the second dev-fee merge
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 00:17:07 +01:00
igneum-josh
1b287d49ca Merge origin/dev-fee (293fc0b) into release-0.3.5
bench-log.md: both appended entries kept; the generated site pages rebuilt with node site/build.mjs.
2026-10-05 00:16:45 +01:00
igneum-josh
161e48c953 Dev fee: the test-network measurement in the bench log; run.mjs waits for the nodes and edits the override as text
9 fee blocks in the 785 blocks of the two fee-paying miners (1.15%, expected 1 in 100 templates), the miners' fee
counters equal the chain's count on both nodes, the control miner at --dev-fee 0 paid nothing.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 00:15:27 +01:00
igneum-josh
448d537be2 release-0.3.5 plan: dev-fee and miner-reliability merged on both repos, fork branch and build table (hashes of the final round to follow)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 00:04:03 +01:00
igneum-josh
f7d2af7ac6 Merge origin/miner-reliability into release-0.3.5
Conflicts resolved keeping both: engine.rs carries the sweep state (miner-eff) and the node watchdog (reliability);
the STATUS line goes through watchdog::parse_status and still feeds the sweep's rate sample; main.rs declares both
modules; bench-log.md keeps both entries. site/build.mjs keeps master's partial-injected pages and adds the /miners
bench table through the same page() with active: 'miners'; the Miners link is in site/partials/nav.html; sitemap
gains /miners; every generated page rebuilt with node site/build.mjs.
2026-10-04 23:25:10 +01:00
igneum-josh
6607fb3fec Reliability measured: miner guards and the app watchdog on private test networks; M26, M27, X21 fixed in the ledger
docs/bench-log.md: the fake-worker measurements (slow start one trip and 2.0 s restart, fake-fast guard in under
0.1 s, exit 43 at 8.8 s, CPU re-check stop at 0.5 s, stall guard at 60.1 s with STATUS lines through the silence,
one prepare per epoch with refused retries held; app: zero-rate restart at 79.6 s and faulted at 75.4 s on the
repeat, no-status restart at 90.4 s, silent node restarted at 150.7 s and synced 7.2 s later; no double restart on
the miner's own worker restart). Two defects the harness found are named with their fork commits.
docs/fud-ledger.md and the round-4 review table: M26, M27, X21 Fixed with the commits.
engine.rs: the miner's restart note no longer hides the fault reason on the card.
tools/reliability: the harness matches the miner's stderr lines where they are printed there.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 23:22:16 +01:00
igneum-josh
5672a28e9f Merge remote-tracking branch 'origin/master' into release-0.3.5 2026-10-04 22:50:27 +01:00
igneum-josh
49f95de55e Merge origin/dev-fee into release-0.3.5
Conflicts resolved keeping both: Settings and SettingsState carry the sweep fields (miner-eff) and dev_fee /
fee_total (dev-fee); the engine's settings snapshot sets both and the DevFeeState line stays.
2026-10-04 22:48:04 +01:00
igneum-josh
e22068f72c bugs.md: the collect-exit branch rebased and fully tested
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:47:22 +01:00
igneum-josh
6b4ec59648 Miner dev fee: app switch and UI line, HiveOS package, Linux worker cross-build, docs and public text
Decision of 4 October 2026 (evening): the Igneum Miner software takes a visible, switchable 1% dev fee, the norm
for GPU miners; the protocol stays fee-free. The miner side (--dev-fee, the 1-in-100 template counter, the audit
command) is on branch dev-fee of the node fork.

- app: settings.dev_fee (default on) passes --dev-fee 0 to igneum-miner when off; Settings shows the miner's own
  "dev fee 1% (1 block in 100) to 0x..." line next to the rewards address with a switch; the engine parses the
  miner's start line and its dev-fee block lines (fee_session, lifetime fee_total, an event per fee block)
- packaging/hive: h-manifest.conf, h-config.sh, h-run.sh, h-stats.sh, make-hive-package.sh (igneum-hive-<v>.tar.gz
  with the Linux igneumd, igneum-miner and both GPU workers), README with the Flight Sheet, selftest.sh (bash -n,
  stub binaries, the three hooks the way Hive runs them, the stats JSON parsed). Hive itself is untested
- infra/cross/build-workers-linux.sh: the NVRTC and OpenCL workers cross-compiled for Linux with zig;
  proto-opencl/cl_dynamic.h gains the Linux dlopen branch (libOpenCL.so.1)
- tools/dev-fee/run.mjs: the fee-block test network (two nodes on 29900+, three CPU miners, payouts audit)
- docs/design/miner-dev-fee.md (mechanism, flag, lines, the DEV_FEE_ADDRESS placeholder and the devnet address),
  docs/fud-ledger.md E18 and the E5/L9 status line, litepaper "What a miner's hour looks like" paragraph, homepage
  miner section note

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:46:41 +01:00
igneum-josh
984288a946 release-0.3.5 plan: master c257444 merged (bugs.md only)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:38:40 +01:00
igneum-josh
ce746269ce Merge remote-tracking branch 'origin/master' into release-0.3.5 2026-10-04 22:38:26 +01:00
igneum-josh
0a90630c65 docs/plans/release-0.3.5.md: the overnight merge, tests, the morning cut and the Windows hand installs
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:37:48 +01:00
igneum-josh
c257444c04 bugs.md: the memo row's evidence corrected (PC 2's case), the misleading approval wording on Windows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:36:53 +01:00
igneum-josh
cc71ed6aa1 Merge remote-tracking branch 'origin/master' into release-0.3.5 2026-10-04 22:35:05 +01:00
igneum-josh
7eb83fff6e Merge origin/build-job into release-0.3.5
Conflict resolved: publish-jobs.sh keeps master's verify command and --tries (the retrying live check) alongside the
build kind's arguments; the usage range covers the merged header.
2026-10-04 22:32:48 +01:00
igneum-josh
98726f02ba Merge origin/miner-perf into release-0.3.5
Conflicts resolved: state.rs keeps both the sweep fields (miner-eff) and the race fields (miner-perf); bench-log.md
keeps both appended entries; publish-manifest.sh keeps master's --override implementation (b84644c, the "every
height switch" rule, --verify-only, --tries, the retrying live check) and adds miner-perf's --tuning / --no-tuning
with the carry-over of consensus.override and tuning from the current manifest. One --override case, one parser.
2026-10-04 22:31:26 +01:00
igneum-josh
b7c3ebb343 bugs.md: the OTA memo row
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:29:19 +01:00
igneum-josh
fcadcc5283 Merge remote-tracking branch 'origin/miner-eff' into release-0.3.5 2026-10-04 22:25:44 +01:00
igneum-josh
0d123b3075 OTA (Windows): start the update helper with CREATE_NO_WINDOW only; DETACHED_PROCESS killed PowerShell before the script ran
The first Windows update over the air (0.3.3 to 0.3.4) sat on 'the installer is starting' with no helper log on
PC 2. The helper launched by a remote job with the same arguments ran at once. Fix in 0.3.5; the Windows machines
take 0.3.5 by hand once more.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:22:31 +01:00
igneum-josh
17b5644f4e bugs.md: Sam's Mac incident closed with the helper evidence
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:13:52 +01:00
igneum-josh
e9f8847df5 Bench log: the fairness re-check of the variant race (jobs 0.17 to 2.8 s during a race, 36 s before)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:12:40 +01:00
igneum-josh
5c6e5b5f52 bugs.md: build-info worktree commit fix (fork branch), node provenance and observer EVM leads
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 22:12:29 +01:00
igneum-josh
ebce665094 Merge branch 'master' of https://github.com/igneum-network/igneum 2026-10-04 21:59:33 +01:00
igneum-josh
c0f246dbff Site: polish merged (one header and footer from partials, litepaper router, self-hosted fonts, 404, cache headers); light client derives the vote key hash when the feed omits it
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:59:28 +01:00
igneum-josh
35abe6d482 bugs.md: Sam's Mac 0.3.4 incident (open), the helper's getcwd warning, the 0.3.3 plist
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:58:21 +01:00
igneum-josh
b0e5f3bf59 Site polish: one header and footer from partials on every page, litepaper section router fixed, self-hosted fonts, 404 page, live page idle cost
Header: site/partials/nav.html, head.html, footer.html, injected by site/build.mjs between markers in every page (the bench template too) with the active link marked; the master mark in its black square, the wordmark, Litepaper, Live devnet, Engineering log, Evidence, GitHub and the miner button, in that order everywhere; one menu script (closes on a link, a tap outside, Escape with focus back on the button, a resize past 900 px); a skip link; one focus ring and one reduced-motion rule.

Litepaper: the hash routed by a click delegate and popstate instead of the browser's fragment jump. Root cause of the tabs fault: show() scrolled to the top of the article, never to the section; in whole-paper mode the fragment jump landed on the section and the smooth scroll then dragged the reader back to the Abstract; in one-section mode a deep link scrolled while the section was still display:none and landed on the cover. Now: every section and all 29 subsection headings reachable by URL in both modes, scroll-margin from the measured bar height (nav, plus the contents row on a phone), focus moved to the heading, a re-aim after a late font batch, mode buttons stacked in the sidebar.

Pages: homepage headline capped at 9cqw so it is two lines at 390 and 1440 (was four with "fire." alone), journey inlined by the build (no fetch, no shift), dates as "4 Oct 2026"; live page legend no longer forces 420 px of width at 390, the hash-rate unit as small mono, idle redraw at 30/s with a 1.5x backing store (0.7 to 1.2% of one core idle in Chrome for Testing, taken under load), the proving line wraps on a phone; evidence sort headings are buttons, chips carry aria-pressed, a scroll hint under 1,140 px; bench contents in a sticky scroll box, og.png?v=3; 404.html; sitemap with /evidence; vercel.json caches fonts a year and images a day.

Fonts: eight latin woff2 files in site/fonts (139 KB for all, 118 KB a typical page), preloaded first-paint faces, fallback faces with size-adjust and ascent overrides from the font tables; every page lost its render-blocking fonts.googleapis.com stylesheet and the gstatic origin.

HTML per page before to after (gzip): / 17,265 to 21,810 B; /litepaper 20,556 to 24,957; /live 15,640 to 17,777; /evidence 18,899 to 22,493; /bench 94,723 to 98,289. Third-party requests before to after: 3 to 1 (jsdelivr, light client), 1 to 0, 3 to 0, 1 to 0, 1 to 0. Lighthouse before and after is queued under the measure lock (held by reliability runs since 19:16Z, load average 258) and recorded in docs/design/site-polish-2026-10-04.md when it runs.

Checks: node site/build.mjs, tools/ci/link-check.mjs (246 links, 0 broken), identity grep, and a Chrome for Testing run over every page at 390, 768 and 1440 (no overflow, no console errors, menu, router in both modes, deep links on reload, keyboard).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:57:20 +01:00
igneum-josh
a86383f936 bugs.md: the stopped detector fired live on Sam's Mac's update quit
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:48:52 +01:00
igneum-josh
da8b471c46 Console: every update line the app logs sets the OTA state, newest wins (the Mac's card said '0.3.3 is current' with 0.3.4 staged); test
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 21:46:17 +01:00