diff --git a/docs/plans/site-ui-5-shots/live__1440-dark.png b/docs/plans/site-ui-5-shots/live__1440-dark.png index 95589a68..616233b7 100644 Binary files a/docs/plans/site-ui-5-shots/live__1440-dark.png and b/docs/plans/site-ui-5-shots/live__1440-dark.png differ diff --git a/docs/plans/site-ui-5-shots/live__1440-light.png b/docs/plans/site-ui-5-shots/live__1440-light.png index a6824336..a9c10c9c 100644 Binary files a/docs/plans/site-ui-5-shots/live__1440-light.png and b/docs/plans/site-ui-5-shots/live__1440-light.png differ diff --git a/docs/plans/site-ui-5-shots/live__390-dark.png b/docs/plans/site-ui-5-shots/live__390-dark.png index 86e6c131..525acd02 100644 Binary files a/docs/plans/site-ui-5-shots/live__390-dark.png and b/docs/plans/site-ui-5-shots/live__390-dark.png differ diff --git a/docs/plans/site-ui-5-shots/live__390-light.png b/docs/plans/site-ui-5-shots/live__390-light.png index 05d417a7..c44435d4 100644 Binary files a/docs/plans/site-ui-5-shots/live__390-light.png and b/docs/plans/site-ui-5-shots/live__390-light.png differ diff --git a/site/journey.html b/site/journey.html index a53ff98d..e61a0c21 100644 --- a/site/journey.html +++ b/site/journey.html @@ -254,14 +254,14 @@
log

Live devnet: real transactions, the first non-empty shard proven and…

Live devnet: real transactions, the first non-empty shard proven and paid, and the exporter's block structure fixed

log

The program id split

The program id split: why the Apple M5 Max rejected the RTX 5090 Windows rig's proofs, and the verifier at 114 s

log

Live devnet: the first shards proven, verified and paid

-
log

Economy simulation: mining versus proving under stress

Sim/economy: mining versus proving under stress, agent-based

-
log

Difficulty rule attacked seven ways

Difficulty rule under attack: pool hopping, pulsed rental, timestamp stretching, short-lane oscillation, epoch games, polluted window, block flood

-
log

Timestamp attack on the difficulty rule fixed

Difficulty rule: timestamp attack fixed , simulator regression, 3-node forger test

-
log

Devnet v4: nine branches merged into one node

Devnet-v4 integration: nine branches merged, 3-node test network on the merged node, Windows cross-build

-
log

Generator v2 adopted: every hash does 128 distinct reads

Generator version 2 adopted: exact load count, fresh-source loads, program acceptance; every vector re-cut, three workers re-checked, 20,000-program census, devnet-v4 binaries rebuilt

-
log

First GPU proof of an Igneum block: 1.4 s on an RTX 5090

Proving v0 on the RTX 5090: first GPU proof of an Igneum block

-
log

Devnet v4 live: generator v2, two-thirds floor, fresh chain

Devnet v4 cut-over: generator v2, 2/3 floor, three nodes and a seed on a fresh chain

-
log

First live hourly swap: no pause on Mac, NVIDIA or AMD

First hourly program swap on the live devnet: compile-ahead, no pause, two cards

+
log

One-click Windows workers

One-click Windows workers: what the Apple M5 Max could measure

+
log

Proving: devnet v4 shards on the Apple M5 Max CPU, loaded machine

+
log

First live finality lock: 77.4% of weight, 17 voters

First finality lock on the live devnet: checkpoint 242 at 77.4% of all weight, two hours after genesis

+
log

The gfx1036 worker fault and what the Apple M5 Max could and could…

The gfx1036 worker fault and what the Apple M5 Max could and could not reproduce

+
log

A node 60 s behind the clock is silently dead

+
log

First machine on the one-click app: a 5090 at 118 MH/s

First machine on the Igneum Miner app: the RTX 5090 Windows rig's RTX 5090 at 118 MH/s, via Setup.exe

+
log

Difficulty rule v2

Difficulty rule v2: the live oscillation, its cause, the DAG replay, the fix behind a height switch

+
log

The observer stored nothing for 78 minutes, then 7,022 blocks in two…

The observer stored nothing for 78 minutes, then 7,022 blocks in two minutes

Every entry is a dated heading of the engineering log, where the commands and the hardware are. The phases and their gates are the litepaper’s roadmap.

The engineering logEvery claim and its statusThe live devnet
diff --git a/site/journey.json b/site/journey.json index dc122fb7..0b30cc1b 100644 --- a/site/journey.json +++ b/site/journey.json @@ -212,43 +212,43 @@ }, { "date": "2026-10-04", - "text": "Sim/economy: mining versus proving under stress, agent-based", - "short": "Economy simulation: mining versus proving under stress" + "text": "One-click Windows workers: what the Apple M5 Max could measure", + "short": "One-click Windows workers" }, { "date": "2026-10-04", - "text": "Difficulty rule under attack: pool hopping, pulsed rental, timestamp stretching, short-lane oscillation, epoch games, polluted window, block flood", - "short": "Difficulty rule attacked seven ways" + "text": "Proving: devnet v4 shards on the Apple M5 Max CPU, loaded machine", + "short": "Proving: devnet v4 shards on the Apple M5 Max CPU, loaded machine" }, { "date": "2026-10-04", - "text": "Difficulty rule: timestamp attack fixed , simulator regression, 3-node forger test", - "short": "Timestamp attack on the difficulty rule fixed" + "text": "First finality lock on the live devnet: checkpoint 242 at 77.4% of all weight, two hours after genesis", + "short": "First live finality lock: 77.4% of weight, 17 voters" }, { "date": "2026-10-04", - "text": "Devnet-v4 integration: nine branches merged, 3-node test network on the merged node, Windows cross-build", - "short": "Devnet v4: nine branches merged into one node" + "text": "The gfx1036 worker fault and what the Apple M5 Max could and could not reproduce", + "short": "The gfx1036 worker fault and what the Apple M5 Max could and could…" }, { "date": "2026-10-04", - "text": "Generator version 2 adopted: exact load count, fresh-source loads, program acceptance; every vector re-cut, three workers re-checked, 20,000-program census, devnet-v4 binaries rebuilt", - "short": "Generator v2 adopted: every hash does 128 distinct reads" + "text": "A node 60 s behind the clock is silently dead", + "short": "A node 60 s behind the clock is silently dead" }, { "date": "2026-10-04", - "text": "Proving v0 on the RTX 5090: first GPU proof of an Igneum block", - "short": "First GPU proof of an Igneum block: 1.4 s on an RTX 5090" + "text": "First machine on the Igneum Miner app: the RTX 5090 Windows rig's RTX 5090 at 118 MH/s, via Setup.exe", + "short": "First machine on the one-click app: a 5090 at 118 MH/s" }, { "date": "2026-10-04", - "text": "Devnet v4 cut-over: generator v2, 2/3 floor, three nodes and a seed on a fresh chain", - "short": "Devnet v4 live: generator v2, two-thirds floor, fresh chain" + "text": "Difficulty rule v2: the live oscillation, its cause, the DAG replay, the fix behind a height switch", + "short": "Difficulty rule v2" }, { "date": "2026-10-04", - "text": "First hourly program swap on the live devnet: compile-ahead, no pause, two cards", - "short": "First live hourly swap: no pause on Mac, NVIDIA or AMD" + "text": "The observer stored nothing for 78 minutes, then 7,022 blocks in two minutes", + "short": "The observer stored nothing for 78 minutes, then 7,022 blocks in two…" } ] } diff --git a/site/live.html b/site/live.html index be846a34..2a335e93 100644 --- a/site/live.html +++ b/site/live.html @@ -92,7 +92,7 @@ @media (max-width:1000px){.gcol{border-right:0;border-bottom:var(--hair)}} .gcol .state{position:absolute;left:25px;top:14px;z-index:3;font-size:10px} .scene{position:relative} -#dag{display:block;width:100%;height:418px;background:var(--row);touch-action:pan-y} +#dag{display:block;width:100%;background:var(--row);touch-action:pan-y} .gtop{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 25px;border-bottom:var(--hair);font:10px/1.7 var(--mono);color:var(--ash)} .gtop .hint{white-space:nowrap} .gtop .lg{display:flex;flex-wrap:wrap;gap:6px 10px;flex:1 1 auto;justify-content:center} @@ -626,10 +626,6 @@ details.tablebar summary{display:flex;align-items:center} function uninspect(){sel=null;$('insp-close').hidden=true;$('i-kind').textContent='select a block';$('i-title').textContent='Select a block';$('i-hash').textContent='Click the graph, or a row of the table below.';$('i-shard-count').textContent='not set';$('i-track').innerHTML='';$('i-shards').innerHTML='
  • No block selected.
  • ';['i-incl','i-miner','i-blue','i-daa','i-parents','i-time','i-cp','i-lock'].forEach(function(id){$(id).textContent='not set';});if(proof)proof.setBlock(null);} $('insp-close').addEventListener('click',function(){if(dag)dag.select(null,'clear');uninspect();}); // the four stats above the graph, from the module's own window - // the scene box fits its lanes: the renderer places lanes at 46 px (40 on phones) under a 58 px top band and over a 38 px axis - // (scene/live-dag.js 2.0.3 layout()); one lane per key in view plus the others lane, capped at the renderer's 7 (4 on phones) - var fitH=0; - function fit(st){var c=$('dag');if(!c||!st)return;var cap=st.narrow?4:7,laneH=st.narrow?40:46,keys=Math.max(2,st.minerKeys||0),lanes=Math.min(cap,keys>cap?cap:keys+(keys>cap?1:0));var h=58+lanes*laneH+38;if(h!==fitH){fitH=h;c.style.height=h+'px';}} function miner(st){if(!dag)return;var cps=dag.getCheckpoints(),cp=cps.length?cps[cps.length-1]:null; $('m-blocks').textContent=fmtN(st.blocks);$('m-win').textContent='last '+st.window+' s';$('m-keys').textContent=st.minerKeys+' miner keys · not a card count';$('lane-caption').textContent=st.minerKeys+' keys'; $('m-mine').textContent=mine?fmtN(st.own):'0';$('m-mine').classList.toggle('dim',!mine);$('m-key').textContent=mine||'not set'; @@ -642,7 +638,7 @@ details.tablebar summary{display:flex;align-items:center} onState:function(st,reason){var el=$('dag-state');el.className='state '+(st==='live'?'live':st==='failed'?'bad':'');el.innerHTML=''+(st==='live'?'live devnet':esc(reason||st));if(proof)proof.setPaused(st!=='live'||dag.getStats().paused);}, onPause:function(p){$('dag-follow').classList.toggle('on',!p);if(proof)proof.setPaused(p||dag.getState().state!=='live');}, onFollow:function(f){$('dag-follow').classList.toggle('on',f);}, - onStats:function(st){miner(st);fit(st);}, + onStats:miner,autoHeight:true, onSelect:function(b,why){if(b){var full=lastD&&(lastD.blocks||[]).filter(function(x){return x.hash===b.hash;})[0];inspect(Object.assign({},b,full?{number:full.number}:{}));}else uninspect();}}); if(window.IgneumProof&&!proof)proof=IgneumProof.mount($('proof')); if(lastD)feed(lastD);}