Skip to content

Add live pool dashboard - #5

Open
ZL1LAC wants to merge 4 commits into
duino-coin:mainfrom
ZL1LAC:feature/dashboard
Open

Add live pool dashboard#5
ZL1LAC wants to merge 4 commits into
duino-coin:mainfrom
ZL1LAC:feature/dashboard

Conversation

@ZL1LAC

@ZL1LAC ZL1LAC commented Jul 3, 2026

Copy link
Copy Markdown

Summary

  • Finish the unreleased web dashboard (previously stub /ping only)
  • Serve live stats from in-memory mining.stats + poolStats
  • Add /statistics, /workers (search/sort), /rewards endpoints
  • Ignore runtime dashboard/rewards*.json and dashboard/workers_*.json sync files

Frontend redesign (latest push)

  • No CDN dependencies — Bulma, Font Awesome and the Chart.js CDN are gone; Chart.js 4.4.1 is vendored under dashboard/static/vendor/ so the dashboard works fully offline on the LAN
  • Dark/light theme with a colorblind-validated palette; toggle persisted in localStorage
  • Stat tiles: hero hashrate, connections, workers, users, accept rate (with share totals), CPU, RAM; uptime and mining port in the header; live status dot
  • Charts: hashrate, connections & workers, CPU & RAM — crosshair tooltips, plus a 30 min / 1 hour / all history range filter
  • Top-miners leaderboard: top 10 users by aggregate hashrate with rig count, accept rate and pending DUCO from /rewards; clicking a user filters the workers table
  • Workers table: search and sort run client-side from a single /workers fetch (no refetch per keystroke); rendering capped at 400 rows with a refine-search hint; usernames inserted via textContent

Test plan

  • Set dashboard_port in config/config.json (default 6030)
  • Run node src/index and open http://localhost:6030
  • Confirm stats update and charts populate after syncs
  • Toggle the theme; confirm charts re-render and the choice persists on reload
  • Switch the history range between 30 min / 1 hour / all
  • Click a leaderboard user; confirm the workers table filters to them
  • Search/sort the workers table
  • Load the page with no internet access; confirm all assets serve locally
  • Confirm mining on pool port is unaffected

🤖 Generated with Claude Code

Dark_Hunter and others added 4 commits July 4, 2026 06:07
Finish the unreleased web dashboard: serve live stats from in-memory
mining state, add history charts, searchable worker table, and ignore
runtime rewards sync files.
Save history to disk with configurable retention, add CPU/RAM/workers
charts, tooltips, time-range label, and GET /history export.
Replace on()/removeListener() with once() in receiveData() to avoid
accumulating listener references across share submissions, add a
receive timeout, and wrap the mining loop in try/catch so a dropped
connection ends the session cleanly instead of crashing the process.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Drop Bulma, Font Awesome and the Chart.js CDN; vendor Chart.js 4.4.1
  locally so the dashboard works offline on the LAN
- Custom dark/light theme with a CVD-validated palette and a toggle
  persisted in localStorage
- Hero hashrate tile plus connections, workers, users, accept rate,
  CPU and RAM tiles; uptime and port in the header
- Three charts (hashrate, connections & workers, CPU & RAM) with
  crosshair tooltips and a 30m / 1h / all history range filter
- Top-miners leaderboard aggregated per user with pending DUCO from
  /rewards; clicking a user filters the workers table
- Search and sort the workers table client-side from a single
  /workers fetch, capped at 400 rendered rows

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant