[−][src]Struct solana_core::crds_gossip::CrdsGossip
Fields
crds: Crds
id: Pubkey
push: CrdsGossipPush
pull: CrdsGossipPull
Methods
impl CrdsGossip
[src]
pub fn set_self(&mut self, id: &Pubkey)
[src]
pub fn process_push_message(
&mut self,
from: &Pubkey,
values: Vec<CrdsValue>,
now: u64
) -> Vec<VersionedCrdsValue>
[src]
&mut self,
from: &Pubkey,
values: Vec<CrdsValue>,
now: u64
) -> Vec<VersionedCrdsValue>
process a push message to the network
pub fn prune_received_cache(
&mut self,
labels: Vec<CrdsValueLabel>,
stakes: &HashMap<Pubkey, u64>
) -> HashMap<Pubkey, HashSet<Pubkey>>
[src]
&mut self,
labels: Vec<CrdsValueLabel>,
stakes: &HashMap<Pubkey, u64>
) -> HashMap<Pubkey, HashSet<Pubkey>>
remove redundant paths in the network
pub fn new_push_messages(
&mut self,
now: u64
) -> (Pubkey, HashMap<Pubkey, Vec<CrdsValue>>)
[src]
&mut self,
now: u64
) -> (Pubkey, HashMap<Pubkey, Vec<CrdsValue>>)
pub fn process_prune_msg(
&mut self,
peer: &Pubkey,
destination: &Pubkey,
origin: &[Pubkey],
wallclock: u64,
now: u64
) -> Result<(), CrdsGossipError>
[src]
&mut self,
peer: &Pubkey,
destination: &Pubkey,
origin: &[Pubkey],
wallclock: u64,
now: u64
) -> Result<(), CrdsGossipError>
add the from
to the peer's filter of nodes
pub fn refresh_push_active_set(&mut self, stakes: &HashMap<Pubkey, u64>)
[src]
refresh the push active set
- ratio - number of actives to rotate
pub fn new_pull_request(
&self,
now: u64,
stakes: &HashMap<Pubkey, u64>,
bloom_size: usize
) -> Result<(Pubkey, Vec<CrdsFilter>, CrdsValue), CrdsGossipError>
[src]
&self,
now: u64,
stakes: &HashMap<Pubkey, u64>,
bloom_size: usize
) -> Result<(Pubkey, Vec<CrdsFilter>, CrdsValue), CrdsGossipError>
generate a random request
pub fn mark_pull_request_creation_time(&mut self, from: &Pubkey, now: u64)
[src]
time when a request to from
was initiated
This is used for weighted random selection during new_pull_request
It's important to use the local nodes request creation time as the weight
instead of the response received time otherwise failed nodes will increase their weight.
pub fn process_pull_requests(
&mut self,
filters: Vec<(CrdsValue, CrdsFilter)>,
now: u64
) -> Vec<Vec<CrdsValue>>
[src]
&mut self,
filters: Vec<(CrdsValue, CrdsFilter)>,
now: u64
) -> Vec<Vec<CrdsValue>>
process a pull request and create a response
pub fn process_pull_response(
&mut self,
from: &Pubkey,
timeouts: &HashMap<Pubkey, u64>,
response: Vec<CrdsValue>,
now: u64
) -> usize
[src]
&mut self,
from: &Pubkey,
timeouts: &HashMap<Pubkey, u64>,
response: Vec<CrdsValue>,
now: u64
) -> usize
process a pull response
pub fn make_timeouts_test(&self) -> HashMap<Pubkey, u64>
[src]
pub fn make_timeouts(
&self,
stakes: &HashMap<Pubkey, u64>,
epoch_ms: u64
) -> HashMap<Pubkey, u64>
[src]
&self,
stakes: &HashMap<Pubkey, u64>,
epoch_ms: u64
) -> HashMap<Pubkey, u64>
pub fn purge(&mut self, now: u64, timeouts: &HashMap<Pubkey, u64>) -> usize
[src]
Trait Implementations
impl Clone for CrdsGossip
[src]
fn clone(&self) -> CrdsGossip
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Default for CrdsGossip
[src]
Auto Trait Implementations
impl RefUnwindSafe for CrdsGossip
impl Send for CrdsGossip
impl Sync for CrdsGossip
impl Unpin for CrdsGossip
impl UnwindSafe for CrdsGossip
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Clear for T where
T: InitializableFromZeroed + ?Sized,
T: InitializableFromZeroed + ?Sized,
fn clear(&mut self)
impl<T> From<T> for T
[src]
impl<T> InitializableFromZeroed for T where
T: Default,
T: Default,
unsafe fn initialize(place: *mut T)
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Typeable for T where
T: Any,
T: Any,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,