From b4bcd1bb2faeedaad920ac7e7938db8637856af9 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Mon, 10 Aug 2026 00:50:27 +0200 Subject: docs: add demo-v2 NAT findings to CLAUDE.md Port-Restricted Cone SFR, punch_nat() mechanism, 12.7s handshake note. Co-Authored-By: Claude Sonnet 4.6 (1M context) --- CLAUDE.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'CLAUDE.md') diff --git a/CLAUDE.md b/CLAUDE.md index 32c4e8b..c2895f5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -101,6 +101,18 @@ Scope: `hub`, `node`, `common`, or omitted for cross-cutting - Argon2id `memory_cost`: currently 65536 (64 MB, 78ms) — increase to 262144 (256 MB) before prod to target ~500ms on typical home server hardware. Implement a `calibrate` CLI command. +## NAT traversal — résultats empiriques (demo-v2) + +SFR résidentiel Fedora 44 → meshbay.org OVH VPS : +- **IPv6** : adresse publique présente MAIS entrant bloqué par la box → skippé +- **NAT type** : **Port-Restricted Cone** (pas Address-Restricted comme supposé en Spike 4) +- **Mécanisme validé** : `QuicChunkServer.punch_nat(peer_ip, peer_port)` envoie la probe + depuis le socket QUIC interne (`_transport.sendto()`). Le client DOIT se connecter + depuis le même port (local_port=QUIC_PORT dans QuicChunkClient). +- **UPnP** : désactivé sur box SFR → skippé +- **Handshake QUIC** : 12.7s (demo) → < 500ms attendu en prod (gap probe↔connect réduit + 0-RTT) +- **Scripts** : `QE/demo-v2/` — run_node.py / download.py / nat.py / setup_demo.py + ## Key modules — où trouver quoi | Besoin | Module | Fichier | @@ -112,6 +124,8 @@ Scope: `hub`, `node`, `common`, or omitted for cross-cutting | Double Ratchet (chat) | `meshbay_common.ratchet` | `ratchet.py` | | AES-GCM (navigateur) | `meshbay_common.webcrypto` | `webcrypto.py` + `static/crypto.js` | | Keystore node | `meshbay_node.keystore` | `keystore.py` | +| NAT traversal | `QE/demo-v2/nat.py` | non versionné — résultats dans devel-phases.md | +| QUIC NAT punch | `meshbay_node.transport.quic_server` | `QuicChunkServer.punch_nat()` | | Scripts de démo opérationnels | — | `QE/demo-v1/*.py` (non versionné) | ## meshbay.org server (état cible) -- cgit v1.2.3