Add detailed outline and references for decentralized music streaming thesis

This commit is contained in:
2026-07-22 01:31:08 +02:00
parent 6cac5e7c28
commit 7e6bdc7a86
4 changed files with 252 additions and 21 deletions

View File

@@ -20,9 +20,9 @@
### 2.2 Peer-to-Peer Content Distribution
- Overview of P2P network topologies
- BitTorrent protocol
- WebTorrent (BitTorrent over WebRTC)
- IPFS and content-addressed storage
- Comparison of approaches and rationale for chosen solution
- iroh: QUIC-based content distribution with byte range requests
- Comparison of approaches and rationale for choosing iroh
### 2.3 Decentralized Systems Architecture
- Hexagonal architecture (Ports and Adapters)
@@ -39,7 +39,7 @@
- Extending ActivityStreams 2.0 with a custom JSON-LD namespace
- Audio object design (metadata fields, duration, attribution)
- Album as OrderedCollection
- Embedding content addresses (magnet URI / CID) in AP objects
- Embedding content addresses (BLAKE3 hash) in AP objects
- Interoperability considerations with generic AP clients
### 3.3 Federation Model
@@ -51,8 +51,10 @@
### 3.4 Content Distribution Model
- Replication policies: eager vs on-demand
- Instance as a stable seeding node
- HTTP streaming proxy for browser and mobile clients
- Native desktop/TUI clients as full P2P peers
- iroh-blobs for content-addressed audio transfer
- Byte range requests for streaming and seeking
- Native desktop clients as full P2P peers
- NAT traversal via QUIC hole punching and relay fallback
- Storage policy configuration
### 3.5 Architecture
@@ -64,12 +66,11 @@
## 4. Implementation
### 4.1 Technology Stack
- Rust backend (Axum, SQLx, activitypub_federation crate)
- Rust backend (Axum, SQLx, k-ap federation crate)
- PostgreSQL
- NATS for async event fan-out
- Next.js web client
- TUI client (ratatui + symphonia/rodio)
- P2P library choice and rationale
- iroh and iroh-blobs for P2P content distribution
- Native desktop client (Rust GUI framework + symphonia/rodio for audio)
### 4.2 Backend
- k-ap crate (reusable federation layer)
@@ -77,14 +78,11 @@
- P2P transport adapter
- Federation worker
### 4.3 Web Client
- Core user flows (upload, discover, follow, play)
- HTTP streaming from instance proxy
### 4.4 TUI Client
- ratatui interface
- Audio playback pipeline
- Direct P2P swarm participation
### 4.3 Desktop Client
- Rust GUI framework
- Audio playback pipeline (symphonia/rodio)
- Direct P2P participation via iroh
- Byte range streaming and seeking
## 5. Evaluation
### 5.1 Correctness