Crate qudag_network

Source
Expand description

P2P networking layer with anonymous routing.

This module provides the networking layer for the QuDAG protocol, implementing anonymous routing, P2P communication, and traffic obfuscation.

Re-exports§

pub use dark_resolver::DarkDomainRecord;
pub use dark_resolver::DarkResolver;
pub use dark_resolver::DarkResolverError;
pub use discovery::DiscoveredPeer;
pub use discovery::DiscoveryConfig;
pub use discovery::DiscoveryEvent;
pub use discovery::DiscoveryMethod;
pub use discovery::DiscoveryStats;
pub use discovery::KademliaPeerDiscovery;
pub use dns::CloudflareClient;
pub use dns::CloudflareConfig;
pub use dns::DnsError;
pub use dns::DnsManager;
pub use dns::DnsRecord;
pub use dns::RecordType;
pub use kademlia::BootstrapConfig;
pub use kademlia::ContentRoutingConfig;
pub use kademlia::KademliaDHT;
pub use kademlia::PeerReputation;
pub use message::MessageEnvelope;
pub use nat_traversal::ConnectionType;
pub use nat_traversal::ConnectionUpgradeManager;
pub use nat_traversal::HolePunchCoordinator;
pub use nat_traversal::HolePunchPhase;
pub use nat_traversal::NatInfo;
pub use nat_traversal::NatPmpClient;
pub use nat_traversal::NatTraversalConfig;
pub use nat_traversal::NatTraversalError;
pub use nat_traversal::NatTraversalManager;
pub use nat_traversal::NatTraversalStats;
pub use nat_traversal::NatType;
pub use nat_traversal::PortMapping;
pub use nat_traversal::PortMappingMethod;
pub use nat_traversal::PortMappingProtocol;
pub use nat_traversal::RelayConnection;
pub use nat_traversal::RelayManager;
pub use nat_traversal::RelayServer;
pub use nat_traversal::StunClient;
pub use nat_traversal::StunServer;
pub use nat_traversal::TurnClient;
pub use nat_traversal::TurnServer;
pub use nat_traversal::UpgradeAttempt;
pub use onion::Circuit;
pub use onion::CircuitManager;
pub use onion::CircuitState;
pub use onion::CircuitStats;
pub use onion::DirectoryClient;
pub use onion::HopMetadata;
pub use onion::LayerFlags;
pub use onion::MLKEMOnionRouter;
pub use onion::MetadataConfig;
pub use onion::MetadataProtector;
pub use onion::MixConfig;
pub use onion::MixMessage;
pub use onion::MixMessageType;
pub use onion::MixNode;
pub use onion::MixNodeStats;
pub use onion::NodeFlags;
pub use onion::NodeInfo;
pub use onion::OnionError;
pub use onion::OnionLayer;
pub use onion::OnionRouter;
pub use onion::ProtectedMetadata;
pub use onion::TrafficAnalysisConfig;
pub use onion::TrafficAnalysisResistance;
pub use p2p::NetworkConfig as P2PNetworkConfig;
pub use p2p::P2PCommand;
pub use p2p::P2PEvent;
pub use p2p::P2PHandle;
pub use p2p::P2PNode;
pub use p2p::QuDagRequest;
pub use p2p::QuDagResponse;
pub use quantum_crypto::MlKemCiphertext;
pub use quantum_crypto::MlKemPublicKey;
pub use quantum_crypto::MlKemSecretKey;
pub use quantum_crypto::MlKemSecurityLevel;
pub use quantum_crypto::QuantumKeyExchange;
pub use quantum_crypto::SharedSecret;
pub use router::HopInfo;
pub use router::Router;
pub use shadow_address::DefaultShadowAddressHandler;
pub use shadow_address::NetworkType;
pub use shadow_address::RotationPolicies;
pub use shadow_address::ShadowAddress;
pub use shadow_address::ShadowAddressError;
pub use shadow_address::ShadowAddressGenerator;
pub use shadow_address::ShadowAddressManager;
pub use shadow_address::ShadowAddressMixer;
pub use shadow_address::ShadowAddressPool;
pub use shadow_address::ShadowAddressResolver;
pub use shadow_address::ShadowFeatures;
pub use shadow_address::ShadowMetadata;
pub use traffic_obfuscation::ObfuscationPattern;
pub use traffic_obfuscation::ObfuscationStats;
pub use traffic_obfuscation::TrafficObfuscationConfig;
pub use traffic_obfuscation::TrafficObfuscator;
pub use traffic_obfuscation::DEFAULT_MESSAGE_SIZE;
pub use traffic_obfuscation::STANDARD_MESSAGE_SIZES;
pub use transport::AsyncTransport;
pub use transport::Transport;
pub use transport::TransportConfig;
pub use transport::TransportError;
pub use types::ConnectionStatus;
pub use types::LatencyMetrics;
pub use types::MessagePriority;
pub use types::NetworkAddress;
pub use types::NetworkError;
pub use types::NetworkMessage;
pub use types::PeerId;
pub use types::QueueMetrics;
pub use types::RoutingStrategy;
pub use types::ThroughputMetrics;
pub use circuit_breaker::CircuitBreaker;
pub use circuit_breaker::CircuitState as CircuitBreakerState;
pub use connection::ConnectionInfo;
pub use connection::ConnectionManager;
pub use connection::HealthStatistics;
pub use connection::SecureConfig;
pub use connection::SecureConnection;
pub use connection::TransportKeys;
pub use connection::UnhealthyConnectionInfo;

Modules§

circuit_breaker
connection
connection_pool
dark_resolver
discovery
Production-ready P2P network peer discovery implementation with Kademlia DHT, dark addressing support, and sophisticated peer reputation management.
dns
DNS integration module for ruv.io using Cloudflare API.
kademlia
Production-ready Kademlia DHT implementation for decentralized peer discovery with bootstrap node functionality, content routing, and peer reputation scoring.
message
metrics
nat_traversal
NAT traversal and firewall penetration module for QuDAG network.
onion
p2p
peer
P2P network peer management implementation.
quantum_crypto
Quantum-resistant cryptographic primitives for secure P2P communication.
router
routing
shadow_address
Shadow address implementation for stealth payments.
traffic_obfuscation
Comprehensive traffic obfuscation module for QuDAG
transport
Network transport layer implementation with TLS 1.3 and post-quantum cryptography.
types

Structs§

NetworkConfig
Network configuration for the manager
NetworkManager
Comprehensive network manager for P2P operations
NetworkStats
Network statistics
PeerMetadata
Peer metadata for tracking
ReputationManager
Reputation management for peers

Enums§

NetworkEvent
Network events for inter-component communication

Traits§

PeerDiscoveryService
Trait for peer discovery services