From 6dc3a2c3c8a2e9e9bbf261bea3ac843f37e0e65d Mon Sep 17 00:00:00 2001 From: Djuri Baars Date: Wed, 25 Sep 2024 17:27:39 +0200 Subject: [PATCH] Add integration with SR mining pool for Bitcoin Amsterdam '24 --- lib/btclock/bitaxe_handler.cpp | 6 ++++-- src/lib/bitaxe_fetch.cpp | 12 ++++++++---- src/lib/shared.cpp | 33 +++++++++++++++++++++++++++++++++ src/lib/shared.hpp | 1 + 4 files changed, 46 insertions(+), 6 deletions(-) diff --git a/lib/btclock/bitaxe_handler.cpp b/lib/btclock/bitaxe_handler.cpp index cbc71ec..f12a0d7 100644 --- a/lib/btclock/bitaxe_handler.cpp +++ b/lib/btclock/bitaxe_handler.cpp @@ -9,7 +9,7 @@ std::array parseBitaxeHashRate(std::string text) // Calculate the position where the digits should start // Account for the position of the "mdi:pickaxe" and the "GH/S" label - std::size_t startIndex = NUM_SCREENS - 1 - textLength; + std::size_t startIndex = NUM_SCREENS - textLength; // Insert the "mdi:pickaxe" icon just before the digits if (startIndex > 0) @@ -23,7 +23,9 @@ std::array parseBitaxeHashRate(std::string text) ret[startIndex + i] = text.substr(i, 1); } - ret[NUM_SCREENS - 1] = "GH/S"; + char lastChar = text[textLength - 1]; + + ret[NUM_SCREENS - 1] = std::string(1, lastChar) + "H/S"; ret[0] = "BIT/AXE"; return ret; diff --git a/src/lib/bitaxe_fetch.cpp b/src/lib/bitaxe_fetch.cpp index cfb7635..54fc0c8 100644 --- a/src/lib/bitaxe_fetch.cpp +++ b/src/lib/bitaxe_fetch.cpp @@ -17,14 +17,18 @@ std::string getBitaxeBestDiff() void taskBitaxeFetch(void *pvParameters) { + WiFiClientSecure client; + + client.setCACert(srpool_ca); + for (;;) { ulTaskNotifyTake(pdTRUE, portMAX_DELAY); HTTPClient http; http.setUserAgent(USER_AGENT); - String bitaxeApiUrl = "http://" + preferences.getString("bitaxeHostname", DEFAULT_BITAXE_HOSTNAME) + "/api/system/info"; - http.begin(bitaxeApiUrl.c_str()); + String bitaxeApiUrl = preferences.getString("bitaxeHostname", DEFAULT_BITAXE_HOSTNAME); + http.begin(client, bitaxeApiUrl.c_str()); int httpCode = http.GET(); @@ -33,8 +37,8 @@ void taskBitaxeFetch(void *pvParameters) String payload = http.getString(); JsonDocument doc; deserializeJson(doc, payload); - bitaxeHashrate = std::to_string(static_cast(std::round(doc["hashRate"].as()))); - bitaxeBestDiff = doc["bestDiff"].as(); + bitaxeHashrate = doc["hashrate1m"].as(); + bitaxeBestDiff = formatNumberWithSuffix(doc["bestever"].as()); if (workQueue != nullptr && (getCurrentScreen() == SCREEN_BITAXE_HASHRATE || getCurrentScreen() == SCREEN_BITAXE_BESTDIFF)) { diff --git a/src/lib/shared.cpp b/src/lib/shared.cpp index 597d803..90d2e20 100644 --- a/src/lib/shared.cpp +++ b/src/lib/shared.cpp @@ -1,5 +1,38 @@ #include "shared.hpp" +const char *srpool_ca = \ +"-----BEGIN CERTIFICATE-----\n" \ +"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\n" \ +"-----END CERTIFICATE-----\n"; + const char *github_root_ca = "-----BEGIN CERTIFICATE-----\n" "MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL\n" diff --git a/src/lib/shared.hpp b/src/lib/shared.hpp index a381c7f..be812fe 100644 --- a/src/lib/shared.hpp +++ b/src/lib/shared.hpp @@ -69,6 +69,7 @@ const int usPerSecond = 1000000; const int usPerMinute = 60 * usPerSecond; extern const char *github_root_ca; +extern const char *srpool_ca; const PROGMEM char UPDATE_FIRMWARE = U_FLASH; const PROGMEM char UPDATE_WEBUI = U_SPIFFS;