diff options
| -rw-r--r-- | CLAUDE.md | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -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) |