From beb73a2eeacf7dbe5e292ce6e26a95a933808267 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 19 May 2026 04:13:11 +0530 Subject: feat(mining): integrate mining subsystem into existing modules - CMakeLists.txt: add 6 mining sources + tcp_transport dependency - config.h/c: mining_payout_mode_t enum, mining config fields, JSON parsing - tollgate_main.c: mining init in start_services(), stratum_client_tick in main loop - tollgate_api.c: GET /mining/job, POST /mining/share, GET /mining/stats endpoints - session.h/c: payment_method_t enum (CASHU/MINING/BYTES) - firewall.h/c: sandbox allowlist for mining port + mint URLs - tollgate_client.h/c: TG_CLIENT_MINING state, mining discovery tag parsing - captive_portal.c: tabbed UI with Cashu/Mine tabs, live hashrate polling --- main/tollgate_main.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'main/tollgate_main.c') diff --git a/main/tollgate_main.c b/main/tollgate_main.c index fa7a692..30a63db 100644 --- a/main/tollgate_main.c +++ b/main/tollgate_main.c @@ -23,6 +23,11 @@ #include "tollgate_client.h" #include "lightning_payout.h" #include "cvm_server.h" +#include "stratum_client.h" +#include "stratum_proxy.h" +#include "sw_miner.h" +#include "asic_miner.h" +#include "mining_payment.h" #define MAX_STA_RETRY 5 static const char *TAG = "tollgate_main"; @@ -154,6 +159,11 @@ static void start_services(void) session_manager_init(); const tollgate_config_t *cfg = tollgate_config_get(); + if (cfg->mining_enabled) { + firewall_set_mining_port(cfg->mining_port); + firewall_set_sandbox_mint_access(cfg->mining_sandbox_mint_access); + } + nucula_wallet_init(cfg->mint_url); lightning_payout_init(&cfg->payout); @@ -175,6 +185,26 @@ static void start_services(void) cvm_server_start(); } + if (cfg2->mining_enabled) { + ESP_LOGI(TAG, "Mining subsystem enabled, initializing..."); + mining_payment_init(); + stratum_client_init(); + stratum_proxy_init(cfg2->mining_port); + + if (cfg2->mining_payout_mode != MINING_PAYOUT_UPSTREAM) { + stratum_client_start(); + } + + asic_miner_init(); + if (asic_miner_is_present()) { + asic_miner_start(); + ESP_LOGI(TAG, "ASIC miner started"); + } else { + sw_miner_start(); + ESP_LOGI(TAG, "Software miner started (no ASIC)"); + } + } + s_services_running = true; if (s_services_mutex) xSemaphoreGive(s_services_mutex); ESP_LOGI(TAG, "=== TollGate services started ==="); @@ -329,5 +359,6 @@ void app_main(void) session_tick(); tollgate_client_tick(); lightning_payout_tick(); + stratum_client_tick(); } } -- cgit v1.2.3