AKI Node — Server/Software (Konzeptphase)
Die Software, die aus "Nachbarschafts-LAN" ein gepooltes Bandbreitennetz macht. Sprache: Rust. Status: Konzeptphase — noch nichts implementiert.
Zielbild
Pro Haushalt läuft ein AKI-Node (Mini-PC oder Einplatinenrechner), der:
- Das Nachbarschafts-Overlay bildet (Yggdrasil als erste Wahl)
- Seinen eigenen ISP-Uplink als Exit anbietet (opt-in, Kontingent)
- Downloads über alle verfügbaren Exits segmentiert und parallel lädt
- Traffic fair zwischen allen Teilnehmenden aufteilt (max-min Fairness)
- Einen geteilten Nachbarschafts-Cache bedient (lancache-Prinzip)
- (später)
freenet-coreals Sidecar laufen lässt für verteilte Inhalte/Apps
Geplante Komponenten
| Crate/Binary | Zweck |
|---|---|
aki-node |
Daemon: Discovery, Peering, Metriken, Onboarding |
aki-exit |
Exit-Dienst: kontingentierter Uplink-Proxy für Nachbarn (verschlüsselt) |
aki-fetch |
Segmentierter Multi-Exit-Downloader (HTTP-API + CLI) |
aki-fair |
Fairness-Scheduler (max-min, Exit-Kontingente, Karma) |
aki-cache |
Transparenter Nachbarschafts-Cache (DNS-basiert) |
aki-freenet |
Integration von freenet-core (Contracts für Nachbarschafts-Inhalte) |
MVP (Phase 2 der Roadmap)
Kleinster brauchbarer Schnitt:
- Zwei Nodes peeren (Yggdrasil)
- Ein Download wird über beide Uplinks gleichzeitig per HTTP-Range gesplittet, reassembliert, hash-verifiziert
- Fair-Share: zwei gleichzeitige Downloads teilen sich die Gesamt- kapazität fair
- Exit opt-in per Konfig-Datei; Kill-Switch (Exit aus = Node nutzt nur den eigenen Uplink)
Nicht-Ziele (bewusst)
- Keine Bezahl-/Krypto-Infrastruktur (Kontrast: Althea)
- Keine Anonymitätsversprechen (Freenet selbst bietet keine; wir auch nicht)
- Kein Zentralserver, keine zentrale Datensammlung
- Kein "Piracy as a Feature" (siehe
documentation/ideen/recht.md)
Technologiestack (Vorschlag)
- Rust (tokio),
axumfür APIs - Yggdrasil als Overlay (später evtl. Babel + WireGuard)
freenet-stdlib/ WebSocket-API für Freenet-Integration- HTTP Range Requests + SHA-256-Verifizierung für Segmentierung
- Lizenz: AGPL-3.0 (freenet-core ist AGPL-3.0; Nutzung über stdlib/API erlaubt trotzdem freie Wahl — wir wählen aus Ethos-Gründen AGPL)