block / block/proto-fleet

Fleet-native single-miner view (stop proxying to miner APIs)

Open
#826 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
55
Forks
16
Avg merge
1d 22h
Merged PRs (30d)
87

Description

## Goal

Render the single-miner view from **fleet-collected data** instead of proxying `/api/v1/*` to the live miner (`server/internal/handlers/minerproxy`). Enables retiring ProtoOS-on-miner, folding ProtoOS into ProtoFleet, and rendering a single-miner view for any miner regardless of OS/firmware.

## Locked assumptions (discovery)

1. ProtoOS-on-miner goes away (a simpler on-device status page is a separate effort).
2. Fold ProtoOS into ProtoFleet — one client app, not a proxied embed.
3. Target full parity with today's ProtoOS view; acceptable to reduce data granularity/freshness to what fleet can reasonably support.

## Findings

Full research + API parity map: `docs/plans/2026-07-28-single-miner-views-on-fleet-backend-plan.md`.

- ~18 of 24 ProtoOS API domains already have a fleet analog (rebind) or need only a small proto extend.
- The real backend work is concentrated in **per-component telemetry + inventory**: current & historical per-hashboard/ASIC/PSU metrics, the ASIC detail/heatmap screen, and full hardware inventory.
- Root cause: the telemetry collector builds the full per-hashboard/ASIC/PSU/fan model in memory every poll, but `telemetry_store.go` persists **only device-level scalars** — the component arrays are discarded. Fleet also polls every ~10 min vs ProtoOS's ~15s.

## Proposed phases

1. Fleet-native read view for data that already exists (device-level metrics, status, placement, read-only pools/cooling).
2. Wire control through `MinerCommandService` (reboot, start/stop, cooling, power target, pools, firmware, LED, logs).
3. Persist per-component telemetry + inventory; add read RPCs; render ASIC/hashboard detail.
4. Bounded live-detail passthrough for genuinely-live ops (real-time ASIC grid, pool test).
5. Client fold-in: retire `protoOS` app + `minerproxy`; collapse to one ProtoFleet app.

Discovery phase — scope/decisions still open.

Contributor guide

Open the contributing guide

Research direction

Read docs/plans/2026-07-28-single-miner-views-on-fleet-backend-plan.md first, then trace telemetry_store.go and the telemetry collector to compare retained device-level scalars with discarded component arrays. Use the phased plan to separate existing fleet-native reads from command, persistence/RPC, passthrough, and client-fold-in work; done requires the remaining scope and decisions to be resolved against full ProtoOS parity.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.