QuDAG Network
P2P networking layer with anonymous routing and dark addressing for the QuDAG protocol.
Features
- Anonymous Routing: Multi-hop onion routing with ML-KEM encryption
- Dark Addressing: Decentralized
.darkdomain system - Traffic Obfuscation: ChaCha20Poly1305 traffic disguising
- NAT Traversal: STUN/TURN/UPnP support for firewall penetration
- Peer Discovery: Kademlia DHT-based peer discovery
- LibP2P Integration: Production-ready P2P networking stack
Quick Start
Add to your Cargo.toml:
[]
= "0.1"
Examples
Basic P2P Node
use ;
async
Dark Domain Resolution
use ;
async
Onion Routing
use ;
async
NAT Traversal
use ;
async
Architecture
Core Components
- P2P Node: Main networking coordinator
- Onion Router: Anonymous multi-hop routing
- Dark Resolver: Decentralized domain name system
- NAT Traversal: Firewall and NAT penetration
- Peer Discovery: Kademlia DHT for peer finding
- Traffic Obfuscation: Message disguising and padding
Network Stack
┌─────────────────────┐
│ Application │
├─────────────────────┤
│ QuDAG Protocol │
├─────────────────────┤
│ Onion Routing │
├─────────────────────┤
│ LibP2P Transport │
├─────────────────────┤
│ TCP/QUIC/WebSocket│
└─────────────────────┘
Dark Addressing System
Create your own .dark domains:
use DarkResolver;
// Register domains
resolver.register_domain.await?;
resolver.register_domain.await?;
// Create temporary shadow addresses
let shadow = resolver.create_shadow_address.await?; // 1 hour TTL
println!;
Configuration
use NetworkConfig;
use Duration;
let config = NetworkConfig ;
Security Features
- Quantum-Resistant Encryption: ML-KEM for session keys
- Traffic Analysis Resistance: Padding and timing obfuscation
- Metadata Protection: Onion routing hides communication patterns
- Forward Secrecy: Session keys are regularly rotated
Features
optimizations: Enable performance optimizationsmessage-chunking: Large message splittingadaptive-batching: Intelligent message batching
Peer Discovery
The network uses Kademlia DHT for decentralized peer discovery:
use KademliaDHT;
let dht = new;
dht.bootstrap.await?;
// Find peers for content
let peers = dht.get_providers.await?;
Documentation
License
Licensed under either MIT or Apache-2.0 at your option.