Component · built
Two ways in: authorized, or not at all.
There is no unauthenticated surface on a running node. Every link is mutual TLS 1.3 where each side presents a self-signed certificate over its Ed25519 identity key and proves that key carries a membership certificate signed by your mesh root. No CA chain, no central directory, no "open port."
What's built
- Ed25519 node identity; node ID is the hex of the public key
- Operator-held root signing key — the only authority that can admit a peer — never lives on a node
- Membership certs bind a specific node ID and can carry an expiry; a stolen cert can't be replayed under another identity
- Handshake also checks the peer against the caller's authorized set (static peers + gossiped membership)
- Bounded dial: a peer that opens a socket but stalls the handshake can't hang the caller forever
What's still design
- Gossip-based peer discovery — today the peer list is explicit
- Certificate revocation lists (expiry is the current lever)
Covered by real two-node mTLS tests, including foreign-root rejection, expired certs, and replay under a new identity.