docs: update status with mesh infrastructure progress
Completed in this session: - KeyPackage distribution over mesh (announce-based) - Transport capability negotiation - MLS-Lite to full MLS upgrade path Updated mesh-protocol-gaps.md to reflect completed items.
This commit is contained in:
@@ -13,9 +13,10 @@ QuicProChat has strong cryptography (MLS, PQ-KEM) but **real gaps** in the mesh
|
||||
|
||||
| Gap | Severity | Status |
|
||||
|-----|----------|--------|
|
||||
| MLS overhead too large for LoRa | **Critical** | **MEASURED** — see actual sizes below |
|
||||
| MLS overhead too large for LoRa | **Critical** | **MEASURED** — classical MLS viable! |
|
||||
| No lightweight messaging mode | **High** | **DONE** — MLS-Lite implemented |
|
||||
| KeyPackage distribution over mesh | **High** | Not solved |
|
||||
| KeyPackage distribution over mesh | **High** | **DONE** — announce-based with cache |
|
||||
| Transport capability negotiation | **High** | **DONE** — auto-selects crypto mode |
|
||||
| Announce/routing not battle-tested | **Medium** | S3-S4 done, needs real-world test |
|
||||
| No DTN bundle protocol integration | **Medium** | Priority field added |
|
||||
| Battery/duty-cycle optimization | **Medium** | Basic tracker exists |
|
||||
@@ -167,10 +168,12 @@ KeyPackage propagation:
|
||||
|
||||
### Action Items
|
||||
|
||||
- [ ] **Extend MeshAnnounce** with optional `keypackage_hash` field
|
||||
- [ ] **Add KeyPackage request/response** to mesh protocol
|
||||
- [ ] **Implement KeyPackage cache** in MeshStore (separate from message queue)
|
||||
- [x] **Extend MeshAnnounce** with optional `keypackage_hash` field — 8-byte truncated hash
|
||||
- [x] **Add KeyPackage request/response** to mesh protocol — `mesh_protocol.rs`
|
||||
- [x] **Implement KeyPackage cache** — `keypackage_cache.rs` (separate from MeshStore)
|
||||
- [ ] **Design KeyPackage refresh protocol** for mesh-only scenarios
|
||||
- [x] **Add transport capability negotiation** — `transport.rs` TransportCapability enum
|
||||
- [x] **Add MLS-Lite upgrade path** — `crypto_negotiation.rs`
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -47,9 +47,23 @@ New `fapp_router.rs` module:
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-30 — Implementation Sprint (S4-S5 + MLS-Lite)
|
||||
## 2026-03-30 — Mesh Protocol Infrastructure Sprint
|
||||
|
||||
### Completed
|
||||
### Completed (Latest)
|
||||
- **KeyPackage distribution** — `keypackage_cache.rs` + `mesh_protocol.rs`
|
||||
- MeshAnnounce extended with `keypackage_hash` field
|
||||
- KeyPackageRequest/Response/Unavailable messages
|
||||
- KeyPackageCache with TTL, per-address limits, LRU eviction
|
||||
- **Transport capability negotiation** — `transport.rs` TransportCapability
|
||||
- Auto-classification: Unconstrained/Medium/Constrained/SeverelyConstrained
|
||||
- CryptoMode recommendation per capability level
|
||||
- TransportManager.recommended_crypto(), select_for_size()
|
||||
- **MLS-Lite upgrade path** — `crypto_negotiation.rs`
|
||||
- GroupCryptoState tracks current mode
|
||||
- MlsLiteBootstrap derives MLS-Lite keys from MLS epoch secret
|
||||
- Enables same group to use full MLS on WiFi, MLS-Lite on LoRa
|
||||
|
||||
### Previously Completed
|
||||
- **S4: Multi-hop routing** — `MeshRouter` with `send()`, `handle_incoming()`, `forward()`, `drain_store_for()`
|
||||
- **S4: REPL commands** — `/mesh trace <address>` and `/mesh stats`
|
||||
- **S5: Truncated addresses** — `MeshEnvelopeV2` with 16-byte addresses (~18% smaller)
|
||||
|
||||
Reference in New Issue
Block a user