pub trait PeerStoreProvider: Debug + Send + Sync {
    // Required methods
    fn is_banned(&self, peer_id: &PeerId) -> bool;
    fn register_protocol(&self, protocol_handle: Arc<dyn ProtocolHandle>);
    fn report_disconnect(&self, peer_id: PeerId);
    fn report_peer(&self, peer_id: PeerId, change: ReputationChange);
    fn set_peer_role(&self, peer_id: &PeerId, role: ObservedRole);
    fn peer_reputation(&self, peer_id: &PeerId) -> i32;
    fn peer_role(&self, peer_id: &PeerId) -> Option<ObservedRole>;
    fn outgoing_candidates(
        &self,
        count: usize,
        ignored: HashSet<PeerId>
    ) -> Vec<PeerId>;
    fn add_known_peer(&self, peer_id: PeerId);
}
Expand description

Trait providing peer reputation management and connection candidates.

Required Methods§

source

fn is_banned(&self, peer_id: &PeerId) -> bool

Check whether the peer is banned.

source

fn register_protocol(&self, protocol_handle: Arc<dyn ProtocolHandle>)

Register a protocol handle to disconnect peers whose reputation drops below the threshold.

source

fn report_disconnect(&self, peer_id: PeerId)

Report peer disconnection for reputation adjustment.

source

fn report_peer(&self, peer_id: PeerId, change: ReputationChange)

Adjust peer reputation.

source

fn set_peer_role(&self, peer_id: &PeerId, role: ObservedRole)

Set peer role.

source

fn peer_reputation(&self, peer_id: &PeerId) -> i32

Get peer reputation.

source

fn peer_role(&self, peer_id: &PeerId) -> Option<ObservedRole>

Get peer role, if available.

source

fn outgoing_candidates( &self, count: usize, ignored: HashSet<PeerId> ) -> Vec<PeerId>

Get candidates with highest reputations for initiating outgoing connections.

source

fn add_known_peer(&self, peer_id: PeerId)

Add known peer.

Implementors§