Source

Network Architecture

Y Protocol uses libp2p 0.54 for P2P networking with DHT discovery, message broadcasting, and encrypted communications.

libp2p 0.54
Kademlia DHT
GossipSub
Noise Encryption

libp2p Network Stack

ValidatorBehaviour Implementation
P2P networking behaviour using libp2p
#[derive(NetworkBehaviour)]
pub struct ValidatorBehaviour {
    kademlia: kad::Behaviour<MemoryStore>,     // DHT discovery
    mdns: mdns::tokio::Behaviour,              // Local discovery
    gossipsub: gossipsub::Behaviour,           // Message broadcast
    identify: identify::Behaviour,              // Peer identification
    ping: ping::Behaviour,                     // Health checks
    request_response: request_response::json::Behaviour<ValidatorRequest, ValidatorResponse>,
}
Source: /crates/consensus/src/validators/network.rs
Kademlia DHT

Distributed hash table for peer discovery and routing

Bootstrap Time:
<10 seconds
Routing Table:
Kademlia K-bucket
GossipSub

Publish-subscribe messaging for block and transaction propagation

Propagation:
<1 second
Mesh Degree:
6-12 peers
mDNS

Multicast DNS for local network peer discovery

Local Discovery:
Automatic
Range:
Local subnet

Transport Protocols

Transport Layers
TCP Transport
Primary
QUIC Transport
Alternative
Yamux Multiplexing
Stream MUX

Multiple transport options with stream multiplexing for connection usage.

Security & Encryption
Noise Protocol
End-to-End
Peer Authentication
Ed25519
Forward Secrecy
Yes

All communications encrypted with modern cryptographic protocols.

Consensus Message Protocol

Message Types
Structured messages for consensus coordination
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ConsensusMessage {
    BlockProposal {
        height: u64,
        block: Block,
        proposer_id: String,
        timestamp: u64
    },
    ValidatorVote {
        height: u64,
        block_hash: [u8; 32],
        vote: ValidatorVote
    },
    BlockFinalization {
        height: u64,
        block: Block,
        votes: Vec<ValidatorVote>
    },
    ValidatorSetUpdate {
        height: u64,
        validators: Vec<ValidatorInfo>
    },
}
Block Proposals

New block proposals broadcast to all validators for voting

Validator Votes

Individual validator votes on proposed blocks with signatures

Block Finalization

Finalized blocks with complete vote set broadcast to network

Validator Updates

Changes to active validator set and stake weights

Network Performance

Propagation
<1s
Global message propagation
Discovery
<10s
Peer discovery time
Sync Speed
1K
Blocks per second
Overhead
~50KB
Per peer connection

Peer Management

Peer Connection Information
Detailed peer tracking and connection management
pub struct PeerConnectionInfo {
    pub peer_id: String,
    pub address: String,
    pub connection_established: DateTime<Utc>,
    pub bytes_sent: u64,
    pub bytes_received: u64,
    pub is_inbound: bool,
    pub protocols: Vec<String>,
    pub connection_state: String,
}
Connection Limits
Max Inbound:
Configurable
Max Outbound:
Configurable
Rate Limiting:
Per-peer
Health Monitoring
Ping Protocol:
Built-in
Heartbeat:
30 seconds
Timeout:
60 seconds
Protocol Support
Identify:
Peer info
AutoNAT:
NAT detection
Relay:
Connectivity