Struct solana_core::crds_gossip_push::CrdsGossipPush[][src]

pub struct CrdsGossipPush {
    pub max_bytes: usize,
    pub num_active: usize,
    pub push_fanout: usize,
    pub msg_timeout: u64,
    pub prune_timeout: u64,
    pub num_total: usize,
    pub num_old: usize,
    pub num_pushes: usize,
    // some fields omitted
}

Fields

max_bytes: usize

max bytes per message

num_active: usizepush_fanout: usizemsg_timeout: u64prune_timeout: u64num_total: usizenum_old: usizenum_pushes: usize

Implementations

impl CrdsGossipPush[src]

pub fn num_pending(&self) -> usize[src]

pub fn prune_received_cache(
    &mut self,
    self_pubkey: &Pubkey,
    origin: &Pubkey,
    stakes: &HashMap<Pubkey, u64>
) -> Vec<Pubkey>
[src]

pub fn process_push_message(
    &mut self,
    crds: &mut Crds,
    from: &Pubkey,
    value: CrdsValue,
    now: u64
) -> Result<Option<VersionedCrdsValue>, CrdsGossipError>
[src]

process a push message to the network

pub fn push_pull_responses(
    &mut self,
    values: Vec<(CrdsValueLabel, Hash, u64)>,
    now: u64
)
[src]

push pull responses

pub fn new_push_messages(
    &mut self,
    crds: &Crds,
    now: u64
) -> HashMap<Pubkey, Vec<CrdsValue>>
[src]

New push message to broadcast to peers. Returns a list of Pubkeys for the selected peers and a list of values to send to all the peers. The list of push messages is created such that all the randomly selected peers have not pruned the source addresses.

pub fn process_prune_msg(
    &self,
    self_pubkey: &Pubkey,
    peer: &Pubkey,
    origins: &[Pubkey]
)
[src]

add the from to the peer’s filter of nodes

pub fn refresh_push_active_set(
    &mut self,
    crds: &Crds,
    stakes: &HashMap<Pubkey, u64>,
    gossip_validators: Option<&HashSet<Pubkey>>,
    self_id: &Pubkey,
    self_shred_version: u16,
    network_size: usize,
    ratio: usize
)
[src]

refresh the push active set

  • ratio - active_set.len()/ratio is the number of actives to rotate

pub fn purge_old_pending_push_messages(&mut self, crds: &Crds, min_time: u64)[src]

purge old pending push messages

pub fn purge_old_received_cache(&mut self, min_time: u64)[src]

purge received push message cache

Trait Implementations

impl Default for CrdsGossipPush[src]

Auto Trait Implementations

impl RefUnwindSafe for CrdsGossipPush

impl Send for CrdsGossipPush

impl Sync for CrdsGossipPush

impl Unpin for CrdsGossipPush

impl UnwindSafe for CrdsGossipPush

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

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

impl<T> IntoRequest<T> for T[src]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

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

type Error = Infallible

The type returned in the event of a conversion error.

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

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Typeable for T where
    T: Any

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]

impl<T> WithSubscriber for T[src]