[−][src]Struct buffett_core::crdt::Crdt
Fields
table: HashMap<Pubkey, NodeInfo>
remote: HashMap<Pubkey, u64>
alive: HashMap<Pubkey, u64>
update_index: u64
id: Pubkey
scheduled_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]
&self,
key: &Pubkey
) -> Option<&HashMap<Pubkey, u64>>
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]
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<()>
pub fn retransmit(
obj: &Arc<RwLock<Self>>,
blob: &SharedBlob,
s: &UdpSocket
) -> Result<()>
[src]
obj: &Arc<RwLock<Self>>,
blob: &SharedBlob,
s: &UdpSocket
) -> Result<()>
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]
obj: Arc<RwLock<Self>>,
blob_sender: BlobSender,
exit: Arc<AtomicBool>
) -> JoinHandle<()>
pub fn listen(
me: Arc<RwLock<Self>>,
window: SharedWindow,
ledger_path: Option<&str>,
requests_receiver: BlobReceiver,
response_sender: BlobSender,
exit: Arc<AtomicBool>
) -> JoinHandle<()>
[src]
me: Arc<RwLock<Self>>,
window: SharedWindow,
ledger_path: Option<&str>,
requests_receiver: BlobReceiver,
response_sender: BlobSender,
exit: Arc<AtomicBool>
) -> JoinHandle<()>
pub fn is_valid_address(addr: &SocketAddr) -> bool
[src]
pub fn spy_node() -> (NodeInfo, UdpSocket)
[src]
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for 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> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
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>,
U: TryFrom<T>,
impl<T> Typeable for T where
T: Any,
T: Any,