Files
fips/docs/design
Johnathan Corgan 7d5d1adedc Redesign bloom filter parameters with mathematical justification
Analysis revealed original parameters (4KB, k=7) were oversized:
- Expected filter occupancy ~250-800 entries, not ~4,096
- Original FPR estimates in docs were incorrect (5-7x optimistic)
- d^(2K) formula overcounted by assuming mesh vs tree structure

New v1 parameters:
- Filter size: 1 KB (was 4 KB) - 75% bandwidth reduction
- Hash functions: k=5 (was 7) - optimal for 800-1600 entries
- K-hop scope: 2 (unchanged)

Added forward compatibility via size_class field:
- Power-of-2 sizes (512B, 1KB, 2KB, 4KB) enable folding
- v1 requires size_class=1; future versions can negotiate larger
- Receivers can fold larger filters down to preferred size

Updated docs:
- fips-routing.md: Part 1 rewritten with math foundation
- fips-gossip-protocol.md: §3 and Appendix A.2 wire format
- fips-architecture.md: Configuration parameters
2026-02-02 14:41:28 +00:00
..

FIPS Design Documents

Protocol design specifications and analysis for the Federated Interoperable Peering System.

Suggested Reading Order

Start with the high-level architecture, then work through session flow, routing concepts, and finally the wire-level protocol details.

1. Introduction and Overview

Document Description
fips-intro.md Protocol introduction: goals, concepts, architecture

2. Protocol Flow (How Traffic Works)

Document Description
fips-session-protocol.md End-to-end session flow, Noise IK encryption, terminology

3. Routing (How Packets Find Their Way)

Document Description
fips-routing.md Routing concepts: bloom filters, discovery, greedy routing
spanning-tree-dynamics.md Tree protocol behavior: convergence, partitions, recovery
fips-gossip-protocol.md Wire formats: TreeAnnounce, FilterAnnounce, Lookup messages
Document Description
fips-wire-protocol.md Transport layer: Noise IK, session indices, roaming, security
fips-transports.md Transport-specific: UDP, Ethernet, Tor, radio characteristics

Implementation

Document Description
fips-architecture.md Software architecture: entities, state machines, configuration
fips-tun-driver.md TUN interface driver: reader/writer threads, ICMPv6, packet flow
fips-state-machines.md Phase-based state machine pattern: peer lifecycle, transitions

Document Cross-References

                      fips-intro.md
                           │
              ┌────────────┴────────────┐
              ▼                         ▼
    fips-session-protocol.md    fips-architecture.md
              │                         │
    ┌─────────┴─────────┐               ▼
    ▼                   ▼         fips-transports.md
fips-routing.md   fips-wire-protocol.md
    │       │
    ▼       ▼
spanning-tree-dynamics.md ←→ fips-gossip-protocol.md