Ir al contenido

Entre dos servidores

Alguien de tu nodo y alguien de otro nodo son, desde el punto de vista de la aplicación, personas normales en la lista de cada uno. Casi todo lo que sigue es invisible para ellos.

Una persona se encuentra por su identificador — su nombre en su servidor de origen. Su nodo responde con su clave de identidad y dónde vive, y eso basta para que el otro nodo pueda dirigirse a ella.

Nadie se encuentra por correo electrónico entre servidores, y nadie aparece en listados. Tienes que saber el identificador.

Puedes invitar a alguien de otro nodo a una conexión, y esa persona puede invitarte a ti.

La invitación queda pendiente en su lado. No se crea nada — ni cuenta, ni conexión, ni membresía — hasta que la acepta ella misma. Aceptar es lo que autoriza todo lo que sigue; un mensaje de su servidor por sí solo no puede hacer que aparezca una conexión en el tuyo.

Una vez aceptada, ambos lados tienen la conexión y ambos ven códigos que coinciden. Los miembros que se unen o se van, y la conexión al eliminarse, se llevan al otro lado.

Una invitación enviada entre servidores solo llega a alguien que ya tiene una cuenta. Nunca crea una. La única excepción está descrita en Qué cruza entre servidores — un nodo puede ofrecer la invitación a trusted.codes para que la persona se registre ahí, y eso está desactivado a menos que el operador lo active.

Un código que tiene alguien de otro nodo se verifica con normalidad. No se envían las palabras; se envía un hash, y responde el nodo que es dueño del código.

Un código de invitado de un solo uso se gasta en el nodo que es dueño de él, una vez, sin importar cuántos servidores pregunten al mismo tiempo.

Los faros también cruzan servidores, y se responden de la misma manera. Un faro es una comprobación de actividad en vez de un código de un solo uso, así que nunca se gasta y se puede resolver tantas veces como se pida. Los sellos no viajan entre servidores; se resuelven por su propia vía.

Páginas personales y enlaces para compartir

Sección titulada «Páginas personales y enlaces para compartir»

Alguien de otro nodo puede llegar a tu página personal o a un enlace para compartir y pedir conectar.

Tu nodo decide. Se aplica la política propia del enlace, se aplica tu lista de permitidos, y si el enlace está configurado para aprobación manual te preguntan a ti, igual que se haría con alguien de tu propio servidor. Tus límites de cupo también se aplican. Una solicitud rechazada no deja nada atrás — ni cuenta fantasma, ni registro pendiente, ni notificación.

Cuando alguien elimina su cuenta, su nodo se lo dice a los demás, y cada uno quita lo que tenía: membresías, invitaciones pendientes, el registro de esa identidad.

Cuando se quita un dispositivo, la baja se anuncia para que los demás nodos dejen de aceptar cualquier cosa de la clave de ese dispositivo. Un nodo registra la baja incluso de dispositivos que nunca ha visto.

Algunos intercambios están reconocidos por su nombre pero no están construidos. Un nodo que recibe uno lo rechaza y le dice al remitente que no está implementado; nada queda a medias y el remitente puede reintentarlo más adelante, en cuanto ambos lados lo tengan.

Hoy no están implementados:

  • Transferir la propiedad de una conexión a alguien de otro nodo, o entregarla.
  • El patrocinio — conceder, revocar o preguntar por un derecho que un nodo le da a una persona de otro.
  • Anunciar que una clave de identidad ha rotado, o que los datos de identidad han cambiado.
  • La vía alternativa más lenta para entregar algo compartido cuando la directa no se pudo aplicar, y recoger algo compartido que quedó esperando en el otro servidor.

Cada una de estas vías es un ajuste en el nodo que la recibe. Un operador puede desactivar la búsqueda de códigos, las solicitudes entrantes en enlaces para compartir, las invitaciones entrantes, los intercambios de grupos, o el descubrimiento en sí.

Desactivada, la función no falla de forma ruidosa para el otro lado — responde como si no hubiera nada ahí. Eso es deliberado: un nodo que no participa no debe anunciar lo que está reteniendo.

Las invitaciones federadas se entregan por correo electrónico, así que un nodo sin transporte de correo configurado mantiene esas vías desactivadas hasta que lo tenga. El descubrimiento es la excepción. Un nodo lo sirve desde el momento en que se instala, y desactivarlo es una decisión aparte.