FIPS (Free Internetworking Peering System) is a self-organizing mesh networking protocol that uses Nostr-style secp256k1 keypairs as node identities.

How It Works

FIPS aims to make peer networking work without central servers or certificate authorities. Nodes discover neighbors, build routing state, and forward packets using only local knowledge.

The design combines a spanning tree with bloom filter reachability data. Each node gets coordinates relative to the tree, then routes greedily toward the destination. If greedy routing fails, the tree still provides a fallback path.

Two encryption layers protect traffic. Link-layer encryption (Noise IK pattern) secures hop-by-hop communication between neighbors. Session-layer encryption (Noise XK pattern) provides end-to-end protection against intermediate routers.

Why It Matters

FIPS reuses the same key model Nostr developers already understand, but applies it to packet routing instead of social events. That gives it a simple identity story: the network identity is the cryptographic key, not an IP allocation or certificate chain.

The transport-agnostic design is also important. The same routing and identity model can, in principle, run over UDP, Ethernet, Bluetooth, or LoRa, which makes FIPS interesting for hostile or unreliable network environments.

Implementation Status

The Rust implementation includes UDP transport and bloom-filter-based discovery. fips2go 0.7.0 added optional Nostr-announced peer discovery and fallback bootstrap peers. fips-pub-domains is testing Nostr-signed public-domain claims, DNSSEC proofs, and mesh-only lookups. These are application and naming integrations; they do not make FIPS a Nostr relay replacement.


Primary sources:

Mentioned in:

See also: