#include "yac.hpp"


Public Member Functions | |
| Yac (YacVoteStorage vote_storage, std::shared_ptr< YacNetwork > network, std::shared_ptr< YacCryptoProvider > crypto, std::shared_ptr< Timer > timer, shared_model::interface::types::PeerList order, Round round, logger::LoggerPtr log) | |
| void | vote (YacHash hash, ClusterOrdering order, std::optional< ClusterOrdering > alternative_order=std::nullopt) override |
| std::optional< Answer > | processRoundSwitch (consensus::Round const &round, shared_model::interface::types::PeerList const &peers) override |
| std::optional< Answer > | onState (std::vector< VoteMessage > state) override |
| void | stop () override |
| Prevent any new outgoing network activity. Be passive. More... | |
Public Member Functions inherited from iroha::consensus::yac::HashGate | |
| virtual | ~HashGate ()=default |
Public Member Functions inherited from iroha::consensus::yac::YacNetworkNotifications | |
| virtual | ~YacNetworkNotifications ()=default |
Static Public Member Functions | |
| static std::shared_ptr< Yac > | create (YacVoteStorage vote_storage, std::shared_ptr< YacNetwork > network, std::shared_ptr< YacCryptoProvider > crypto, std::shared_ptr< Timer > timer, shared_model::interface::types::PeerList order, Round round, logger::LoggerPtr log) |
| Yac::Yac | ( | YacVoteStorage | vote_storage, |
| std::shared_ptr< YacNetwork > | network, | ||
| std::shared_ptr< YacCryptoProvider > | crypto, | ||
| std::shared_ptr< Timer > | timer, | ||
| shared_model::interface::types::PeerList | order, | ||
| Round | round, | ||
| logger::LoggerPtr | log | ||
| ) |
|
static |
Method for creating Yac consensus object
| delay | for timer in milliseconds |
|
overridevirtual |
Callback on receiving collection of votes
| state | - provided message |
Implements iroha::consensus::yac::YacNetworkNotifications.


|
overridevirtual |
Update current state with the new round and peer list, possibly pruning the old state. Process states from future if available, and return the result
| round | - new round |
| peers | - new peer list |
Implements iroha::consensus::yac::HashGate.

|
overridevirtual |
Prevent any new outgoing network activity. Be passive.
Implements iroha::consensus::yac::HashGate.
|
overridevirtual |
Proposal new hash in network
| hash | - hash for voting |
| order | - peer ordering for round in hash |
| alternative_order | - peer order |
Implements iroha::consensus::yac::HashGate.

