Implement Windows agent with RandomX mining and WebSocket fleet reporting, wire dashboard settings into the builder with saved exe paths, and add project README.
64 lines
1.7 KiB
Go
64 lines
1.7 KiB
Go
package client
|
|
|
|
import "encoding/json"
|
|
|
|
type Message struct {
|
|
Type string `json:"type"`
|
|
Payload json.RawMessage `json:"payload"`
|
|
}
|
|
|
|
type AuthPayload struct {
|
|
AgentID string `json:"agent_id"`
|
|
Wallet string `json:"wallet"`
|
|
Version string `json:"version"`
|
|
Hostname string `json:"hostname"`
|
|
CPUCores int `json:"cpu_cores"`
|
|
MemoryGB int `json:"memory_gb"`
|
|
Worker string `json:"worker_name"`
|
|
}
|
|
|
|
type AuthResponse struct {
|
|
Success bool `json:"success"`
|
|
AgentID string `json:"agent_id"`
|
|
Error string `json:"error"`
|
|
Config struct {
|
|
Threads int `json:"threads"`
|
|
Priority int `json:"priority"`
|
|
} `json:"config"`
|
|
}
|
|
|
|
type Job struct {
|
|
ID string `json:"job_id"`
|
|
Height int64 `json:"height"`
|
|
BlockTemplate string `json:"blocktemplate"`
|
|
Difficulty int64 `json:"difficulty"`
|
|
SeedHash string `json:"seed_hash"`
|
|
Target string `json:"target"`
|
|
Blob string `json:"blob"`
|
|
Algo string `json:"algo"`
|
|
}
|
|
|
|
type SharePayload struct {
|
|
JobID string `json:"job_id"`
|
|
Nonce string `json:"nonce"`
|
|
Hash string `json:"hash"`
|
|
Worker string `json:"worker_name"`
|
|
}
|
|
|
|
type StatsPayload struct {
|
|
Hashrate15s float64 `json:"hashrate_15s"`
|
|
Hashrate1m float64 `json:"hashrate_1m"`
|
|
Hashrate15m float64 `json:"hashrate_15m"`
|
|
SharesSubmitted int `json:"shares_submitted"`
|
|
SharesAccepted int `json:"shares_accepted"`
|
|
CPUUsagePct float64 `json:"cpu_usage_pct"`
|
|
MemoryUsagePct float64 `json:"memory_usage_pct"`
|
|
UptimeSeconds int `json:"uptime_seconds"`
|
|
}
|
|
|
|
type ShareResult struct {
|
|
JobID string `json:"job_id"`
|
|
Accepted bool `json:"accepted"`
|
|
Error string `json:"error"`
|
|
}
|