De demobibliotheek lezen
De demo is een statische bibliotheek die met deze site wordt geleverd: niets te installeren, geen account.
-
De handshake lezen
Elke bibliotheek zegt in één document wat ze is, welke functies ze biedt en wat haar grenzen zijn.
curl -s https://lantern.boreale.dev/demo/lantern.json -
Zijn apps weergeven
Een pagina met apps voor één platform: elk heeft zijn grootte, sha256 en het pad van zijn bestand.
curl -s https://lantern.boreale.dev/demo/v1/apps/vita/pages/1.json -
Downloaden en controleren
De SHA-256 van het bestand is die welke de app aankondigde. Een client weigert wat niet klopt.
curl -s https://lantern.boreale.dev/demo/v1/blobs/sha256/fa75492f7b78cad7ca4044e8fb548ac67bfd7fbf05242ceecb29ebe492218a0d | sha256sum
Meer om te proberen, ook bibliotheken die een client moeten laten falen: Demobibliotheek
Praten met een eigen server
Een server met accounts vraagt eerst om te koppelen. Deze aanroepen gebruiken een verzonnen adres.
-
Vinden
In een lokaal netwerk ontdekt een client hem met een UDP-datagram; met een adres leest hij de handshake op een vast pad.
curl -s https://shelf.example.org/.well-known/lantern -
Koppelen
De server antwoordt met een code die op een ander apparaat wordt ingevoerd, waar de eigenaar inlogt en goedkeurt.
curl -s -X POST https://shelf.example.org/api/lantern/v1/pairing \ -H 'Content-Type: application/json' \ -d '{"schema":1,"device":"My console","scopes":["library"]}' -
Aanroepen
Met het ontvangen token, als bearer; een apparaat dat met een sleutel koppelde ondertekent ook elk verzoek.
curl -s https://shelf.example.org/api/lantern/v1/apps?page_size=5 \ -H 'Authorization: Bearer et_…'
Het hele pad
Doorloop het stap voor stap: elke druk verlicht één stap en dimt de rest.
- Apparaat → Server: UDP 47115 {"lantern":"discover"}
- Server → Apparaat: {"lantern":"server", uid, port, base}
- Slechts een hint: vertrouwen komt van TLS en koppeling
- Apparaat → Server: GET /.well-known/lantern
- Server → Apparaat: handshake: uid, versions, platforms, features, limits
- Koppeling (§ 5.2)
- Apparaat → Server: POST /v1/pairing {device, scopes, key}
- Server → Apparaat: code KQ4M-7TXD, verify_complete, poll, interval
- Toont de code, een QR-code en de korte vingerafdruk van de sleutel
- Telefoon van de gebruiker → Server: Opent de link, meldt zich aan, vergelijkt de vingerafdruk en keurt goed
- Apparaat → Server: GET <poll> (every interval)
- Server → Apparaat: 202 … then 200 {token: et_…} or 410 gone · 429 slow_down
- Pint de sleutel van de server voor deze uid (§ 5.3)
- Daarna bij elke aanroep
- Apparaat → Server: Authorization: Bearer et_… + request signature
- Server → Apparaat: 200 · 401 · 403