From d5ac9addfe51b0623c1ef5196f9df821c3ab95be Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Thu, 27 Jul 2023 16:30:57 +0200 Subject: [PATCH 1/2] Log successful submit as such --- src/mining.cpp | 1 + src/stratum.cpp | 9 +++++++-- src/stratum.h | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/mining.cpp b/src/mining.cpp index dc4e5db..825952d 100644 --- a/src/mining.cpp +++ b/src/mining.cpp @@ -197,6 +197,7 @@ void runStratumWorker(void *name) { case MINING_SET_DIFFICULTY: parse_mining_set_difficulty(line, currentPoolDifficulty); mMiner.poolDifficulty = currentPoolDifficulty; break; + case STRATUM_SUCCESS: Serial.println(" Parsed JSON: Success"); break; default: Serial.println(" Parsed JSON: unknown"); break; } diff --git a/src/stratum.cpp b/src/stratum.cpp index 4970656..00d72a4 100644 --- a/src/stratum.cpp +++ b/src/stratum.cpp @@ -142,8 +142,13 @@ stratum_method parse_mining_method(String line) if (error || checkError(doc)) return STRATUM_PARSE_ERROR; - if (!doc.containsKey("method")) return STRATUM_UNKNOWN; - + if (!doc.containsKey("method")) { + // "error":null means success + if (doc["error"].isNull()) + return STRATUM_SUCCESS; + else + return STRATUM_UNKNOWN; + } stratum_method result = STRATUM_UNKNOWN; if (strcmp("mining.notify", (const char*) doc["method"]) == 0) { diff --git a/src/stratum.h b/src/stratum.h index 44f65de..d8110e7 100644 --- a/src/stratum.h +++ b/src/stratum.h @@ -38,6 +38,7 @@ typedef struct { } mining_job; typedef enum { + STRATUM_SUCCESS, STRATUM_UNKNOWN, STRATUM_PARSE_ERROR, MINING_NOTIFY, From df99eea69db5f1f89b8f032b8dba88555fe28193 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Thu, 27 Jul 2023 23:24:33 +0200 Subject: [PATCH 2/2] Stop miners instantly when losing pool connection --- src/mining.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mining.cpp b/src/mining.cpp index 825952d..98a4f99 100644 --- a/src/mining.cpp +++ b/src/mining.cpp @@ -141,6 +141,8 @@ void runStratumWorker(void *name) { if(!isMinerSuscribed){ + //Stop miner current jobs + mMiner.inRun = false; mWorker = init_mining_subscribe(); // STEP 1: Pool server connection (SUBSCRIBE)