|
| 1 | +<!-- SPDX-License-Identifier: PMPL-1.0-or-later --> |
| 2 | +# TOPOLOGY.md - Project Wharf |
| 3 | + |
| 4 | +## System Architecture |
| 5 | + |
| 6 | +``` |
| 7 | + THE WHARF (Offline Controller) |
| 8 | + +---------------------------------+ |
| 9 | + | wharf-cli | |
| 10 | + | +-----------+ +-----------+ | |
| 11 | + | | moor.rs | | fleet.rs | | |
| 12 | + | | (keypair | | (yacht | | |
| 13 | + | | persist) | | config) | | |
| 14 | + | +-----+-----+ +-----+-----+ | |
| 15 | + | | | | |
| 16 | + | +-----v--------------v-----+ | |
| 17 | + | | wharf-core | | |
| 18 | + | | crypto | integrity | sync | | |
| 19 | + | | mooring_client | config | | |
| 20 | + | | db_policy | fleet | | |
| 21 | + | +-------------+-------------+ | |
| 22 | + +-----------------|--+--------------+ |
| 23 | + | | |
| 24 | + Mooring Protocol (HTTP) | | rsync (SSH) |
| 25 | + Ed448+ML-DSA-87 signed | | |
| 26 | + | | |
| 27 | + +-----------------|--+--------------+ |
| 28 | + | THE YACHT (Online Runtime) | |
| 29 | + | yacht-agent | |
| 30 | + | +-----------+ +-------------+ | |
| 31 | + | | Mooring | | DB Proxy | | |
| 32 | + | | API | | (sqlparser | | |
| 33 | + | | (init/ | | AST filter)| | |
| 34 | + | | verify/ | +------+------+ | |
| 35 | + | | commit) | | | |
| 36 | + | +-----+-----+ +------v------+ | |
| 37 | + | | | Shadow DB | | |
| 38 | + | +-----v-----+ +-------------+ | |
| 39 | + | | Integrity | | |
| 40 | + | | (BLAKE3) | +-------------+ | |
| 41 | + | +-----------+ | Firewall | | |
| 42 | + | | eBPF/nftab | | |
| 43 | + | +-----------+ +-------------+ | |
| 44 | + | | Metrics | | |
| 45 | + | | /metrics | +-------------+ | |
| 46 | + | | /stats | | Nebula Mesh | | |
| 47 | + | +-----------+ +-------------+ | |
| 48 | + +----------------------------------+ |
| 49 | +
|
| 50 | + +-----------------------------------------------------------+ |
| 51 | + | wharf-ebpf (optional, excluded from default build) | |
| 52 | + | XDP kernel program + userspace loader (aya 0.12) | |
| 53 | + +-----------------------------------------------------------+ |
| 54 | +``` |
| 55 | + |
| 56 | +## Completion Dashboard |
| 57 | + |
| 58 | +| Component | Progress | Status | |
| 59 | +|------------------------|------------------------------|--------| |
| 60 | +| **wharf-core** | `[██████████]` 100% | Complete | |
| 61 | +| - crypto (Ed448+ML-DSA)| `[██████████]` 100% | Hybrid sigs, HKDF, XChaCha20, Argon2id, keypair serialization | |
| 62 | +| - db_policy (AST) | `[██████████]` 100% | sqlparser 0.39, policy engine | |
| 63 | +| - integrity (BLAKE3) | `[██████████]` 100% | Manifest gen/verify, remote SSH verify | |
| 64 | +| - mooring protocol | `[██████████]` 100% | Init/verify/commit/abort, canonical signing | |
| 65 | +| - mooring_client | `[██████████]` 100% | HTTP client with timeouts + pooling | |
| 66 | +| - fleet/sync/config | `[██████████]` 100% | Fleet TOML, rsync, config hierarchy | |
| 67 | +| **wharf-cli** | `[█████████░]` 90% | Near-complete | |
| 68 | +| - moor operations | `[██████████]` 100% | Full mooring flow, persistent keypairs | |
| 69 | +| - fleet management | `[██████████]` 100% | Add/remove/list yachts | |
| 70 | +| - integrity audit | `[████████░░]` 80% | Local + remote SSH, API mode pending | |
| 71 | +| **yacht-agent** | `[█████████░]` 90% | Near-complete | |
| 72 | +| - DB proxy | `[██████████]` 100% | MySQL + PostgreSQL wire protocol | |
| 73 | +| - mooring API | `[██████████]` 100% | Init/verify/commit with sig verification | |
| 74 | +| - integrity verify | `[██████████]` 100% | BLAKE3 manifest verification wired | |
| 75 | +| - firewall (nftables) | `[██████████]` 100% | Rule generation, validation, runtime updates | |
| 76 | +| - metrics/stats | `[██████████]` 100% | Prometheus + JSON with real counters | |
| 77 | +| - keypair persistence | `[██████████]` 100% | /etc/wharf/keys/yacht.key | |
| 78 | +| **wharf-ebpf** | `[████████░░]` 80% | XDP program + loader, needs production testing | |
| 79 | +| **nebula.rs** | `[██████████]` 100% | CA, cert signing, IP allocation, revocation | |
| 80 | +| **Overall** | `[█████████░]` 90% | ed448 audit pending | |
| 81 | + |
| 82 | +## Key Dependencies |
| 83 | + |
| 84 | +| Dependency | Version | Purpose | |
| 85 | +|------------|---------|---------| |
| 86 | +| ed448-goldilocks | 0.14.0-pre.10 | Classical hybrid signature component (UNAUDITED) | |
| 87 | +| pqcrypto-mldsa | 0.1 | Post-quantum ML-DSA-87 signatures | |
| 88 | +| sqlparser | 0.39 | AST-based SQL query analysis | |
| 89 | +| axum | 0.7 | Yacht agent HTTP API | |
| 90 | +| reqwest | 0.12 | Mooring HTTP client | |
| 91 | +| blake3 | 1.5 | File integrity hashing | |
| 92 | +| chacha20poly1305 | 0.10 | Symmetric encryption | |
| 93 | +| aya | 0.12 | eBPF userspace loader | |
| 94 | +| tokio | 1.x | Async runtime | |
| 95 | +| clap | 4.4 | CLI argument parsing | |
0 commit comments