mirror of
https://github.com/jmcorgan/fips.git
synced 2026-07-30 19:46:15 +00:00
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
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 |
4. Link Layer (How Peer Connections Work)
| 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