Sessie afgesloten: waar we staan met Evolu Relay

De app draait als 0.3.0 en wordt gebruikt: kale relay met een eigen
eigenaars-allowlist, statuspagina achter de umbrelOS-inlog, en TLS via Zoraxy op
een eigen subdomein waar de handshake 101 geeft. De desktop synchroniseert
eroverheen, met een geleerde eigenaar en een gesloten deur erna.

iOS blijft open, en het vermoeden van vanmiddag is weerlegd in plaats van
bevestigd: TLS was niet de verklaring. Met een geldig certificaat, een opgeslagen
URL en de sync-schakelaar aan komt er nog steeds niets aan, en sinds 0.3.0 is dat
hard gemeten in plaats van afgeleid: het relay-proces logt elke eigenaar die zich
meldt, ook bekende en geweigerde, en van de telefoon verschijnt niets. Daarmee is
de hele app vrijgepleit. De volgende stap staat als eerste taak en kost een
minuut: kijken of het verzoek de telefoon uberhaupt verlaat, via het log van
Zoraxy.

Doordat iOS niet meedoet is de leeskant nooit gemeten. Dat is de tweede taak en
hij hangt aan de eerste, want iOS zou die tweede client zijn.

Proefopstelling is hiermee volledig ingehaald: beide vragen die dat plan nog
bezat zijn beantwoord, en wat er verder in stond gaat over een pakket dat niet
meer bestaat. Dat staat als een beslissing in de index, niet als een daad.

De reparatie aan Electrum Gate heeft een eigen entry gekregen in het plan
Webinterface, want die app ging kapot door de tweede app en dat hoort daar
nagelezen te kunnen worden.

Tests: alle vier groen (34, 54, 39 en 61 goed, 0 fout).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Harmen
2026-08-28 13:08:31 +02:00
co-authored by Claude Opus 5
parent f223da1007
commit bf8bedcda9
5 changed files with 80 additions and 17 deletions
+28 -5
View File
@@ -96,11 +96,34 @@
het internet bereikbaar zonder enige toegangscontrole. De kale relay op een LAN is iets anders dan de
kale relay op een publiek subdomein.
**Goedkoopste volgende meting, en die kost niets:** op de telefoon controleren of de synchronisatie
überhaupt aangaat en of het apparaat om een bevestiging vraagt. Is het antwoord nee, dan is TLS niet de
verdachte en zou een certificaat niets opgelost hebben.
**Moment:** nadat de verbouwing staat; de desktop werkt en dat is genoeg om verder te bouwen ·
**Eigenaar:** gebruiker
**Stand aan het eind van 28-08-2026, en het vermoeden is weerlegd.** TLS is er inmiddels: Zoraxy zet
het subdomein door naar de relay, de handshake-curl geeft `101 Switching Protocols`, en de Mac
synchroniseert daar overheen. Op iOS is daarna alles ingesteld wat er in te stellen valt: de relay-URL
staat opgeslagen en overleeft een herstart, en de aparte schakelaar voor Suite Sync staat aan. De app
toont geen enkele foutmelding.
**En er komt nog steeds niets aan.** Dat is nu hard gemeten en geen indruk meer: sinds 0.3.0 logt het
relay-proces élke eigenaar die zich meldt, ook een bekende en ook een geweigerde. Bij elke verbinding
van de Mac verschijnt `owner ... connected`; van de telefoon verschijnt niets. Geen verbinding, geen
weigering, geen poging. Daarmee is de hele app vrijgepleit: allowlist, quota, beleid en opslag komen er
niet aan te pas.
Ook uitgesloten: dat het aan de wallet zou liggen. Een `OwnerId` hoort bij een wallet en niet bij een
apparaat (zie [Upstream-evolu-relay.md](../../../Referenties/Upstream-evolu-relay.md) §0 punt 5), dus
dezelfde wallet op iOS zou een `OwnerId` opleveren die al toegelaten is. Een andere wallet zou als
geweigerde poging zichtbaar zijn geweest. Geen van beide gebeurt.
**Wat nog niet gemeten is, en dat is de volgende stap:** verlaat het verzoek de telefoon überhaupt?
Zoraxy logt elk verzoek dat het subdomein bereikt. Open op de iPhone `https://<subdomein>/` in Safari
en kijk of die regel verschijnt. De pagina toont niets, want het is een WebSocket-server, maar de
logregel is het antwoord:
- **wél een regel** → route, DNS, certificaat en Zoraxy zijn in orde, en dan belt de app gewoon niet.
Dat is dan een tekortkoming van de cliënt en niet van dit pakket;
- **geen regel** → de telefoon bereikt die naam niet. Dan is het DNS of routering: mobiel netwerk in
plaats van WiFi, of een subdomein dat alleen in de interne DNS bestaat.
**Moment:** de volgende sessie, als eerste taak van dit punt · **Eigenaar:** gebruiker
8. **Welke limiter komt er op de kale relay?** - **beslist op 28-08-2026: weg 1, de relay uitbreiden via
`createRelay`.** Het ontwerp staat in [PLAN.md](PLAN.md) §4g en bleek veel kleiner dan hieronder
@@ -3,6 +3,28 @@
> Chronologisch sessielog, nieuwste bovenaan. Kort: 3 tot 6 regels per entry. Wat er is gebeurd en waarom,
> niet wat er nog moet: dat staat in [TAKEN.md](TAKEN.md).
## 28-08-2026 (slot) - de app draait en wordt gebruikt; iOS doet niet mee
Het pakket is af en geïnstalleerd als 0.3.0. De Mac synchroniseert eroverheen, over TLS via Zoraxy op een
eigen subdomein; de handshake-curl geeft daar `101 Switching Protocols`. De allowlist werkt in beide
richtingen: een eigenaar geleerd, de deur gesloten, en een tweede eigenaar die daarna aanklopte alsnog
toegelaten met de knop op de pagina.
**Twee dingen die uit echt gebruik kwamen en die geen nadenken had opgeleverd.** Eén cliënt kan meer dan
één eigenaar hebben, want een `OwnerId` hoort bij een wallet en niet bij een apparaat; "de eerste eigenaar
wint" sloot daarmee de tweede wallet van de gebruiker buiten. En de korte containernaam `agent` is op het
gedeelde Docker-netwerk niet uniek, waardoor de helft van de verzoeken bij Electrum Gate uitkwam en die app
kapotging. Beide zijn gerepareerd, de tweede met een toets erop.
**iOS blijft open en het vermoeden is weerlegd.** TLS was niet de verklaring: met een geldig certificaat,
een opgeslagen URL en de sync-schakelaar aan komt er nog steeds niets aan. Sinds 0.3.0 logt de relay élke
eigenaar die zich meldt, ook bekende en geweigerde, en van de telefoon verschijnt niets. De volgende stap
staat in [OPEN.md](OPEN.md) punt 9: kijken of het verzoek de telefoon überhaupt verlaat, via het log van
Zoraxy.
**Geraakt:** de hele app-map, `tools/evolu-relay/`, `tests/`, `CLAUDE.md`, `whatsnext-electrum-gate/` en de
documentatie. **Tests:** alle vier groen.
## 28-08-2026 (avond) - het pakket is omgebouwd: relay, agent en pagina
De app-map is nu de kale relay met onze allowlist eromheen. De poorten zijn omgedraaid: de statuspagina
+14 -9
View File
@@ -19,13 +19,13 @@
van 40960 naar 49152 bytes. **De protocolversie klopt**, en daarmee is de richting uit
[OPEN.md](OPEN.md) punt 6 gemeten in plaats van verwacht. Het protocol en alle metingen staan in
[PLAN.md](PLAN.md) §6a
- [ ] **De leeskant nog meten.** Er is geen tweede cliënt geweest, dus dat een ander apparaat die labels
terugkrijgt is niet gezien. **Eigenaar: gebruiker**
- [ ] **Uitzoeken waarom de iOS-app geen verbinding maakt.** Het veld voor de relay-URL bestaat daar,
valideert op `http(s)://` en onthoudt zijn waarde, maar er komt geen enkele poging aan op poort 4000.
Nu de desktop bewijst dat de relay in orde is, is dit een schone vraag geworden: het ligt aan de app
of aan het platform, niet aan ons. Zonder antwoord werkt de app alleen op de desktop, en dat scheelt
voor de waarde van dit hele plan
- [ ] **Kijken of het verzoek de iPhone überhaupt verlaat.** Dit is de volgende stap van dit plan, en hij
kost een minuut: open op de telefoon `https://<subdomein>/` in Safari en kijk of Zoraxy een regel
logt. Wél een regel betekent dat de app niet belt; geen regel betekent dat de telefoon die naam niet
bereikt. Zie [OPEN.md](OPEN.md) punt 9 voor alles wat al uitgesloten is. **Eigenaar: gebruiker**
- [ ] **De leeskant nog meten.** Er is nooit een tweede werkende cliënt geweest, dus dat een ander apparaat
de labels terugkrijgt is niet gezien. Dit hangt aan de vorige taak: iOS zou die tweede cliënt zijn.
**Eigenaar: gebruiker**
- [x] **Besloten wat er met het huidige pakket gebeurt (28-08-2026): het gaat eruit.** De relay van Trezor,
de quota-manager en de Postgres vervallen. Wat ervoor in de plaats komt staat in [PLAN.md](PLAN.md)
§4g en §4h
@@ -38,8 +38,13 @@
## Fase 5 - De verbouwing naar de kale relay
Nog niets van begonnen. De volgorde is bewust: eerst het programma dat de limiter draagt, dan de app
eromheen, want de compose hangt af van wat dat programma nodig heeft.
**Op 28-08-2026 in één sessie gedaan en op het apparaat draaiend, versie 0.3.0.** Wat er staat: het eigen
relay-programma met de allowlist, het bouwrecept, de compose met de omgedraaide poorten, de statuspagina, en
TLS via Zoraxy op een eigen subdomein. De Mac synchroniseert eroverheen, met een geleerde eigenaar en een
gesloten deur erna.
Wat er niet staat: iOS doet niets mee, en daardoor is de leeskant nooit gemeten. Beide staan hierboven bij
"Volgende stap".
- [x] **Het eigen relay-programma geschreven (28-08-2026).** `tools/evolu-relay/src/`: `policy.js` met het
beleid als pure functies, `store.js` voor de staat op schijf, en `index.js` dat `createRelay`