Add pool presets, operator bake-ins, and USB pack improvements

- Pool preset checkboxes with failover in Calibrate and Forge

- Tier 1/2 UX: setup banner, forge next worker, LAN defaults, blueprint prompt

- USB: auto-install forge tools, seed config.json, sync LAUNCH.bat
This commit is contained in:
AetherForge
2026-06-01 21:06:19 -07:00
parent 1e0482ebe1
commit 1413a9394f
29 changed files with 1078 additions and 314 deletions

View File

@@ -155,6 +155,7 @@ func main() {
Password: cfg.Pool.Password,
PaymentID: cfg.Wallet.PaymentID,
}
defaultPoolBackups := poolConfigsFromEndpoints(cfg.Pool.BackupPools, cfg)
// Initialize Stratum pool manager (connections keyed by forged pool + wallet)
poolManager := pool.NewManager(
@@ -189,7 +190,7 @@ func main() {
// Pre-connect default upstream pool from server config (Forge defaults seed from here)
go func() {
if _, err := poolManager.EnsurePool(&defaultPoolCfg); err != nil {
if _, err := poolManager.EnsurePoolWithBackups(&defaultPoolCfg, defaultPoolBackups); err != nil {
log.Printf("[Pool] Failed to connect default pool (will retry on agent auth): %v", err)
}
}()
@@ -257,6 +258,24 @@ func main() {
}
}
func poolConfigsFromEndpoints(eps []PoolEndpoint, cfg *Config) []pool.Config {
out := make([]pool.Config, 0, len(eps))
for _, ep := range eps {
if ep.Host == "" || ep.Port <= 0 {
continue
}
out = append(out, pool.Config{
Host: ep.Host,
Port: ep.Port,
UseTLS: ep.UseTLS,
Wallet: cfg.Wallet.Address,
Password: cfg.Pool.Password,
PaymentID: cfg.Wallet.PaymentID,
})
}
return out
}
func applyRuntimeConfig(cfg *Config, wsHub *api.WSHub, poolManager *pool.Manager, builderHandler *builder.Handler) {
if wsHub != nil {
wsHub.SetPingInterval(cfg.Server.WebSocketPingSeconds)