De proef is geslaagd: de kale Evolu-relay praat met Suite

Trezor Suite op de desktop stuurde elf labels naar docker.io/evoluhq/relay:latest
en die kwamen aan: de database in het volume groeide van 40960 naar 49152 bytes en
de tijdstempel verzette. De protocolversie klopt dus, en daarmee is de richting
van 27-08 geen verwachting meer maar een meting. Geen Postgres, geen
quota-manager, geen eigenaarsregistratie, en toch verkeer.

Open punt 6 is daarmee beslist. Het blijft in de lijst staan tot de verbouwing
gedaan is, want het beschrijft de reden waarom het huidige pakket eruit gaat.

Een waarschuwing hoort erbij en staat in het protocol: de relay logt geen enkele
verbinding. Het venster blijft stil terwijl er labels binnenkomen, dus "ik zie
niets gebeuren" is hier geen waarneming maar een eigenschap van de relay. Alleen
het volume vertelt iets, en daarom mag de nulmeting niet overgeslagen worden. Dat
kostte vandaag bijna de verkeerde conclusie.

Twee dingen bleven ongemeten en staan als taak. De leeskant: er is geen tweede
client geweest, dus dat een ander apparaat de labels terugkrijgt is niet gezien.
En iOS maakt geen enkele verbinding, terwijl het veld daar bestaat, valideert op
http(s) en zijn waarde onthoudt. Het vermoeden is TLS, en dat is als open punt 9
opgeschreven met de prijs erbij: een certificaat voor een LAN-adres bestaat niet,
dus de wegen die overblijven lopen via Bereikbaarheid en zijn een eigen
ontwerpvraag. Er is ook een tweede verklaring die even goed past, namelijk dat
het synchroniseren op de telefoon nooit begon, en die is gratis te meten.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Harmen
2026-08-28 10:44:31 +02:00
co-authored by Claude Opus 5
parent fafea732f9
commit 6b114475d5
5 changed files with 71 additions and 30 deletions
+1 -1
View File
@@ -23,7 +23,7 @@
| Plan | App | Volgende stap | Status |
|-|-|-|-|
| [Umbrelapp](Plannen/Actief/008-Umbrelapp/TAKEN.md) | Relay | **Dit is de focus vanaf 27-08-2026, gekozen door de gebruiker, en de app staat op dit moment uit.** Uit de broncode van Suite: bij een eigen relay-URL registreert de cliënt geen eigenaar, terwijl Trezor's relay iedereen zonder limietenrij weigert. **Richting gekozen op 27-08-2026: kaal, met een eigen limiter en een statuspagina erop.** De proef is op 28-08-2026 begonnen en het testprotocol staat in `PLAN.md` §6a. **De relay is in orde, de cliënt kwam nooit aan**, dus over de protocolversie is nog niets bekend; iOS is als platform afgevallen en de volgende poging is de desktop-Suite op de Mac. Werkt dat, dan pas verbouwen. Let op: kaal gaan haalt de énige bescherming weg die er nu is, dus de limiter is voorwaarde en geen extraatje, en de huidige quota-manager is er niet voor te hergebruiken. Zie open punt 6, 8 en 2 | 🔶 |
| [Umbrelapp](Plannen/Actief/008-Umbrelapp/TAKEN.md) | Relay | **Dit is de focus vanaf 27-08-2026, gekozen door de gebruiker, en de app staat op dit moment uit.** Uit de broncode van Suite: bij een eigen relay-URL registreert de cliënt geen eigenaar, terwijl Trezor's relay iedereen zonder limietenrij weigert. **Richting gekozen op 27-08-2026: kaal, met een eigen limiter en een statuspagina erop.** **De proef is op 28-08-2026 geslaagd:** Suite op de desktop stuurde elf labels naar de kale `evoluhq/relay:latest` en die kwamen aan, dus de protocolversie klopt en het verbouwen kan beginnen. Meting en testprotocol in `PLAN.md` §6a. Twee dingen bleven ongemeten: de leeskant (geen tweede cliënt) en iOS, dat geen enkele verbinding maakt (open punt 9, vermoeden TLS). Let op: kaal gaan haalt de énige bescherming weg die er nu is, dus de limiter is voorwaarde en geen extraatje, en de huidige quota-manager is er niet voor te hergebruiken. Zie open punt 6, 8 en 2 | 🔶 |
| [Eigenimage](Plannen/Actief/006-Eigenimage/TAKEN.md) | Gate | **Klaar om te beginnen, maar ligt stil op verzoek van de gebruiker** (27-08-2026): hij gaat eerst verder met Evolu Relay. Het register is beslist (Gitea, bij inlevering opnieuw kijken), dus fase 1 kan zo starten: het bouwrecept in `tools/electrum-gate/`, multi-arch, anoniem te halen. Let op §1: het lost níet het updateprobleem op, want dat bestaat niet meer | ⬜ |
| [Proefopstelling](Plannen/Actief/007-Proefopstelling/TAKEN.md) | Relay | **Eerst beslissen of dit plan nog bestaansrecht heeft.** Fase 1 is af, maar fase 2 en 3 zijn ingehaald: het pakket staat al op de Umbrel (sinds 27-08-2026 uitgezet, maar geïnstalleerd), dus een lokale opstelling ernaast meet minder en kost meer. Wat overblijft zijn twee vragen die al als blokkade in **Umbrelapp** staan, en die horen op één plek | 🔶 |
+32 -6
View File
@@ -9,8 +9,9 @@
## Nog te beslissen
6. **Pakketteren we wel de juiste relay?** - **de zwaarste vraag die dit plan heeft**, en hij kwam pas op
25-08-2026 aan het eind van de dag boven, nadat de gebruiker de documentatie van Evolu zelf aandroeg.
6. **Pakketteren we wel de juiste relay?** - **beslist op 28-08-2026 door de proef: nee, en het wordt de
kale Evolu-relay.** Dit punt blijft hier staan tot de verbouwing gedaan is, want het beschrijft de reden
waarom het huidige pakket eruit gaat. De volledige meting staat in [PLAN.md](PLAN.md) §6a.
`trezor/trezor-suite-sync` is niet Evolu maar Trezor's inzet ervan, met een Postgres en een
quota-manager voor hún gehoste dienst. Het project eronder, `evoluhq/evolu`, heeft een eigen relay: één
@@ -42,9 +43,10 @@
**Richting gekozen door de gebruiker op 27-08-2026: we gaan voor de kale relay**, met een eigen limiter
erop en de statuspagina uit punt 2. Zijn woorden: "dat wordt beter."
Dat is een richting en nog geen besluit, want de proef hierboven is niet gedaan. Klopt de protocolversie
niet, dan valt de hele richting weg en blijft alleen de weg over waarin de limietenrij met de hand gezet
wordt. **De proef blijft dus de eerste taak**, en er wordt niets verbouwd voordat hij geslaagd is.
**Dat was een richting en geen besluit, en op 28-08-2026 is het er alsnog een geworden.** De proef is
gedaan en geslaagd: Suite op de desktop stuurde elf labels naar `docker.io/evoluhq/relay:latest` en die
kwamen aan. De protocolversie klopt dus, en daarmee vervalt de enige uitweg waarin de hele richting
omviel. Wat nu volgt is verbouwen, en de eerste vraag daarbij is de limiter uit punt 8.
Wat de richting wél nu al vastlegt, zodat het niet opnieuw uitgezocht hoeft te worden:
@@ -59,7 +61,31 @@
Umbrel staat, dus opnieuw bouwen en naar het eigen Gitea-register duwen kan gewoon. Dat is relevant
omdat de limiter dat waarschijnlijk vraagt; zie punt 8.
**Moment:** de proef is de eerste taak van de volgende sessie, vóór er iets verbouwd wordt ·
**Moment:** beslist op 28-08-2026; dit punt sluit zodra de verbouwing gedaan is · **Eigenaar:**
gebruiker
9. **Heeft de iOS-app TLS nodig, en wat kost dat?**
Nieuw op 28-08-2026. De desktop werkt over `http://` op een LAN-adres; de iOS-app doet met dezelfde
instelling geen enkele verbindingspoging. Het vermoeden van de gebruiker is dat iOS onversleuteld
verkeer weigert, en dat is plausibel: App Transport Security blokkeert standaard `http` en `ws`, en de
schakelaar voor lokaal netwerk verscheen niet, wat past bij een verbinding die het besturingssysteem
nooit heeft laten vertrekken.
**Het is een vermoeden en geen meting.** Een tweede verklaring past even goed op wat we zagen: het
synchroniseren kwam op de telefoon nooit op gang omdat de bevestiging op het apparaat ontbrak. Die twee
zijn van buitenaf niet te scheiden, en ze hebben een heel verschillende prijs.
**Want TLS is hier duur, en dat is de reden dat dit een open punt is en geen taak.** Een certificaat
voor een LAN-adres als `10.0.0.11` krijg je niet van een publieke uitgever, en een zelfondertekend
certificaat wordt door precies dezelfde iOS-controle geweigerd. De wegen die wél bestaan lopen via het
masterplan **Bereikbaarheid**: Tailscale geeft een echte naam met een geldig certificaat, en een reverse
proxy met een eigen domein is wat Electrum Gate al doet. Beide veranderen dit van "een vlag omzetten" in
een eigen ontwerpvraag.
**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
8. **Welke limiter komt er op de kale relay?**
+17 -3
View File
@@ -303,9 +303,17 @@ proef te herhalen.
#### Wat er op 28-08-2026 gemeten is, en wat nog steeds niet
**De hoofdvraag is die dag níet beantwoord.** Er is geen enkele cliënt tot een verbinding gekomen, dus over
de protocolversie is nog niets bekend. Wat er wél uit kwam is de halve dag waard, en staat hieronder zodat
het niet opnieuw uitgezocht hoeft te worden.
**De proef is geslaagd: de protocolversie klopt.** Trezor Suite op de desktop stuurde elf labels naar de
kale relay en die kwamen aan. De database in het volume groeide van 40960 naar 49152 bytes en de
tijdstempel verzette van 07:55 naar 08:38. Geen Postgres, geen quota-manager, geen eigenaarsregistratie,
en toch verkeer. Daarmee is `docker.io/evoluhq/relay:latest` bruikbaar als zelf-gehoste relay en is de
richting uit [OPEN.md](OPEN.md) punt 6 een gemeten feit in plaats van een verwachting.
**Wat daarmee níet bewezen is: de leeskant.** Er is geen tweede cliënt geweest, dus dat een ander apparaat
die labels ook terugkrijgt is nog niet gezien. Stap 7 blijft open.
De weg ernaartoe kostte een halve dag en leverde het volgende op, zodat het niet opnieuw uitgezocht hoeft
te worden.
**De relay zelf is in orde.** Hij haalt, start en luistert. De WebSocket-handshake slaagt zowel vanaf de
Umbrel zelf als vanaf een Mac elders op het netwerk, met een correcte `Sec-WebSocket-Accept`. De poort is
@@ -338,3 +346,9 @@ relay gebruiken, of het synchroniseren zelf kwam niet op gang omdat de bevestigi
ontbrak. **Dat is een eigen vraag geworden en niet langer deel van deze proef**, want anders sluiten we twee
onbekenden tegelijk uit. De proef verhuist naar de desktop-Suite op de Mac, die aantoonbaar bij de relay
kan.
**Op de Mac lukte het meteen**, en daar hoort één waarschuwing bij die de proef bijna alsnog verkeerd deed
aflopen: **de relay logt geen enkele verbinding.** Het venster blijft na de startregel stil, ook terwijl er
labels binnenkomen. "Ik zie niets gebeuren" is hier dus geen waarneming maar een eigenschap van de relay.
Alleen het volume vertelt of er iets geland is, en dat is precies waarom de nulmeting uit stap 4 niet
overgeslagen mag worden.
@@ -3,21 +3,22 @@
> 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 - de proef begonnen: relay in orde, cliënt kwam nooit aan
## 28-08-2026 - de proef is geslaagd: de kale relay werkt
De kale `evoluhq/relay:latest` draait los naast het pakket, en de serverkant is daarmee vrijgepleit: hij
haalt, start, maakt zijn eigen SQLite-database aan, en de WebSocket-handshake slaagt zowel lokaal als vanaf
een Mac elders op het netwerk. **De hoofdvraag is niet beantwoord**, want er is geen enkele cliënt tot een
verbinding gekomen: over de protocolversie weten we nog niets.
**Trezor Suite op de desktop stuurde elf labels naar `docker.io/evoluhq/relay:latest` en die kwamen aan**:
de database in het volume groeide van 40960 naar 49152 bytes. Daarmee klopt de protocolversie en is de
richting van 27-08 een gemeten feit. Geen Postgres, geen quota-manager, geen eigenaarsregistratie. De
leeskant is niet bewezen: er is geen tweede cliënt geweest.
Het testprotocol staat nu uitgeschreven in [PLAN.md](PLAN.md) §6a, en het is tijdens de sessie drie keer
gecorrigeerd op instrumenten die een **vals negatief** gaven: `docker diff` kijkt niet in een volume, een
browser of gewone `curl` krijgt van deze WS-server niets terug, en `healthy` komt uit een healthcheck die
alleen een TCP-verbinding opent. Alle drie wezen ze een probleem aan dat er niet was.
**iOS is als platform afgevallen voor deze proef.** Het veld voor de relay-URL bestaat daar wel, valideert
op `http(s)://` en onthoudt zijn waarde, maar de app doet geen enkele verbindingspoging. Dat is een eigen
vraag geworden; de proef verhuist naar de desktop-Suite op de Mac.
**iOS deed niet mee en dat is een eigen vraag geworden** (open punt 9). Het veld voor de relay-URL bestaat
daar wel, valideert op `http(s)://` en onthoudt zijn waarde, maar de app doet geen enkele
verbindingspoging. Het vermoeden is TLS; dat is niet gemeten en het is duur, want een certificaat voor een
LAN-adres bestaat niet.
**Geraakt:** alleen documentatie van dit plan. **Tests:** niet van toepassing.
+12 -12
View File
@@ -14,18 +14,18 @@
## Volgende stap
- [ ] **De kále Evolu-relay proberen, en waarschijnlijk daarnaartoe verbouwen.** Zie [OPEN.md](OPEN.md)
punt 6: uit de broncode van Suite blijkt dat de cliënt bij een eigen relay-URL géén eigenaar
registreert, terwijl Trezor's relay iedereen zonder limietenrij weigert. Het pakket dat er nu staat kan
dus in de kern niet werken. Wat nog te meten is, is of de protocolversie klopt. **Het testprotocol
staat uitgeschreven in [PLAN.md](PLAN.md) §6a**, inclusief hoe je een geslaagde van een mislukte
uitslag onderscheidt en welke valkuil daarbij hoort. **Eigenaar: gebruiker**
Stand op 28-08-2026: **de relay is in orde en de cliënt kwam nooit aan.** Image gehaald
(`sha256:dbbe0ca1…`), draait, maakt zijn database zelf aan, en de handshake slaagt vanaf de Umbrel én
vanaf een Mac op het netwerk. Op iOS gebeurt er niets: het veld bestaat en onthoudt zijn waarde, maar
de app belt niet. **Volgende poging: desktop-Suite op de Mac**, die aantoonbaar bij de relay kan. Zie
PLAN.md §6a, "Wat er op 28-08-2026 gemeten is"
- [x] **De kále Evolu-relay geprobeerd, en hij werkt (28-08-2026).** Trezor Suite op de desktop stuurde
elf labels naar `docker.io/evoluhq/relay:latest` en die kwamen aan: de database in het volume groeide
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
- [ ] **Pas daarna beslissen wat er met het huidige pakket gebeurt.** Werkt de kale relay, dan wordt dit
één container op een gepubliceerde image en vervallen de Postgres en het wachtwoord. Werkt hij niet,
dan is de limietenrij met de hand zetten de enige weg vooruit