Homes behind NATs and carrier-grade NATs make direct peer-to-peer connections unreliable, so relays are required to proxy between peers that cannot connect directly. A previous Goblins relay, prelay, was federated and stateless but lacked end-to-end encryption (E2EE), so it was intentionally discouraged. Funding from NLnet enabled building a federated, E2EE relay for the OCapN stack and specifying it for broader adoption, which is especially important for web-based peers produced by Hoot (Scheme→Wasm) where browser environments and centralised CA models complicate peer-to-peer designs.
The implementation wraps the Noise protocol as a composable netlayer so any transport or existing prelay can be layered with Noise to provide authenticated, bidirectional E2EE with perfect forward secrecy. A Guile Noise library was created to support Hoot and the Guile VM, implementing all 12 interactive patterns, testing against Noise test vectors, and using X25519, AES-GCM, and SHA-2 where available (GnuTLS on VM, SubtleCrypto in browsers). OCapN’s locator encodes a bootstrap object that enlives to create paired inbox/outbox references; the XK pattern enforces peer authentication and a single active connection between peers. The relay uses a client/server split with controller and endpoint actors and remains federated so different relay servers can interoperate while keeping no persistent user state.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.