Short records of the decisions that shaped this project, and the evidence behind them. Each is one page: context, decision, consequences, and what would change our mind.
Most of these rest on research that would otherwise be lost — measured throughput figures, NAT prevalence data, source-level findings in nwaku. Where a number appears, its source is named.
| # | Decision | Status |
|---|---|---|
| 001 | WireGuard for the data plane, not libp2p streams | accepted |
| 002 | Userspace WireGuard, not the kernel module | accepted |
| 003 | Waku as rendezvous, not a live control plane | accepted |
| 004 | The public logos.dev fleet, not our own cluster | accepted |
| 005 | Overlay addresses derived from keys, no IPAM | accepted |
| 006 | Rotating rendezvous topics on a stable shard | accepted |
| 007 | Separate device and WireGuard keys | accepted |
| 008 | A bearer network key for v1 | accepted, temporary |
| 009 | Probe candidates before setting a WireGuard endpoint | accepted |
| 010 | Ship a container image, not a binary | accepted |
| 011 | No mixnet in the data path | accepted |
| 012 | Who runs the relay (you may not need a VPS) | accepted |
| 013 | Name resolution: hosts file now, DNS server next | accepted |
| 014 | Relay discovery: a flag on the announce, not a separate message | accepted |
| 015 | Multiple meshes in one daemon | accepted |
| 016 | Android reuses the Go core | accepted |
| 017 | Invite tokens | accepted, built |
| 018 | Credentials instead of a shared key | accepted, mostly built |
| 019 | An address per service | proposed; the name router is built |
| 020 | Membership is a seam | accepted |
| 021 | A synthetic IPv4 address per peer | accepted; translator built |
| 022 | A Keycard for the admin key | proposed; seam built, card blocked on a key-type decision |
| 023 | Announcing services | accepted; built |
| 024 | Ask the router for a way in | accepted; built and proven |
| 025 | Control from a desktop app | accepted; settings built, admission deliberately not |
| 026 | Announce what is bound to the mesh address | accepted; built, off by default |
| 027 | Punch through the relay we already have | proposed; every part exists except the coordination |
| 028 | When the fleet turns on RLN | proposed; nothing to build yet, two questions to ask |