diff --git a/cmd/mining/cmd/install.go b/cmd/mining/cmd/install.go index fb5a011..1283721 100644 --- a/cmd/mining/cmd/install.go +++ b/cmd/mining/cmd/install.go @@ -65,8 +65,8 @@ var installCmd = &cobra.Command{ } func updateDoctorCache() error { - serviceManager := getServiceManager() - availableMiners := serviceManager.ListAvailableMiners() + manager := getSharedManager() + availableMiners := manager.ListAvailableMiners() if len(availableMiners) == 0 { return nil } diff --git a/cmd/mining/cmd/list.go b/cmd/mining/cmd/list.go index 1f5cbe4..6c1460c 100644 --- a/cmd/mining/cmd/list.go +++ b/cmd/mining/cmd/list.go @@ -12,10 +12,10 @@ var listCmd = &cobra.Command{ Short: "List running and available miners", Long: `List all running miners and their status, as well as all miners that are available to be installed and started.`, RunE: func(_ *cobra.Command, args []string) error { - serviceManager := getServiceManager() + manager := getSharedManager() - // List running miners - runningMiners := serviceManager.ListMiners() + // manager.ListMiners() returns running miners such as xmrig-main. + runningMiners := manager.ListMiners() fmt.Println("Running Miners:") if len(runningMiners) == 0 { fmt.Println(" No running miners found.") @@ -29,8 +29,8 @@ var listCmd = &cobra.Command{ fmt.Println() - // List available miners - availableMiners := serviceManager.ListAvailableMiners() + // manager.ListAvailableMiners() returns installable miners such as xmrig. + availableMiners := manager.ListAvailableMiners() fmt.Println("Available Miners:") if len(availableMiners) == 0 { fmt.Println(" No available miners found.") diff --git a/cmd/mining/cmd/peer.go b/cmd/mining/cmd/peer.go index 03b6fcc..8a9dbac 100644 --- a/cmd/mining/cmd/peer.go +++ b/cmd/mining/cmd/peer.go @@ -43,7 +43,7 @@ to exchange public keys and establish a secure connection.`, return fmt.Errorf("failed to get peer registry: %w", err) } - // For now, just add to the registry. `node serve` performs the handshake when the peer connects. + // peer := &node.Peer{ID: "pending-1712070000123", Name: "worker-1", Address: "10.0.0.2:9090"} keeps the registry entry aligned with `node serve`. peer := &node.Peer{ ID: fmt.Sprintf("pending-%d", time.Now().UnixNano()), Name: name, diff --git a/cmd/mining/cmd/root.go b/cmd/mining/cmd/root.go index f0ee8be..e6b8d4e 100644 --- a/cmd/mining/cmd/root.go +++ b/cmd/mining/cmd/root.go @@ -8,7 +8,7 @@ import ( ) var ( - serviceManager *mining.Manager + sharedManager *mining.Manager ) var rootCmd = &cobra.Command{ @@ -31,14 +31,14 @@ func initializeManager() { if len(os.Args) > 1 && os.Args[1] == "simulate" { return } - if serviceManager == nil { - serviceManager = mining.NewManager() + if sharedManager == nil { + sharedManager = mining.NewManager() } } -func getServiceManager() *mining.Manager { - if serviceManager == nil { - serviceManager = mining.NewManager() +func getSharedManager() *mining.Manager { + if sharedManager == nil { + sharedManager = mining.NewManager() } - return serviceManager + return sharedManager } diff --git a/cmd/mining/cmd/serve.go b/cmd/mining/cmd/serve.go index b156432..2b1b600 100644 --- a/cmd/mining/cmd/serve.go +++ b/cmd/mining/cmd/serve.go @@ -42,10 +42,10 @@ var serveCmd = &cobra.Command{ displayAddress := fmt.Sprintf("%s:%d", displayHost, servePort) listenAddress := fmt.Sprintf("%s:%d", serveHost, servePort) - // serviceManager := getServiceManager() shares miner lifecycle state across `mining start`, `mining stop`, and `mining serve`. - serviceManager := getServiceManager() + // manager := getSharedManager() shares miner lifecycle state across `mining start`, `mining stop`, and `mining serve`. + manager := getSharedManager() - service, err := mining.NewService(serviceManager, listenAddress, displayAddress, apiBasePath) + service, err := mining.NewService(manager, listenAddress, displayAddress, apiBasePath) if err != nil { return fmt.Errorf("failed to create new service: %w", err) } @@ -135,7 +135,7 @@ var serveCmd = &cobra.Command{ continue } - miner, err := serviceManager.StartMiner(context.Background(), minerType, minerConfig) + miner, err := manager.StartMiner(context.Background(), minerType, minerConfig) if err != nil { fmt.Fprintf(os.Stderr, "Error starting miner: %v\n", err) } else { @@ -147,7 +147,7 @@ var serveCmd = &cobra.Command{ fmt.Println("Error: status command requires miner name, for example `status xmrig`") } else { minerName := commandArgs[0] - miner, err := serviceManager.GetMiner(minerName) + miner, err := manager.GetMiner(minerName) if err != nil { fmt.Fprintf(os.Stderr, "Error getting miner status: %v\n", err) } else { @@ -169,7 +169,7 @@ var serveCmd = &cobra.Command{ fmt.Println("Error: stop command requires miner name, for example `stop xmrig`") } else { minerName := commandArgs[0] - err := serviceManager.StopMiner(context.Background(), minerName) + err := manager.StopMiner(context.Background(), minerName) if err != nil { fmt.Fprintf(os.Stderr, "Error stopping miner: %v\n", err) } else { @@ -177,7 +177,7 @@ var serveCmd = &cobra.Command{ } } case "list": - miners := serviceManager.ListMiners() + miners := manager.ListMiners() if len(miners) == 0 { fmt.Println("No miners currently running.") } else { @@ -206,8 +206,8 @@ var serveCmd = &cobra.Command{ case <-ctx.Done(): } - // serviceManager.Stop() stops miner goroutines and closes the shared service state before exit. - serviceManager.Stop() + // manager.Stop() stops miner goroutines and closes the shared service state before exit. + manager.Stop() fmt.Println("Mining service stopped.") return nil diff --git a/cmd/mining/cmd/simulate.go b/cmd/mining/cmd/simulate.go index 0ed8ad2..2289ac5 100644 --- a/cmd/mining/cmd/simulate.go +++ b/cmd/mining/cmd/simulate.go @@ -60,8 +60,8 @@ Available presets: displayAddress := fmt.Sprintf("%s:%d", displayHost, servePort) listenAddress := fmt.Sprintf("%s:%d", serveHost, servePort) - // serviceManager := mining.NewManagerForSimulation() // keeps simulated miners isolated from the real autostart state. - serviceManager := mining.NewManagerForSimulation() + // manager := mining.NewManagerForSimulation() keeps simulated miners isolated from the real autostart state. + manager := mining.NewManagerForSimulation() // getSimulatedConfig(0) // returns a config such as sim-cpu-medium-001. for i := 0; i < simulatedMinerCount; i++ { @@ -73,8 +73,8 @@ Available presets: return fmt.Errorf("failed to start simulated miner %d: %w", i, err) } - // serviceManager.RegisterMiner(simulatedMiner) // makes the simulated miner visible to `mining serve`. - if err := serviceManager.RegisterMiner(simulatedMiner); err != nil { + // manager.RegisterMiner(simulatedMiner) makes the simulated miner visible to `mining serve`. + if err := manager.RegisterMiner(simulatedMiner); err != nil { return fmt.Errorf("failed to register simulated miner %d: %w", i, err) } @@ -82,13 +82,13 @@ Available presets: simulatedConfig.Name, simulatedConfig.Algorithm, simulatedConfig.BaseHashrate) } - // service, err := mining.NewService(serviceManager, listenAddress, displayAddress, apiBasePath) // serves the simulator on http://127.0.0.1:9090. - service, err := mining.NewService(serviceManager, listenAddress, displayAddress, apiBasePath) + // service, err := mining.NewService(manager, listenAddress, displayAddress, apiBasePath) serves the simulator on http://127.0.0.1:9090. + service, err := mining.NewService(manager, listenAddress, displayAddress, apiBasePath) if err != nil { return fmt.Errorf("failed to create new service: %w", err) } - // service.ServiceStartup(ctx) // starts the API server while the simulation loop keeps running. + // service.ServiceStartup(ctx) starts the API server while the simulation loop keeps running. go func() { if err := service.ServiceStartup(ctx); err != nil { fmt.Fprintf(os.Stderr, "Failed to start service: %v\n", err) @@ -113,9 +113,9 @@ Available presets: case <-ctx.Done(): } - // for _, miner := range serviceManager.ListMiners() { serviceManager.StopMiner(context.Background(), miner.GetName()) } // stops every simulated miner before exit. - for _, miner := range serviceManager.ListMiners() { - serviceManager.StopMiner(context.Background(), miner.GetName()) + // for _, miner := range manager.ListMiners() { manager.StopMiner(context.Background(), miner.GetName()) } stops every simulated miner before exit. + for _, miner := range manager.ListMiners() { + manager.StopMiner(context.Background(), miner.GetName()) } fmt.Println("Simulation stopped.") diff --git a/cmd/mining/cmd/start.go b/cmd/mining/cmd/start.go index c20957a..95f982f 100644 --- a/cmd/mining/cmd/start.go +++ b/cmd/mining/cmd/start.go @@ -26,7 +26,7 @@ var startCmd = &cobra.Command{ Wallet: walletAddress, } - miner, err := getServiceManager().StartMiner(context.Background(), minerType, minerConfig) + miner, err := getSharedManager().StartMiner(context.Background(), minerType, minerConfig) if err != nil { return fmt.Errorf("failed to start miner: %w", err) } diff --git a/cmd/mining/cmd/status.go b/cmd/mining/cmd/status.go index 125a749..7025929 100644 --- a/cmd/mining/cmd/status.go +++ b/cmd/mining/cmd/status.go @@ -17,9 +17,9 @@ var statusCmd = &cobra.Command{ Args: cobra.ExactArgs(1), RunE: func(_ *cobra.Command, args []string) error { minerName := args[0] - serviceManager := getServiceManager() + manager := getSharedManager() - miner, err := serviceManager.GetMiner(minerName) + miner, err := manager.GetMiner(minerName) if err != nil { return fmt.Errorf("failed to get miner: %w", err) } diff --git a/cmd/mining/cmd/stop.go b/cmd/mining/cmd/stop.go index ce36bb7..bb81849 100644 --- a/cmd/mining/cmd/stop.go +++ b/cmd/mining/cmd/stop.go @@ -15,9 +15,9 @@ var stopCmd = &cobra.Command{ Args: cobra.ExactArgs(1), RunE: func(_ *cobra.Command, args []string) error { minerName := args[0] - serviceManager := getServiceManager() + manager := getSharedManager() - if err := serviceManager.StopMiner(context.Background(), minerName); err != nil { + if err := manager.StopMiner(context.Background(), minerName); err != nil { return fmt.Errorf("failed to stop miner: %w", err) } diff --git a/cmd/mining/cmd/uninstall.go b/cmd/mining/cmd/uninstall.go index 95f1f74..60d5929 100644 --- a/cmd/mining/cmd/uninstall.go +++ b/cmd/mining/cmd/uninstall.go @@ -15,10 +15,10 @@ var uninstallCmd = &cobra.Command{ Args: cobra.ExactArgs(1), RunE: func(_ *cobra.Command, args []string) error { minerType := args[0] - serviceManager := getServiceManager() // getServiceManager() returns the shared manager used by `mining uninstall`. + manager := getSharedManager() // getSharedManager() keeps `mining uninstall xmrig` on the same shared miner state as `mining serve`. fmt.Printf("Uninstalling %s...\n", minerType) - if err := serviceManager.UninstallMiner(context.Background(), minerType); err != nil { + if err := manager.UninstallMiner(context.Background(), minerType); err != nil { return fmt.Errorf("failed to uninstall miner: %w", err) }