Ga naar inhoud

Tussen twee servers

Iemand op jouw node en iemand op een andere node zijn, vanuit het oogpunt van de app, gewone mensen in elkaars lijst. Het meeste van wat hierna komt is voor hen onzichtbaar.

Iemand wordt gevonden via zijn handle — de naam op zijn thuisserver. Zijn node antwoordt met zijn identiteitssleutel en waar hij woont, en dat is genoeg voor de andere node om hem te bereiken.

Niemand wordt gevonden op e-mailadres tussen servers, en niemand staat in een lijst. Je moet de handle kennen.

Je kunt iemand op een andere node uitnodigen voor een verbinding, en zij jou.

De uitnodiging wordt aan hun kant klaargezet. Er wordt niets aangemaakt — geen account, geen verbinding, geen lidmaatschap — totdat zij hem zelf accepteren. Accepteren is wat alles daarna toestaat; een bericht van hun server alleen kan geen verbinding op jouw kant laten verschijnen.

Eenmaal geaccepteerd houden beide kanten de verbinding, en beide zien codewoorden die overeenkomen. Leden die zich aansluiten of vertrekken, en het verwijderen van de verbinding, worden naar de andere kant doorgegeven.

Een uitnodiging die tussen servers wordt verstuurd bereikt alleen iemand die al een account heeft. Er wordt er nooit een aangemaakt. De enige uitzondering staat beschreven onder Wat er tussen servers overgaat — een node kan de uitnodiging aanbieden aan trusted.codes zodat de persoon zich daar kan registreren, en dat staat uit tenzij de operator het aanzet.

Een code van iemand op een andere node wordt normaal geverifieerd. De woorden zelf worden niet verstuurd; een hash wel, en de node die de code bezit antwoordt.

Een eenmalige gastcode wordt precies één keer verbruikt op de node die hem bezit, hoeveel servers ook tegelijk vragen.

Bakens steken ook servergrenzen over, en worden op dezelfde manier beantwoord. Een baken is een levensteken in plaats van een eenmalige code, dus wordt hij nooit verbruikt en kan hij zo vaak worden opgelost als er om wordt gevraagd. Zegels reizen niet tussen servers; die worden via hun eigen route opgelost.

Iemand op een andere node kan jouw persoonlijke pagina of een deellink bereiken en vragen om te verbinden.

Jouw node beslist. Het eigen beleid van de link geldt, jouw toegangslijst geldt, en als de link op handmatige goedkeuring staat wordt je gevraagd, precies zoals bij iemand op je eigen server. Je limieten gelden ook. Een verzoek dat wordt geweigerd laat niets achter — geen schaduwaccount, geen wachtende rij, geen melding.

Een account verwijderen, een apparaat verwijderen

Section titled “Een account verwijderen, een apparaat verwijderen”

Wanneer iemand zijn account verwijdert, vertelt zijn node dit aan de andere, en verwijdert elke node wat hij bewaarde: lidmaatschappen, klaargezette uitnodigingen, de vastlegging van die identiteit.

Wanneer een apparaat wordt verwijderd, wordt dat aangekondigd zodat andere nodes stoppen met het accepteren van iets van de sleutel van dat apparaat. Een node legt de verwijdering vast, ook voor apparaten die hij nooit heeft gezien.

Sommige uitwisselingen zijn benoemd en herkend maar niet gebouwd. Een node die er een ontvangt weigert hem en vertelt de afzender dat het niet geïmplementeerd is; niets blijft halverwege staan en de afzender kan het later opnieuw proberen, zodra beide kanten het hebben.

Nog niet geïmplementeerd:

  • De eigendom van een verbinding overdragen aan iemand op een andere node, of hem overhandigen.
  • Sponsoring — het toekennen, intrekken of opvragen van een recht dat de ene node aan iemand op een andere geeft.
  • Aankondigen dat een identiteitssleutel is geroteerd, of dat identiteitsgegevens zijn gewijzigd.
  • De langzamere terugvalroute voor het afleveren van een share wanneer de directe route niet toepasbaar was, en het ophalen van een share die op de andere server is blijven wachten.

Elk van deze oppervlakken is een instelling op de node die het ontvangt. Een operator kan codeopzoeking, inkomende claims op deellinks, inkomende uitnodigingen, groepsuitwisselingen of ontdekking zelf uitzetten.

Uitgezet faalt de functie niet luid voor de andere kant — hij antwoordt alsof er niets was. Dat is met opzet: een node die niet meedoet moet niet verklappen wat hij achterhoudt.

Gefedereerde uitnodigingen worden per e-mail afgeleverd, dus een node zonder geconfigureerd e-mailtransport houdt die oppervlakken uit totdat er een is. Ontdekking is de uitzondering. Een node biedt dit aan vanaf het moment van installatie, en het uitzetten ervan is een aparte beslissing.