[][src]Struct grin_p2p::Peers

pub struct Peers {
    pub adapter: Arc<dyn ChainAdapter>,
    // some fields omitted
}

Fields

Methods

impl Peers
[src]

Adds the peer to our internal peer mapping. Note that the peer is still returned so the server can run it.

Get vec of peers we are currently connected to.

Get a peer we're connected to by address.

Number of peers we're currently connected to.

Returns single random peer with more work than us.

Return vec of connected peers that currently have the most worked branch, showing the highest total difficulty.

Returns single random peer with the most worked branch, showing the highest total difficulty.

Ban a peer, disconnecting it if we're currently connected

Unban a peer, checks if it exists and banned then unban

Broadcasts the provided compact block to PEER_MAX_COUNT of our peers. This is only used when initially broadcasting a newly mined block from a mining node so we want to broadcast it far and wide. A peer implementation may drop the broadcast request if it knows the remote peer already has the block.

Broadcasts the provided header to PEER_PREFERRED_COUNT of our peers. We may be connected to PEER_MAX_COUNT peers so we only want to broadcast to a random subset of peers. A peer implementation may drop the broadcast request if it knows the remote peer already has the header.

Relays the provided stem transaction to our single stem peer.

Broadcasts the provided transaction to PEER_PREFERRED_COUNT of our peers. We may be connected to PEER_MAX_COUNT peers so we only want to broadcast to a random subset of peers. A peer implementation may drop the broadcast request if it knows the remote peer already has the transaction.

Ping all our connected peers. Always automatically expects a pong back or disconnects. This acts as a liveness test.

All peer information we have in storage

Find peers in store (not necessarily connected) and return their data

Get peer in store by address

Whether we've already seen a peer with the provided address

Saves updated information about a peer

Updates the state of a peer in store

Iterate over the peer list and prune all peers we have lost connection to or have been deemed problematic. Also avoid connected peer count getting too high.

Removes those peers that seem to have expired

Trait Implementations

impl ChainAdapter for Peers
[src]

impl NetAdapter for Peers
[src]

Find good peers we know with the provided capability and return their addresses.

A list of peers has been received from one of our peers.

Auto Trait Implementations

impl Send for Peers

impl Sync for Peers

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> UnsafeAny for T where
    T: Any

impl<T> Erased for T

impl<T> Same for T

Should always be Self

impl<T> SafeBorrow for T where
    T: ?Sized