elara-diffusion
Swarm diffusion engine for the ELARA Protocol - providing state propagation, livestream distribution, and group communication through epidemic-style information spreading.
Features
- Epidemic Propagation: Gossip-based state distribution
- Livestream Distribution: Real-time content spreading
- Group Communication: Multi-party state synchronization
- Adaptive Fanout: Dynamic neighbor selection
- Resilience: Continues working under network partitions
Quick Start
use ;
use NodeId;
// Create diffusion engine
let mut engine = new;
// Start diffusion process
engine.start?;
// Propagate state
engine.propagate_state?;
// Handle incoming diffusion
engine.handle_diffusion_message?;
Swarm Diffusion Model
Epidemic Spreading
Node A → Node B → Node C → Node D
↓ ↓ ↓ ↓
Node E Node F Node G Node H
Adaptive Fanout
State Propagation
Push-Based
// Active propagation
engine.push_state?;
Pull-Based
// Request missing state
engine.pull_state?;
Hybrid Mode
// Automatic push-pull based on network conditions
engine.set_mode;
Livestream Distribution
Stream Segments
Quality Adaptation
// Adapt quality based on network conditions
engine.adapt_stream_quality;
// Manual quality setting
engine.set_stream_quality;
Group Communication
Group Formation
// Create diffusion group
let group = engine.create_group?;
// Join existing group
engine.join_group?;
// Leave group
engine.leave_group?;
Message Routing
// Broadcast to group
engine.broadcast_to_group?;
// Multicast to subset
engine.multicast_to_subset?;
// Unicast with fallback
engine.unicast_with_fallback?;
Resilience Features
Partition Tolerance
- Continues operating during network splits
- Automatic reconnection when partitions heal
- State reconciliation after merge
Node Failures
// Detect node failure
engine.detect_node_failure;
// Rebuild routing table
engine.rebuild_routing;
// Redistribute load
engine.redistribute_load;
Message Redundancy
// Configure redundancy
engine.set_redundancy_factor; // 200% redundancy
// Enable duplicate detection
engine.enable_duplicate_detection;
Performance Metrics
Propagation Speed
- Initial Hop: < 50ms
- Network-wide: O(log N) hops
- Convergence Time: O(log N) seconds
Efficiency
- Message Overhead: < 5% bandwidth increase
- Memory Usage: O(√N) per node
- CPU Usage: < 2% on modern hardware
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.