pub enum P2PEvent {
Message {
topic: String,
source: Option<PeerId>,
transport_source: Option<MultiAddr>,
timestamp: u64,
data: Vec<u8>,
},
PeerConnected(PeerId, String),
PeerDisconnected(PeerId),
}Expand description
Network events that can occur in the P2P system
Events are broadcast to all listeners and provide real-time notifications of network state changes and message arrivals.
Variants§
Message
Message received from a peer on a specific topic
Fields
source: Option<PeerId>For signed messages this is the authenticated app-level PeerId;
None for unsigned messages.
transport_source: Option<MultiAddr>IP transport address that delivered this message, when known.
This is provenance metadata, not an identity signal.
timestamp: u64Sender-supplied Unix timestamp in seconds.
For signed messages this value is covered by the ML-DSA-65 signature alongside the payload, so handlers can use it for application-level freshness or replay defense. Wire-level acceptance no longer gates on this value; subscribers MUST do their own age/dedup checks when the protocol requires them.
PeerConnected(PeerId, String)
An authenticated peer has connected (first signed message verified on any channel).
The user_agent identifies the remote software (e.g. "node/0.12.1", "client/1.0").
PeerDisconnected(PeerId)
An authenticated peer has fully disconnected (all channels closed).