Fleetmesh fleetmesh

design note · comparison · Free Internetworking Peering System

FIPS Network Overlay and Fleetmesh Federation

Comparing network-layer packet routing in FIPS with application-layer relay federation and bilateral accounting in fleetmesh.

Disambiguation

This document discusses the Free Internetworking Peering System (an encrypted IPv6 packet routing mesh). For compliance with the US federal standard for cryptographic modules, see FIPS 140-3 Cryptographic Boundary Analysis.

System Comparison

FIPS functions as an encrypted network layer routing IPv6 traffic between Nostr public keys. Fleetmesh operates at the application layer, managing bilateral accounting, signed bandwidth budgets, and mutual relay federation.

Both protocols share Nostr relays for discovery rendezvous, broadcast endpoint descriptors with NIP-40 expiration, and route encrypted signaling via kind 21059 gift wraps. Event kinds remain non-colliding. A FIPS transport adapter in fleetmesh allows nodes to exchange replication traffic over encrypted FIPS overlay paths without external IP dependencies.

Architecture & Scope

Overlay Routing and Relay Federation

FIPS and fleetmesh operate at distinct architectural layers: FIPS provides encrypted multi-hop IPv6 packet routing, while fleetmesh provides application-layer accounting and rate enforcement between sovereign relays.

FIPS

Self-organizing encrypted overlay routing IPv6 packets between Nostr public keys across multi-hop paths.

Author
Johnathan Corgan (github.com/jmcorgan/fips)
Status
v0.5.0 / v0.6.0-dev; public multi-hop routing testnet
Form
Rust daemon (fipsd), fipsctl, fipstop, and fips-gateway
Platform
Debian, Arch, NixOS, macOS, OpenWrt, FreeBSD, Windows; Android crate
Identity
Single secp256k1 keypair: npub serves as routable address and Noise static key
Transport
Best-effort datagrams; hop-by-hop and end-to-end encrypted
Licence
MIT

fleetmesh

Bilateral federation and accounting protocol for Nostr relays: published budgets, self-metered receipts, and range synchronization.

Author
fleetmesh.org (open specification and reference implementation)
Status
Alpha specification & reference node (node/meshnode)
Form
Asynchronous Python daemon, typed contracts, 33-command CLI, and formal JSON Schemas
Platform
Linux servers (systemd units meshnode.service and meshwatch.service), macOS, containers
Identity
A did:nostr DID binding secp256k1 (identity), X25519 (agreement), and Ed25519 (transport)
Transport
Nostr events, budgets, receipt chains, Negentropy range sets; transport ladder (wss, gift-wrap, iroh, libp2p)
Licence
CC0 1.0

Topology differs across both designs: FIPS constructs multi-hop routing graphs where intermediaries re-encrypt and forward raw datagrams; fleetmesh establishes bilateral peering graphs where relays enforce rate budgets directly, restricting transit paths to three hops for clear accounting attribution.

Same keys, different layers

Where they would sit in one stack

FIPS link · network · session fleetmesh application transports UDP · TCP · Ethernet · Tor · Nym · BLE FMP — mesh protocol Noise IK per link · spanning tree · bloom filters FSP — session protocol Noise XK end to end · O(1) index dispatch IPv6 adapter · native API fd00::/8 · <npub>.fips · npub:port anything IPv6: ssh, http… a nostr relay on ws://<npub>.fips transport ladder iroh · libp2p · wss · gift wrap · fips? control plane · replication DIDComm v2 · NIP-77 · delivery envelope ≤ 3 hops grants · receipts · ladder kind 30801 · budget/1.0 · S0–S4 · kind 30802 compute market kind 30810 asks · WASI · Lightning bridges out to ordinary clients NIP-66 · NIP-32 · NIP-90 · NIP-61 the join FIPS carries; fleetmesh accounts one secp256k1 keypair · nostr relays as rendezvous · NIP-59 on kind 21059 · kind 10050
The stacks do not overlap vertically. What they share is the floor: the same kind of key, the same relays used as a signalling channel, and the same two reused NIPs for encrypted control traffic. The dashed box is where a fleetmesh node would live if it ran over FIPS, and the arrow is the one integration this note recommends.

Side by side

Fourteen axes, none of them a tie

FIPS v0.5.0 / v0.6.0-dev against fleetmesh/0.1-draft
axisFIPSfleetmesh
purposereach any key from any key, over any mediummake relays accountable to the relays they peer with
layerlink, network and session; an IPv6 overlay aboveapplication; assumes a carrier and names a ladder of them
peer identityone secp256k1 key: npub, Noise static key, and node_addr = SHA-256(pubkey)[0:16]a did:nostr DID; three keys, two of them bound only by a signed kind 11801 descriptor
what movesdatagrams, best effort; TCP-over-TCP explicitly avoidednostr events, budgets, receipts, findings; never IPs or user identifiers
routingspanning-tree coordinates, split-horizon bloom filters, greedy next hop, three explicit error signalsnone. A delivery envelope carries a signed hop path, capped at three, for charging rather than for reachability
encryptionNoise IK on every link and Noise XK end to end, both always, with hitless rekeyDIDComm v2 ECDH-1PU to the agreement key; NIP-44 for grants and gift wraps; transport security is the rung's own
transportsUDP, TCP, raw Ethernet, Tor, Nym, BLE — all implemented; radio and serial plannediroh, libp2p, wss/https and gift wrap as built-ins; tor, i2p, nym, webrtc, ble and lora as adapter rows with nothing behind them
discoverystatic peers[], mDNS on the LAN, and opt-in nostr adverts (kind 37195) with open discovery under an admission budgetkind 11801 on local node relays, a gossipsub topic, and a peering/1.0 proposal to peers with published descriptors
NAT traversalSTUN plus a NIP-59 offer/answer exchange and a coordinated UDP punch, shipped and documented as a generic protocoldelegated: iroh relay-assisted hole punching, libp2p DCUtR, and DIDComm mediation for leaves
admissiondiscretionary peering, peers.allow / peers.deny, handshake rate limits; identity is not authorisationa grant at probation ceilings, NIP-13 proof of work on the descriptor, AIMD growth through clean windows
abuse controlper-npub and global offer caps; acknowledged as defeatable by throwaway npubspublished budgets, signed receipt chains, a severity ladder fixed before the breach, adverse-only reports with evidence
reputationnone. The word appears once, describing what gateway clients inheritbilateral standing per grant; readers weight reports by local tier policy; nobody imports external banlists
privacy posturetransit nodes see node_addr pairs; onion routing rejected for the sake of per-hop error feedbackgrants are blinded and encrypted so the peering graph is not public; clean windows publish nothing
phonesAndroid embeddable crate today, no packaged app; iOS absentthe leaf class: one WebSocket, a bounded store, no p2p stack, mediated by an anchor. Designed, not built
versioningsemver releases; a versioned wire format is on the roadmap; next branch stages breaking changesa version is a digest over the machine-readable schema, declared per node; there is no release authority
governancea maintainer, a repository, MITa namespace, CC0, and a written trigger for revisiting: a second implementation or a third independent anchor

Signaling and Primitives

Shared Nostr Rendezvous and Protocol Overlap

Both protocols utilize Nostr relays for connection discovery and session establishment. Each node publishes signed, expiring connection descriptors with NIP-40 expiration. Private handshakes circulate as NIP-44 payloads encased in ephemeral kind 21059 gift wraps, routed using recipient kind 10050 inbox relay lists. All events are signed with the primary node identity key.

Event kinds utilized across both protocols
kindFIPSfleetmeshcollision?
37195overlay advert, d = fips-overlay-v1, NIP-40 expiry, endpoints in JSON contentnot usednone
11801–11803not usednode descriptor, revocation, compute offernone
21801–21802not usedheartbeat, telemetrynone
30801–30811not usedgrant envelope, report, coverage, ask, job receiptnone
21059traversal offer and answer, gift-wrappedDIDComm v2 messages, gift-wrapped; default control transportshared
1059not usedDIDComm store-and-forward; gated by recipient kind 10050none
10050published on startup; read to route offersread to gate kind 1059 replication and route wrapssame NIP, identical usage

Kind 21059 serves as an open container under NIP-59 for ephemeral messaging. Nodes ignore unrecognized inner rumor payloads silently. A FIPS daemon ignores DIDComm payloads addressed to its key, and a fleetmesh node ignores traversal offers, preventing parse errors.

Descriptor Structuring

FIPS publishes network endpoints within JSON payloads under kind 37195, indexed by author npub. Fleetmesh indexes endpoints using structured tags in kind 11801 alongside node class, protocol digests, and subordinate agreement and transport keys, resolving into a standard DID document. FIPS uses npub routing directly, requiring a single key pair where fleetmesh binds three.

Transport Capabilities

Multi-Carrier Routing in FIPS

FIPS implements unified routing across Tor, Nym, Bluetooth Low Energy (BLE), raw Ethernet, and 802.11s mesh links. Integrating a FIPS transport adapter in fleetmesh provides direct access to these physical and overlay carriers through a single daemon.

Economic Accounting

Resource Authorization and Rate Budgets

FIPS authenticates source packet keys without determining resource authorizations. Fleetmesh provides explicit bilateral capacity allocation: nodes establish rate limits under signed grants, verify consumption using chained receipts, and apply deterministic remedies upon breach.

01
Reputation accountingFleetmesh kind 30802 reports record signed evidence, allowing peers to apply subjective trust weights to dispute filings.
02
Bandwidth allocationFleetmesh grants establish explicit per-peer quotas verified via signed receipt trails.
03
Key lifecycleFleetmesh kind 11802 revocation announcements provide formal key succession paths and scheduled rotation rules for encryption keys.
04
Peering confidentialityBilateral grants remain encrypted and addressable via blinded coordinates, keeping peering graphs private.
05
Perimeter separationFleetmesh gateway daemons isolate internal relay backends from untrusted external traffic.

Interconnectivity

Integration Architecture

A fleetmesh node operates as a standard Nostr relay and can deploy within a FIPS overlay container reachable at ws://<npub>.fips:80. FIPS mesh clients connect using author public keys without DNS dependencies or TLS certificate management, since the underlying FIPS transport provides mutual authentication and encryption.

Adding a fips transport scheme allows fleetmesh nodes to address peers directly via public key:

["endpoint", "fips", "npub1…", "1"]        // Peer addressed directly by Nostr identity
["endpoint", "iroh", "<ed25519>", "2"]
["endpoint", "wss",  "wss://relay.example.org", "9"]

Architectural Boundaries

Transport integration provides link reachability. Fleetmesh maintains independent three-hop accounting limits and bilateral rate contracts regardless of underlying packet routing paths.

Project Details

Timelines and Licences

Implementation Plan

Potential Specification Extensions

1
Register fips transport schemeAdd fips as an adapter in schema/constants.json, accepting an npub endpoint value.
2
Document gift-wrap toleranceSpecify in the control plane that nodes must discard unrecognized rumor payloads received inside kind 21059 without filing error reports.
3
Address metadata retentionClarify that peer addresses derived from public keys fall under local connection confidentiality rules.
4
Record kind 37195 reservationDocument kind 37195 in the registry as allocated to FIPS overlay advertisements to prevent future assignment conflicts.

Design reference for § Transports, § Discovery, and § Two networks. For normative specifications, see § Transport ladder and § Node discovery.