Add fleet ops dashboard, Calibrate enforcement, and dead-code cleanup.

Ship live alerts, pool status, AI monitor, remote agent commands, build manager, and uninstall flow; wire Calibrate settings (WS ping, pool traffic log, retention limits) at runtime and exclude server/data from git.
This commit is contained in:
drjones
2026-05-27 09:16:04 -07:00
parent 9d223b8137
commit df81eb7744
75 changed files with 8891 additions and 966 deletions

View File

@@ -7,8 +7,8 @@ import (
"path/filepath"
"time"
_ "modernc.org/sqlite"
"crypto-miner-server/internal/models"
_ "modernc.org/sqlite"
)
type Database struct {
@@ -190,9 +190,18 @@ func (d *Database) ListAgents() ([]*models.Agent, error) {
// Share operations
func (d *Database) InsertShare(s *models.Share) error {
func (d *Database) InsertShare(s *models.Share) (int64, error) {
query := `INSERT INTO shares (agent_id, job_id, difficulty, accepted, hash, nonce, error, timestamp) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`
_, err := d.Exec(query, s.AgentID, s.JobID, s.Difficulty, boolToInt(s.Accepted), s.Hash, s.Nonce, s.Error, s.Timestamp)
res, err := d.Exec(query, s.AgentID, s.JobID, s.Difficulty, boolToInt(s.Accepted), s.Hash, s.Nonce, s.Error, s.Timestamp)
if err != nil {
return 0, err
}
return res.LastInsertId()
}
func (d *Database) UpdateShareResult(id int64, accepted bool, errMsg string) error {
query := `UPDATE shares SET accepted = ?, error = ? WHERE id = ?`
_, err := d.Exec(query, boolToInt(accepted), errMsg, id)
return err
}
@@ -285,13 +294,13 @@ func (d *Database) ListBuilds(limit int) ([]*models.BuildRecord, error) {
// Stats
type FleetStats struct {
TotalAgents int `json:"total_agents"`
OnlineAgents int `json:"online_agents"`
TotalHashrate float64 `json:"total_hashrate"`
TotalShares int `json:"total_shares"`
AcceptedShares int `json:"accepted_shares"`
RejectedShares int `json:"rejected_shares"`
AcceptRate float64 `json:"accept_rate"`
TotalAgents int `json:"total_agents"`
OnlineAgents int `json:"online_agents"`
TotalHashrate float64 `json:"total_hashrate"`
TotalShares int `json:"total_shares"`
AcceptedShares int `json:"accepted_shares"`
RejectedShares int `json:"rejected_shares"`
AcceptRate float64 `json:"accept_rate"`
}
func (d *Database) GetFleetStats() (*FleetStats, error) {