diff --git a/docs/plans/site-ui-3-shots/after/live-1440-dark.jpg b/docs/plans/site-ui-3-shots/after/live-1440-dark.jpg index acedcab66..04d70c109 100644 Binary files a/docs/plans/site-ui-3-shots/after/live-1440-dark.jpg and b/docs/plans/site-ui-3-shots/after/live-1440-dark.jpg differ diff --git a/docs/plans/site-ui-3-shots/after/live-390-dark.jpg b/docs/plans/site-ui-3-shots/after/live-390-dark.jpg index 8497655ed..f12f8e83c 100644 Binary files a/docs/plans/site-ui-3-shots/after/live-390-dark.jpg and b/docs/plans/site-ui-3-shots/after/live-390-dark.jpg differ diff --git a/site/live.html b/site/live.html index 7de59505b..586a6630e 100644 --- a/site/live.html +++ b/site/live.html @@ -89,6 +89,7 @@ h1,h2,h3{font-family:var(--f-display);margin:0;line-height:1.08;text-wrap:balanc .legend .lk{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ash);min-width:64px} .legend span.txt{white-space:normal;display:inline;color:var(--ash)} .two{display:grid;gap:var(--gap);grid-template-columns:1fr;margin-top:var(--gap)} +@media (min-width:900px){.two{grid-template-columns:1fr 1fr}} @media (min-width:900px){.two{grid-template-columns:1.1fr .9fr}} td.n{font-variant-numeric:tabular-nums;text-align:right}th.n{text-align:right} .id{font-family:var(--f-mono);color:var(--molten)} @@ -96,6 +97,12 @@ td.n{font-variant-numeric:tabular-nums;text-align:right}th.n{text-align:right} .bar i{display:block;height:100%;background:var(--ember)} .feed{display:flex;flex-direction:column;margin-top:12px;font-family:var(--f-mono);font-size:13px;color:var(--ink-2)} .feed div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:9px 0;align-items:baseline} +.feed div>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0} +.lanes{display:flex;flex-direction:column;margin-top:12px} +.lane{display:grid;grid-template-columns:84px minmax(0,1fr) 72px 64px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-family:var(--f-mono);font-size:13px;color:var(--ink-2)} +.lane:last-child{border-bottom:0} +.lane .n{text-align:right;white-space:nowrap}.lane .t{color:var(--ash);font-size:12px;text-align:right;white-space:nowrap} +@media (max-width:480px){.lane{grid-template-columns:76px minmax(0,1fr) 60px}.lane .t{display:none}} .feed div:last-child{border-bottom:0} .feed .t{color:var(--ash);flex:0 0 auto;font-size:12px} .feed .k{color:var(--molten)} @@ -190,18 +197,14 @@ main{padding-bottom:var(--sec)}
-

Miners

last 10 min
-
- - - -
MinerBlocksShareLast seenEngine
No blocks in the last 10 minutes.
-
-

The short id is the first 8 hex characters of the vote key hash in each header. The engine is what the miner writes into the coinbase; the devnet miner writes nothing yet.

+

Miners

last 10 min
+
No blocks in the last 10 minutes.
+

Every vote key with a block in the last 10 minutes; a card runs several. The short id is the first 8 hex characters of the vote key hash in each header.

-

Events

newest first
+

Events

the last five
No events yet.
+

Checkpoint locks, miners going quiet and coming back, provers seen, as the observer records them.

@@ -337,9 +340,15 @@ main{padding-bottom:var(--sec)} var hr=hashrate(s.hashes_per_second_estimate).split(' ');$('st-hps').innerHTML=hr.length>1?esc(hr[0])+''+esc(hr[1])+'':esc(hr[0]); $('st-miners').textContent=s.miners_10m;$('st-peers').textContent=s.peers===null?'0':s.peers;$('st-mempool').textContent='mempool '+(s.mempool||0); var now=new Date(d.now).getTime(); - if(d.miners.length){minersEl.innerHTML=d.miners.map(function(m){return ''+esc(m.id)+''+m.blocks+'
'+m.share+'%
'+rel(now-new Date(m.last_seen).getTime())+''+(m.engine?esc(m.engine):'not reported')+'';}).join('');} - else minersEl.innerHTML='No blocks in the last 10 minutes.'; - if(d.events.length){eventsEl.innerHTML=d.events.map(function(e){return '
'+esc(e.kind)+' '+esc(e.text)+''+rel(now-new Date(e.ts).getTime())+'
';}).join('');} + // miners: one compact strip, the top five lanes by blocks with a bar each, the rest as a count (the full table is the bench page's job) + if(d.miners.length){var top=d.miners.slice(0,5),max=Math.max(1,top[0].blocks),rest=d.miners.length-top.length; + $('miners-count').textContent=d.miners.length+' vote keys in 10 min'; + minersEl.innerHTML=top.map(function(m){return '
'+esc(m.id)+'
'+m.blocks+' blocks'+esc(rel(now-new Date(m.last_seen.replace(' ','T')).getTime()))+'
';}).join(''); + $('miners-more').innerHTML=(rest>0?'and '+rest+' more. ':'')+'Every vote key with a block in the last 10 minutes; a card runs several. The GPU bench table has the measured rates per card.';} + else{minersEl.innerHTML='
No blocks in the last 10 minutes.
';$('miners-count').textContent='last 10 min';} + // events: the last five, one line each + if(d.events.length){var ev5=d.events.slice(0,5);eventsEl.innerHTML=ev5.map(function(e){return '
'+esc(e.kind.replace(/_/g,' '))+' '+esc(e.text)+''+rel(now-new Date(e.ts).getTime())+'
';}).join(''); + $('events-more').textContent=(d.events.length>5?(d.events.length-5)+' more in the observer\'s last 30. ':'')+'Checkpoint locks, miners going quiet and coming back, provers seen, as the observer records them.';} else eventsEl.innerHTML='
No events yet.
'; spark(s.blocks_per_minute); lastD=d;sceneCounters(d);if(dag)dag.push(d);