Make mempool.space instance configurable, change ntp server to global pool

This commit is contained in:
Djuri Baars 2023-10-07 20:37:47 +02:00
parent 18faece660
commit cc28df888b
5 changed files with 34 additions and 5 deletions

View File

@ -171,6 +171,12 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row">
<label for="mempoolInstance" class="col-sm-6 col-form-label">Mempool Instance</label>
<div class="col-sm-6">
<input type="text" name="mempoolInstance" id="mempoolInstance" class="form-control">
</div>
</div>
<div class="row"> <div class="row">
<div class=" col-sm-6"> <div class=" col-sm-6">
<div class="form-check form-switch"> <div class="form-check form-switch">

View File

@ -10,7 +10,10 @@ getBcStatus = () => {
.then(jsonData => { .then(jsonData => {
var source = document.getElementById("entry-template").innerHTML; var source = document.getElementById("entry-template").innerHTML;
var template = Handlebars.compile(source); var template = Handlebars.compile(source);
var context = { currentScreen: jsonData.currentScreen, rendered: jsonData.rendered, data: jsonData.data, screens: screens, ledStatus: jsonData.ledStatus ? jsonData.ledStatus.map((t) => (t).toString(16)) : [] };
var context = { timerRunning: jsonData.timerRunning, currentScreen: jsonData.currentScreen, rendered: jsonData.rendered, data: jsonData.data, screens: screens, ledStatus: jsonData.ledStatus ? jsonData.ledStatus.map((t) => (t).toString(16)) : [] };
document.getElementById('output').innerHTML = template(context); document.getElementById('output').innerHTML = template(context);
}) })
.catch(err => { .catch(err => {
@ -54,7 +57,7 @@ fetch('/api/settings', {
document.getElementById('ledBrightness').value = jsonData.ledBrightness; document.getElementById('ledBrightness').value = jsonData.ledBrightness;
document.getElementById('fullRefreshMin').value = jsonData.fullRefreshMin; document.getElementById('fullRefreshMin').value = jsonData.fullRefreshMin;
document.getElementById('wpTimeout').value = jsonData.wpTimeout; document.getElementById('wpTimeout').value = jsonData.wpTimeout;
document.getElementById('mempoolInstance').value = jsonData.mempoolInstance;
if (jsonData.gitRev) if (jsonData.gitRev)
document.getElementById('gitRev').innerHTML = "Version: " + jsonData.gitRev; document.getElementById('gitRev').innerHTML = "Version: " + jsonData.gitRev;
@ -143,4 +146,12 @@ changeScreen = (id) => {
.catch(err => { .catch(err => {
//error block //error block
}); });
}
toggleTimer = (currentStatus) => {
if (currentStatus) {
fetch('/api/action/pause');
} else {
fetch('/api/action/timer_restart');
}
} }

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#define NTP_SERVER "nl.pool.ntp.org" #define NTP_SERVER "pool.ntp.org"
#define DEFAULT_MEMPOOL_INSTANCE "mempool.bitcoin.nl"
#define FONT_SMALL Antonio_SemiBold20pt7b #define FONT_SMALL Antonio_SemiBold20pt7b
#define FONT_BIG Antonio_SemiBold90pt7b #define FONT_BIG Antonio_SemiBold90pt7b

View File

@ -154,6 +154,8 @@ void onApiSettingsGet(AsyncWebServerRequest *request)
root["rpcPort"] = preferences.getUInt("rpcPort", BITCOIND_PORT); root["rpcPort"] = preferences.getUInt("rpcPort", BITCOIND_PORT);
root["rpcUser"] = preferences.getString("rpcUser", BITCOIND_RPC_USER); root["rpcUser"] = preferences.getString("rpcUser", BITCOIND_RPC_USER);
root["rpcHost"] = preferences.getString("rpcHost", BITCOIND_HOST); root["rpcHost"] = preferences.getString("rpcHost", BITCOIND_HOST);
root["mempoolInstance"] = preferences.getString("mempoolInstance", DEFAULT_MEMPOOL_INSTANCE);
#ifdef IS_BW #ifdef IS_BW
root["epdColors"] = 2; root["epdColors"] = 2;
#else #else
@ -222,6 +224,16 @@ void onApiSettingsPost(AsyncWebServerRequest *request)
settingsChanged = true; settingsChanged = true;
} }
if (request->hasParam("mempoolInstance", true))
{
AsyncWebParameter *mempoolInstance = request->getParam("mempoolInstance", true);
preferences.putString("mempoolInstance", mempoolInstance->value().c_str());
Serial.print("Setting mempool instance to ");
Serial.println(mempoolInstance->value().c_str());
settingsChanged = true;
}
if (request->hasParam("ledBrightness", true)) if (request->hasParam("ledBrightness", true))
{ {
AsyncWebParameter *ledBrightness = request->getParam("ledBrightness", true); AsyncWebParameter *ledBrightness = request->getParam("ledBrightness", true);

View File

@ -20,7 +20,6 @@ void checkBitcoinBlock(void *pvParameters)
int blockHeight = preferences.getUInt("blockHeight", currentBlockHeight); int blockHeight = preferences.getUInt("blockHeight", currentBlockHeight);
HTTPClient http; HTTPClient http;
http.setReuse(true);
useBitcoind = preferences.getBool("useNode", false) && wifiClientInsecure.connect(preferences.getString("rpcHost", BITCOIND_HOST).c_str(), preferences.getUInt("rpcPort", BITCOIND_PORT)); useBitcoind = preferences.getBool("useNode", false) && wifiClientInsecure.connect(preferences.getString("rpcHost", BITCOIND_HOST).c_str(), preferences.getUInt("rpcPort", BITCOIND_PORT));
if (useBitcoind) if (useBitcoind)
Serial.println("bitcoind node is reachable, using this for blocks."); Serial.println("bitcoind node is reachable, using this for blocks.");
@ -58,7 +57,7 @@ void checkBitcoinBlock(void *pvParameters)
} }
else else
{ {
http.begin("https://mempool.bitcoin.nl/api/blocks/tip/height"); http.begin("https://" + preferences.getString("mempoolInstance", DEFAULT_MEMPOOL_INSTANCE) + "/api/blocks/tip/height");
http.addHeader("User-Agent", "BTClock/1.0"); http.addHeader("User-Agent", "BTClock/1.0");
int httpCode = http.GET(); int httpCode = http.GET();