Gate 0.0.28: de blokhoogte was niet van deze app

Op verzoek van de gebruiker. Dit is een TLS-voordeur op een Electrum-server;
wat de keten doet staat in elke wallet die hij al heeft. Vier widgets over,
alle vier over deze gateway.

De leeftijd van de meting stond onder de blokhoogte en was daarmee de laatste
plek waar de pagina zei hoe oud zijn gegevens zijn: de voetregel en de badge
die hetzelfde zeiden zijn in augustus weggehaald met precies dat argument. Die
regel staat nu onder de reactietijd, na de sparkline zodat de vier onderregels
op een lijn blijven.

De rij is een raster van vier met breekpunten op 1100 en 560 pixels; vier
deelt door twee, dus de stap die bepaalde welke widget alleen kwam te staan is
vervallen. In de agent is de hoogte uit het antwoord gehaald maar het verzoek
niet: daar wordt de reactietijd uit gemeten.

Alle tests groen: 22 + 43 + 39 + 54 + 28 + 115 + 65 goed, 0 fout.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Harmen
2026-09-04 09:43:11 +02:00
co-authored by Claude Opus 5
parent 5ee21b10e7
commit dbec428e62
7 changed files with 134 additions and 80 deletions
+8 -5
View File
@@ -630,10 +630,16 @@ def apply_certificate(cert):
# --- De backend bevragen ----------------------------------------------------
def probe_backend():
"""Blokhoogte en reactietijd van de Electrum-server.
"""Reactietijd van de Electrum-server, en of hij antwoordt.
Eén verzoek over een verse verbinding. Het Electrum-protocol is
JSON-RPC met een regeleinde eraan, dus dit is een socket en niets meer.
De methode is nog steeds headers.subscribe: het is het goedkoopste
verzoek waar een geldig antwoord op komt. De blokhoogte die erin staat
wordt sinds 0.0.28 niet meer overgenomen, want het is niet aan deze app
om die te tonen. Wat we van het antwoord gebruiken is dat het er is en
dat het te ontleden valt.
"""
result = {"address": ELECTRUM_HOST + ":" + str(ELECTRUM_PORT), "reachable": False}
result["name"] = BACKEND_NAMES.get(ELECTRUM_HOST)
@@ -662,12 +668,9 @@ def probe_backend():
break
elapsed = (time.monotonic() - start) * 1000.0
line = b"".join(chunks).split(b"\n", 1)[0]
answer = json.loads(line.decode("utf-8"))
height = (answer.get("result") or {}).get("height")
json.loads(line.decode("utf-8"))
result["reachable"] = True
result["response_ms"] = int(round(elapsed))
if isinstance(height, int):
result["height"] = height
except Exception as e: # noqa: BLE001 - elke fout betekent hetzelfde voor
# de pagina: de backend antwoordde niet.
result["error"] = str(e)