Namespaces | |
| detail | |
Classes | |
| class | BufferedCleanupStrategy |
| class | CleanupStrategy |
| class | ClusterOrdering |
| struct | CommitMessage |
| class | ConsensusOutcomeDelay |
| class | CryptoProviderImpl |
| struct | FutureMessage |
| class | HashGate |
| class | NetworkImpl |
| struct | OutcomeMessage |
| class | PbConverters |
| class | PeerOrdererImpl |
| struct | RejectMessage |
| class | SupermajorityChecker |
| class | SupermajorityCheckerBft |
| An implementation of BFT supermajority checker. More... | |
| class | SupermajorityCheckerCft |
| An implementation of CFT supermajority checker. More... | |
| class | Timer |
| class | TimerImpl |
| struct | VoteMessage |
| class | Yac |
| class | YacBlockStorage |
| class | YacCryptoProvider |
| class | YacGate |
| class | YacGateImpl |
| class | YacHash |
| class | YacHashProvider |
| class | YacHashProviderImpl |
| class | YacInit |
| class | YacNetwork |
| class | YacNetworkNotifications |
| class | YacPeerOrderer |
| class | YacProposalStorage |
| class | YacVoteStorage |
Typedefs | |
| using | Answer = boost::variant< CommitMessage, RejectMessage, FutureMessage > |
| using | ProposalHash = std::string |
| using | BlockHash = std::string |
| using | PeersNumberType = size_t |
| Type for number of peers in round. More... | |
Functions | |
| std::unique_ptr< SupermajorityChecker > | getSupermajorityChecker (ConsistencyModel c) |
| Get a SupermajorityChecker for the given consistency model. More... | |
| bool | checkKfPlus1Supermajority (PeersNumberType number, PeersNumberType all, unsigned int k) |
| bool | checkKfPlus1Tolerance (PeersNumberType number, PeersNumberType all, unsigned int k) |
| template<typename T , typename P > | |
| void | removeMatching (std::vector< T > &target, const P &predicate) |
| template<typename CollectionType , typename ElementType > | |
| bool | contains (const CollectionType &haystack, const ElementType &needle) |
| bool | sameKeys (const std::vector< VoteMessage > &votes) |
| boost::optional< Round > | getKey (const std::vector< VoteMessage > &votes) |
| boost::optional< YacHash > | getHash (const std::vector< VoteMessage > &votes) |
Copyright Soramitsu Co., Ltd. All Rights Reserved. SPDX-License-Identifier: Apache-2.0
| using iroha::consensus::yac::Answer = typedef boost::variant<CommitMessage, RejectMessage, FutureMessage> |
Contains proof of supermajority for all purposes;
| using iroha::consensus::yac::BlockHash = typedef std::string |
| using iroha::consensus::yac::PeersNumberType = typedef size_t |
Type for number of peers in round.
| using iroha::consensus::yac::ProposalHash = typedef std::string |
|
strong |
|
strong |
|
strong |
Proposal outcome states for multicast propagation strategy
Outcome is either CommitMessage, which guarantees that supermajority of votes for the proposal-block hashes is collected, or RejectMessage, which states that supermajority of votes for a block hash cannot be achieved
kNotSentNotProcessed - outcome was not propagated in the network AND it was not passed to pipeline. Initial state after receiving an outcome from storage. Outcome with votes is propagated to the network in this state.
kSentNotProcessed - outcome was propagated in the network AND it was not passed to pipeline. State can be set in two cases:
kSentProcessed - outcome was propagated in the network AND it was passed to pipeline. Set after passing proposal to pipeline. This state is final. Receiving a network message in this state results in direct propagation of outcome to message sender.
| Enumerator | |
|---|---|
| kNotSentNotProcessed | |
| kSentNotProcessed | |
| kSentProcessed | |
|
inline |
A generic implementation of N = K * f + 1 model checkers. N is the amount of peers in the network, f is the number of tolerated faulty peers, and K is a free parameter. Supermajority is achieved when at least N - f peers agree. For the networks of arbitrary peers amount Na the tolerated number of faulty peers is (Na - 1) % K. Check supermajority condition.
| number | - the number of peers agreed on the state |
| all | - the total number of peers in the network |
| k | - the free parameter of the model |

|
inline |
Check tolerance condition.
| number | - the number of possibly faulty peers |
| all | - the total number of peers in the network |
| k | - the free parameter of the model |

| bool iroha::consensus::yac::contains | ( | const CollectionType & | haystack, |
| const ElementType & | needle | ||
| ) |

| boost::optional< YacHash > iroha::consensus::yac::getHash | ( | const std::vector< VoteMessage > & | votes | ) |
Get common hash from collection
| votes | - collection with votes |


| boost::optional< Round > iroha::consensus::yac::getKey | ( | const std::vector< VoteMessage > & | votes | ) |
Provide key common for whole collection
| votes | - collection with votes |

| std::unique_ptr< SupermajorityChecker > iroha::consensus::yac::getSupermajorityChecker | ( | ConsistencyModel | c | ) |
Get a SupermajorityChecker for the given consistency model.

| void iroha::consensus::yac::removeMatching | ( | std::vector< T > & | target, |
| const P & | predicate | ||
| ) |

| bool iroha::consensus::yac::sameKeys | ( | const std::vector< VoteMessage > & | votes | ) |
Check that all votes in collection have the same key
| votes | - collection of votes |
