Skip to content

Concepts

Vocabulary

The words are load-bearing. Several confusions in the design surfaced purely because two different things shared a name, so the terms below are chosen to stay distinct. The retired term channel is gone entirely — it blurred the machine, the endpoint, and the credential into one word.

The nouns

Term Definition
Cell A node: one physical machine, running Barid. Binds dozens of IPv6 addresses at once.
Address One derived, ephemeral IPv6 endpoint on a cell. Not separately credentialed — all of a cell's addresses derive from its cell secret.
Cell secret The credential a client holds, one per cell. Derives every address on that cell. Rotating it revokes the client's access to the whole cell.
Barid The server software running on a cell. Named for the caliphal courier-and-post network.
Root key The single offline trust anchor. Signs the manifest and all server certificates.
Manifest A root-signed, versioned document describing the network: which cells exist, their parameters, their certificate fingerprints.

The derivation terms

An address is computed, not assigned. Two independent inputs feed the computation, and they are deliberately named apart because both were once called "index":

Term Meaning Comes from
Bucket Which time window — "hour 12345, counting from the epoch." The clock (time buckets)
Slot Which of a cell's concurrent addresses — "the 7th one." Enumeration (address derivation)

They form a grid. At any instant a cell has window_size × slot_count addresses live. See address derivation for the full picture.

The relationships that matter

A client holds N cell secrets, meaning N distinct machines. Because a cell is a machine, the redundancy a client relies on is structural — its credentials cannot accidentally end up on the same box. This is not enforced by assignment logic; it falls out of the vocabulary. See blast radius.

Revocation is cell-granular. Two operations are easy to confuse and must be kept apart:

  • Unbinding an address is a server-side availability action. The client can still derive it — it simply finds nothing listening. This is not revocation.
  • Rotating the cell secret is real revocation. It invalidates every address that secret ever produced, instantly, and drops the client from N cells to N−1.

A derived address is a rendezvous point, not a credential. Anyone who learns today's address may connect to it — and will fail the handshake, because authentication chains to the root key and has nothing to do with how the endpoint was found. Addresses buy scan-resistance and unlinkability, never authentication.

Naming is settled

Cell = machine. Address = endpoint. Cell secret = credential. Barid = the software. Bucket = time index. Slot = address index. "Channel" is retired.