Struct parsec::Parsec [−][src]
pub struct Parsec<T: NetworkEvent, S: SecretId> { /* fields omitted */ }
The main object which manages creating and receiving gossip about network events from peers, and
which provides a sequence of consensused Block
s by applying the PARSEC algorithm.
Methods
impl<T: NetworkEvent, S: SecretId> Parsec<T, S>
[src]
impl<T: NetworkEvent, S: SecretId> Parsec<T, S>
pub fn new(
our_id: S,
genesis_group: &BTreeSet<S::PublicId>
) -> Result<Self, Error>
[src]
pub fn new(
our_id: S,
genesis_group: &BTreeSet<S::PublicId>
) -> Result<Self, Error>
Creates a new Parsec
for a peer with the given ID and genesis peer IDs (ours included).
pub fn vote_for(&mut self, network_event: T) -> Result<(), Error>
[src]
pub fn vote_for(&mut self, network_event: T) -> Result<(), Error>
Adds a vote for network_event
. Returns an error if we have already voted for this.
pub fn create_gossip(
&self,
peer_id: Option<S::PublicId>
) -> Result<Request<T, S::PublicId>, Error>
[src]
pub fn create_gossip(
&self,
peer_id: Option<S::PublicId>
) -> Result<Request<T, S::PublicId>, Error>
Creates a new message to be gossiped to a peer containing all gossip events this node thinks
that peer needs. If peer_id
is None
, a message containing all known gossip events is
returned. If peer_id
is Some
and the given peer is unknown to this node, an error is
returned.
pub fn handle_request(
&mut self,
src: &S::PublicId,
req: Request<T, S::PublicId>
) -> Result<Response<T, S::PublicId>, Error>
[src]
pub fn handle_request(
&mut self,
src: &S::PublicId,
req: Request<T, S::PublicId>
) -> Result<Response<T, S::PublicId>, Error>
Handles a received Request
from src
peer. Returns a Response
to be sent back to src
or Err
if the request was not valid.
pub fn handle_response(
&mut self,
src: &S::PublicId,
resp: Response<T, S::PublicId>
) -> Result<(), Error>
[src]
pub fn handle_response(
&mut self,
src: &S::PublicId,
resp: Response<T, S::PublicId>
) -> Result<(), Error>
Handles a received Response
from src
peer. Returns Err
if the response was not valid.
pub fn poll(&mut self) -> Option<Block<T, S::PublicId>>
[src]
pub fn poll(&mut self) -> Option<Block<T, S::PublicId>>
Steps the algorithm and returns the next stable block, if any.
pub fn have_voted_for(&self, network_event: &T) -> bool
[src]
pub fn have_voted_for(&self, network_event: &T) -> bool
Checks if the given network_event
has already been voted for by us.
Trait Implementations
impl<T: NetworkEvent, S: SecretId> Drop for Parsec<T, S>
[src]
impl<T: NetworkEvent, S: SecretId> Drop for Parsec<T, S>