[][src]Struct buffett_core::crdt::Crdt

pub struct Crdt {
    pub table: HashMap<Pubkey, NodeInfo>,
    pub remote: HashMap<Pubkey, u64>,
    pub alive: HashMap<Pubkey, u64>,
    pub update_index: u64,
    pub id: Pubkey,
    pub scheduled_leaders: HashMap<u64, Pubkey>,
    pub leader_rotation_interval: u64,
    // some fields omitted
}

Fields

table: HashMap<Pubkey, NodeInfo>remote: HashMap<Pubkey, u64>alive: HashMap<Pubkey, u64>update_index: u64id: Pubkeyscheduled_leaders: HashMap<u64, Pubkey>leader_rotation_interval: u64

Methods

impl Crdt[src]

pub fn new(node_info: NodeInfo) -> Result<Crdt>[src]

pub fn my_data(&self) -> &NodeInfo[src]

pub fn leader_data(&self) -> Option<&NodeInfo>[src]

pub fn node_info_trace(&self) -> String[src]

pub fn set_leader(&mut self, key: Pubkey)[src]

pub fn get_scheduled_leader(&self, entry_height: u64) -> Option<Pubkey>[src]

pub fn set_leader_rotation_interval(&mut self, leader_rotation_interval: u64)[src]

pub fn get_leader_rotation_interval(&self) -> u64[src]

pub fn set_scheduled_leader(&mut self, entry_height: u64, new_leader_id: Pubkey)[src]

pub fn get_valid_peers(&self) -> Vec<NodeInfo>[src]

pub fn get_external_liveness_entry(
    &self,
    key: &Pubkey
) -> Option<&HashMap<Pubkey, u64>>
[src]

pub fn insert_vote(&mut self, pubkey: &Pubkey, v: &Vote, last_id: Hash)[src]

pub fn insert_votes(&mut self, votes: &[(Pubkey, Vote, Hash)])[src]

pub fn insert(&mut self, v: &NodeInfo) -> usize[src]

pub fn purge(&mut self, now: u64)[src]

pub fn compute_broadcast_table(&self) -> Vec<NodeInfo>[src]

pub fn broadcast(
    crdt: &Arc<RwLock<Crdt>>,
    leader_rotation_interval: u64,
    me: &NodeInfo,
    broadcast_table: &[NodeInfo],
    window: &SharedWindow,
    s: &UdpSocket,
    transmit_index: &mut WindowIndex,
    received_index: u64
) -> Result<()>
[src]

pub fn retransmit(
    obj: &Arc<RwLock<Self>>,
    blob: &SharedBlob,
    s: &UdpSocket
) -> Result<()>
[src]

pub fn convergence(&self) -> u64[src]

pub fn valid_last_ids(&self) -> Vec<Hash>[src]

pub fn window_index_request(&self, ix: u64) -> Result<(SocketAddr, Vec<u8>)>[src]

pub fn new_vote(&mut self, last_id: Hash) -> Result<(Vote, SocketAddr)>[src]

pub fn gossip(
    obj: Arc<RwLock<Self>>,
    blob_sender: BlobSender,
    exit: Arc<AtomicBool>
) -> JoinHandle<()>
[src]

pub fn listen(
    me: Arc<RwLock<Self>>,
    window: SharedWindow,
    ledger_path: Option<&str>,
    requests_receiver: BlobReceiver,
    response_sender: BlobSender,
    exit: Arc<AtomicBool>
) -> JoinHandle<()>
[src]

pub fn is_valid_address(addr: &SocketAddr) -> bool[src]

pub fn spy_node() -> (NodeInfo, UdpSocket)[src]

Auto Trait Implementations

impl Send for Crdt

impl Sync for Crdt

Blanket Implementations

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

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

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> BorrowMut<T> for T where
    T: ?Sized
[src]

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

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

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> Erased for T

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

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

impl<T> Typeable for T where
    T: Any

fn get_type(&self) -> TypeId

Get the TypeId of this object.