Kagome
Polkadot Runtime Engine in C++17
kagome::consensus::grandpa::VotingRoundImpl Class Reference

#include <voting_round_impl.hpp>

Inheritance diagram for kagome::consensus::grandpa::VotingRoundImpl:
Collaboration diagram for kagome::consensus::grandpa::VotingRoundImpl:

Public Types

enum  Stage {
  Stage::INIT, Stage::START, Stage::START_PREVOTE, Stage::PREVOTE_RUNS,
  Stage::END_PREVOTE, Stage::START_PRECOMMIT, Stage::PRECOMMIT_RUNS, Stage::END_PRECOMMIT,
  Stage::START_WAITING, Stage::WAITING_RUNS, Stage::END_WAITING, Stage::COMPLETED
}
 
- Public Types inherited from kagome::consensus::grandpa::VotingRound
enum  Propagation : bool { Propagation::NEEDLESS = false, Propagation::REQUESTED = true }
 
using IsPreviousRoundChanged = Tagged< bool, struct IsPreviousRoundChanged >
 
using IsPrevotesChanged = Tagged< bool, struct IsPrevotesChanged >
 
using IsPrecommitsChanged = Tagged< bool, struct IsPrecommitsChanged >
 

Public Member Functions

 VotingRoundImpl (const std::shared_ptr< Grandpa > &grandpa, const GrandpaConfig &config, const std::shared_ptr< authority::AuthorityManager > authority_manager, const std::shared_ptr< Environment > &env, const std::shared_ptr< VoteCryptoProvider > &vote_crypto_provider, const std::shared_ptr< VoteTracker > &prevotes, const std::shared_ptr< VoteTracker > &precommits, const std::shared_ptr< VoteGraph > &vote_graph, const std::shared_ptr< Clock > &clock, const std::shared_ptr< libp2p::basic::Scheduler > &scheduler, const MovableRoundState &round_state)
 
 VotingRoundImpl (const std::shared_ptr< Grandpa > &grandpa, const GrandpaConfig &config, const std::shared_ptr< authority::AuthorityManager > authority_manager, const std::shared_ptr< Environment > &env, const std::shared_ptr< VoteCryptoProvider > &vote_crypto_provider, const std::shared_ptr< VoteTracker > &prevotes, const std::shared_ptr< VoteTracker > &precommits, const std::shared_ptr< VoteGraph > &vote_graph, const std::shared_ptr< Clock > &clock, const std::shared_ptr< libp2p::basic::Scheduler > &scheduler, const std::shared_ptr< VotingRound > &previous_round)
 
void play () override
 
void end () override
 
void startPrevoteStage ()
 
void endPrevoteStage ()
 
void startPrecommitStage ()
 
void endPrecommitStage ()
 
void startWaitingStage ()
 
void endWaitingStage ()
 
void doProposal () override
 
void doPrevote () override
 Calculate prevote and broadcast signed prevote message. More...
 
void doPrecommit () override
 Calculate precommit and broadcast signed precommit message. More...
 
void doFinalize () override
 Collect and save justifications finalizing this round. More...
 
void doCommit () override
 Broadcast commit message. More...
 
outcome::result< void > applyJustification (const BlockInfo &block_info, const GrandpaJustification &justification) override
 
void onProposal (const SignedMessage &proposal, Propagation propagation) override
 
bool onPrevote (const SignedMessage &prevote, Propagation propagation) override
 
bool onPrecommit (const SignedMessage &precommit, Propagation propagation) override
 
void update (IsPreviousRoundChanged is_previous_round_changed, IsPrevotesChanged is_prevotes_changed, IsPrecommitsChanged is_precommits_changed) override
 
std::shared_ptr< VotingRoundgetPreviousRound () const override
 
void forgetPreviousRound () override
 
void attemptToFinalizeRound () override
 
void doCatchUpResponse (const libp2p::peer::PeerId &peer_id) override
 
RoundNumber roundNumber () const override
 
VoterSetId voterSetId () const override
 
bool completable () const override
 
BlockInfo lastFinalizedBlock () const override
 
BlockInfo bestPrevoteCandidate () override
 
BlockInfo bestFinalCandidate () override
 
const std::optional< BlockInfo > & finalizedBlock () const override
 
MovableRoundState state () const override
 
void sendNeighborMessage ()
 
- Public Member Functions inherited from kagome::consensus::grandpa::VotingRound
virtual ~VotingRound ()=default
 

Protected Member Functions

 VotingRoundImpl ()
 

Private Member Functions

 VotingRoundImpl (const std::shared_ptr< Grandpa > &grandpa, const GrandpaConfig &config, std::shared_ptr< authority::AuthorityManager > authority_manager, std::shared_ptr< Environment > env, std::shared_ptr< VoteCryptoProvider > vote_crypto_provider, std::shared_ptr< VoteTracker > prevotes, std::shared_ptr< VoteTracker > precommits, std::shared_ptr< VoteGraph > vote_graph, std::shared_ptr< Clock > clock, std::shared_ptr< libp2p::basic::Scheduler > scheduler)
 
bool isPrimary (const Id &id) const
 Check if peer. More...
 
template<typename T >
outcome::result< void > onSigned (const SignedMessage &vote)
 Triggered when we receive {. More...
 
bool updateGrandpaGhost ()
 
bool updateEstimate ()
 
std::vector< SignedPrevotegetPrevoteJustification (const BlockInfo &estimate, const std::vector< VoteVariant > &votes) const
 
std::vector< SignedPrecommitgetPrecommitJustification (const BlockInfo &precommits, const std::vector< VoteVariant > &votes) const
 
outcome::result< void > validatePrecommitJustification (const BlockInfo &vote, const GrandpaJustification &justification) const
 
void sendProposal (const PrimaryPropose &primary_proposal)
 
void sendPrevote (const Prevote &prevote)
 
void sendPrecommit (const Precommit &precommit)
 
void pending ()
 

Private Attributes

std::shared_ptr< VoterSetvoter_set_
 
const RoundNumber round_number_
 
std::shared_ptr< VotingRoundprevious_round_
 
const Duration duration_
 
bool isPrimary_ = false
 
size_t threshold_
 
const std::optional< Idid_
 
std::chrono::milliseconds start_time_
 
std::weak_ptr< Grandpagrandpa_
 
std::shared_ptr< authority::AuthorityManagerauthority_manager_
 
std::shared_ptr< const primitives::AuthorityListauthorities_
 
std::shared_ptr< Environmentenv_
 
std::shared_ptr< VoteCryptoProvidervote_crypto_provider_
 
std::shared_ptr< VoteGraphgraph_
 
std::shared_ptr< Clockclock_
 
std::shared_ptr< libp2p::basic::Scheduler > scheduler_
 
std::function< void()> on_complete_handler_
 
const std::chrono::milliseconds pending_interval_
 
Stage stage_ = Stage::INIT
 
std::shared_ptr< VoteTrackerprevotes_
 
std::shared_ptr< VoteTrackerprecommits_
 
std::vector< bool > prevote_equivocators_
 
std::vector< bool > precommit_equivocators_
 
std::optional< BlockInfoprimary_vote_
 
std::optional< BlockInfoprevote_
 
std::optional< BlockInfoprecommit_
 
BlockInfo last_finalized_block_
 
std::optional< BlockInfoprevote_ghost_
 
std::optional< BlockInfoestimate_
 
std::optional< BlockInfofinalized_
 
libp2p::basic::Scheduler::Handle stage_timer_handle_
 
libp2p::basic::Scheduler::Handle pending_timer_handle_
 
log::Logger logger_ = log::createLogger("VotingRound", "voting_round")
 
bool completable_ = false
 

Detailed Description

Definition at line 29 of file voting_round_impl.hpp.

Member Enumeration Documentation

Enumerator
INIT 
START 
START_PREVOTE 
PREVOTE_RUNS 
END_PREVOTE 
START_PRECOMMIT 
PRECOMMIT_RUNS 
END_PRECOMMIT 
START_WAITING 
WAITING_RUNS 
END_WAITING 
COMPLETED 

Definition at line 74 of file voting_round_impl.hpp.

Constructor & Destructor Documentation

kagome::consensus::grandpa::VotingRoundImpl::VotingRoundImpl ( const std::shared_ptr< Grandpa > &  grandpa,
const GrandpaConfig config,
std::shared_ptr< authority::AuthorityManager authority_manager,
std::shared_ptr< Environment env,
std::shared_ptr< VoteCryptoProvider vote_crypto_provider,
std::shared_ptr< VoteTracker prevotes,
std::shared_ptr< VoteTracker precommits,
std::shared_ptr< VoteGraph vote_graph,
std::shared_ptr< Clock clock,
std::shared_ptr< libp2p::basic::Scheduler >  scheduler 
)
private

Definition at line 45 of file voting_round_impl.cpp.

kagome::consensus::grandpa::VotingRoundImpl::VotingRoundImpl ( )
inlineprotected

Definition at line 45 of file voting_round_impl.hpp.

kagome::consensus::grandpa::VotingRoundImpl::VotingRoundImpl ( const std::shared_ptr< Grandpa > &  grandpa,
const GrandpaConfig config,
const std::shared_ptr< authority::AuthorityManager authority_manager,
const std::shared_ptr< Environment > &  env,
const std::shared_ptr< VoteCryptoProvider > &  vote_crypto_provider,
const std::shared_ptr< VoteTracker > &  prevotes,
const std::shared_ptr< VoteTracker > &  precommits,
const std::shared_ptr< VoteGraph > &  vote_graph,
const std::shared_ptr< Clock > &  clock,
const std::shared_ptr< libp2p::basic::Scheduler > &  scheduler,
const MovableRoundState round_state 
)

Definition at line 123 of file voting_round_impl.cpp.

kagome::consensus::grandpa::VotingRoundImpl::VotingRoundImpl ( const std::shared_ptr< Grandpa > &  grandpa,
const GrandpaConfig config,
const std::shared_ptr< authority::AuthorityManager authority_manager,
const std::shared_ptr< Environment > &  env,
const std::shared_ptr< VoteCryptoProvider > &  vote_crypto_provider,
const std::shared_ptr< VoteTracker > &  prevotes,
const std::shared_ptr< VoteTracker > &  precommits,
const std::shared_ptr< VoteGraph > &  vote_graph,
const std::shared_ptr< Clock > &  clock,
const std::shared_ptr< libp2p::basic::Scheduler > &  scheduler,
const std::shared_ptr< VotingRound > &  previous_round 
)

Definition at line 94 of file voting_round_impl.cpp.

Member Function Documentation

outcome::result< void > kagome::consensus::grandpa::VotingRoundImpl::applyJustification ( const BlockInfo block_info,
const GrandpaJustification justification 
)
overridevirtual

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 682 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::attemptToFinalizeRound ( )
overridevirtual

Checks if current round is completable and finalized block differs from the last round's finalized block. If so fin message is broadcasted to the network

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 838 of file voting_round_impl.cpp.

BlockInfo kagome::consensus::grandpa::VotingRoundImpl::bestFinalCandidate ( )
overridevirtual

Block what has precommit supermajority. Should be descendant or equal of Best-PreVote-Candidate

See also
spec: Best-Final-Candidate
spec: Ghost-Function

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 1469 of file voting_round_impl.cpp.

BlockInfo kagome::consensus::grandpa::VotingRoundImpl::bestPrevoteCandidate ( )
overridevirtual

Best block from descendants of previous round best-final-candidate

See also
spec: Best-PreVote-Candidate

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 1435 of file voting_round_impl.cpp.

bool kagome::consensus::grandpa::VotingRoundImpl::completable ( ) const
overridevirtual

Round is completable when we have block (stored in current_state_.finalized) for which we have supermajority on both prevotes and precommits

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 1431 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::doCatchUpResponse ( const libp2p::peer::PeerId &  peer_id)
overridevirtual

Make Catch-Up-Response based on current round and send to requesting peer

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 1550 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::doCommit ( )
overridevirtual

Broadcast commit message.

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 651 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::doFinalize ( )
overridevirtual

Collect and save justifications finalizing this round.

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 628 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::doPrecommit ( )
overridevirtual

Calculate precommit and broadcast signed precommit message.

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 571 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::doPrevote ( )
overridevirtual

Calculate prevote and broadcast signed prevote message.

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 508 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::doProposal ( )
overridevirtual

During the primary propose we:

  1. Check if we are the primary for the current round. If not execution of the method is finished
  2. We can send primary propose only if the estimate from last round state is greater than finalized. If we cannot send propose, method is finished
  3. Primary propose is the last rounds estimate.
  4. After all steps above are done we broadcast propose
  5. We store what we have broadcasted in primary_vote_ field

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 460 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::end ( )
overridevirtual

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 450 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::endPrecommitStage ( )

Definition at line 360 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::endPrevoteStage ( )

Definition at line 295 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::endWaitingStage ( )

Definition at line 434 of file voting_round_impl.cpp.

const std::optional<BlockInfo>& kagome::consensus::grandpa::VotingRoundImpl::finalizedBlock ( ) const
inlineoverridevirtual

The block, which is being finalized during this round

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 232 of file voting_round_impl.hpp.

void kagome::consensus::grandpa::VotingRoundImpl::forgetPreviousRound ( )
inlineoverridevirtual

Removes previous round to limit chain of rounds

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 176 of file voting_round_impl.hpp.

std::vector< SignedPrecommit > kagome::consensus::grandpa::VotingRoundImpl::getPrecommitJustification ( const BlockInfo precommits,
const std::vector< VoteVariant > &  votes 
) const
private

Prepare precommit justifications for provided estimate using provided votes

Parameters
precommitsprecommits that we need to prepare justification for
votesvotes that correspond to provided precommits
Returns
signed precommits obtained from estimate and votes

Definition at line 1519 of file voting_round_impl.cpp.

std::shared_ptr<VotingRound> kagome::consensus::grandpa::VotingRoundImpl::getPreviousRound ( ) const
inlineoverridevirtual
Returns
previous known round for current

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 169 of file voting_round_impl.hpp.

std::vector< SignedPrevote > kagome::consensus::grandpa::VotingRoundImpl::getPrevoteJustification ( const BlockInfo estimate,
const std::vector< VoteVariant > &  votes 
) const
private

Prepare prevote justifications for provided estimate using provided votes

Parameters
estimateestimate that we need to prepare justification for
votesvotes that correspond to provided estimate
Returns
signed prevotes obtained from estimate and votes

Definition at line 1488 of file voting_round_impl.cpp.

bool kagome::consensus::grandpa::VotingRoundImpl::isPrimary ( const Id id) const
private

Check if peer.

Parameters
idis primary

Definition at line 677 of file voting_round_impl.cpp.

BlockInfo kagome::consensus::grandpa::VotingRoundImpl::lastFinalizedBlock ( ) const
inlineoverridevirtual

Last finalized block

Returns
Block finalized in previous round (when current one was created)

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 207 of file voting_round_impl.hpp.

bool kagome::consensus::grandpa::VotingRoundImpl::onPrecommit ( const SignedMessage precommit,
Propagation  propagation 
)
overridevirtual

Triggered when we receive precommit for the current round

Parameters
precommitis stored in precommit tracker and vote graph Then we try to update round state and finalize
Returns
true if inner state has changed

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 1017 of file voting_round_impl.cpp.

bool kagome::consensus::grandpa::VotingRoundImpl::onPrevote ( const SignedMessage prevote,
Propagation  propagation 
)
overridevirtual

Triggered when we receive prevote for current round

Parameters
prevoteis stored in prevote tracker and vote graph Then we try to update prevote ghost (
See also
updatePrevoteGhost) and round state (
update)
Returns
true if inner state has changed

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 946 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::onProposal ( const SignedMessage proposal,
Propagation  propagation 
)
overridevirtual

Invoked when we received a primary propose for the current round Basically method just checks if received propose was produced by the primary and if so, it is stored in primary_vote_ field

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 874 of file voting_round_impl.cpp.

template<typename T >
template outcome::result< void > kagome::consensus::grandpa::VotingRoundImpl::onSigned< Precommit > ( const SignedMessage vote)
private

Triggered when we receive {.

Parameters
vote}for the current peer

Definition at line 1142 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::pending ( )
private

Definition at line 1583 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::play ( )
overridevirtual

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 212 of file voting_round_impl.cpp.

RoundNumber kagome::consensus::grandpa::VotingRoundImpl::roundNumber ( ) const
overridevirtual

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 866 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::sendNeighborMessage ( )

Definition at line 1573 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::sendPrecommit ( const Precommit precommit)
private

Definition at line 606 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::sendPrevote ( const Prevote prevote)
private

Definition at line 549 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::sendProposal ( const PrimaryPropose primary_proposal)
private

Definition at line 483 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::startPrecommitStage ( )

Definition at line 314 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::startPrevoteStage ( )

Definition at line 253 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::startWaitingStage ( )

Definition at line 379 of file voting_round_impl.cpp.

MovableRoundState kagome::consensus::grandpa::VotingRoundImpl::state ( ) const
overridevirtual
Returns
state containing round number, last finalized block, votes, and finalized block for this voting round

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 1473 of file voting_round_impl.cpp.

void kagome::consensus::grandpa::VotingRoundImpl::update ( IsPreviousRoundChanged  is_previous_round_changed,
IsPrevotesChanged  is_prevotes_changed,
IsPrecommitsChanged  is_precommits_changed 
)
overridevirtual

Updates inner state if something (see params) was changed since last call

Parameters
is_previous_round_changedis true if previous round is changed
is_prevotes_changedis true if new prevote was accepted
is_precommits_changedis true if new precommits was accepted
Returns
true if finalized block was changed during update

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 1084 of file voting_round_impl.cpp.

bool kagome::consensus::grandpa::VotingRoundImpl::updateEstimate ( )
private

Invoked during each onSingedPrecommit.

Returns
true if estimate was updated

Definition at line 1278 of file voting_round_impl.cpp.

bool kagome::consensus::grandpa::VotingRoundImpl::updateGrandpaGhost ( )
private

Invoked during each onSingedPrevote. Updates current round's grandpa ghost. New grandpa-ghost is the highest block with supermajority of prevotes

Returns
true if prevote ghost was updated
See also
spec: Grandpa-Ghost

Definition at line 1229 of file voting_round_impl.cpp.

outcome::result< void > kagome::consensus::grandpa::VotingRoundImpl::validatePrecommitJustification ( const BlockInfo vote,
const GrandpaJustification justification 
) const
private

Checks if received vote has valid justification precommit

Parameters
vote- block for which justification is provided
justification- justification provided for checking
Returns
success of error

Definition at line 750 of file voting_round_impl.cpp.

VoterSetId kagome::consensus::grandpa::VotingRoundImpl::voterSetId ( ) const
overridevirtual

Implements kagome::consensus::grandpa::VotingRound.

Definition at line 870 of file voting_round_impl.cpp.

Member Data Documentation

std::shared_ptr<const primitives::AuthorityList> kagome::consensus::grandpa::VotingRoundImpl::authorities_
private

Definition at line 312 of file voting_round_impl.hpp.

std::shared_ptr<authority::AuthorityManager> kagome::consensus::grandpa::VotingRoundImpl::authority_manager_
private

Definition at line 311 of file voting_round_impl.hpp.

std::shared_ptr<Clock> kagome::consensus::grandpa::VotingRoundImpl::clock_
private

Definition at line 316 of file voting_round_impl.hpp.

bool kagome::consensus::grandpa::VotingRoundImpl::completable_ = false
private

Definition at line 369 of file voting_round_impl.hpp.

const Duration kagome::consensus::grandpa::VotingRoundImpl::duration_
private

Definition at line 304 of file voting_round_impl.hpp.

std::shared_ptr<Environment> kagome::consensus::grandpa::VotingRoundImpl::env_
private

Definition at line 313 of file voting_round_impl.hpp.

std::optional<BlockInfo> kagome::consensus::grandpa::VotingRoundImpl::estimate_
private

Definition at line 361 of file voting_round_impl.hpp.

std::optional<BlockInfo> kagome::consensus::grandpa::VotingRoundImpl::finalized_
private

Definition at line 362 of file voting_round_impl.hpp.

std::weak_ptr<Grandpa> kagome::consensus::grandpa::VotingRoundImpl::grandpa_
private

Definition at line 310 of file voting_round_impl.hpp.

std::shared_ptr<VoteGraph> kagome::consensus::grandpa::VotingRoundImpl::graph_
private

Definition at line 315 of file voting_round_impl.hpp.

const std::optional<Id> kagome::consensus::grandpa::VotingRoundImpl::id_
private

Definition at line 307 of file voting_round_impl.hpp.

bool kagome::consensus::grandpa::VotingRoundImpl::isPrimary_ = false
private

Definition at line 305 of file voting_round_impl.hpp.

BlockInfo kagome::consensus::grandpa::VotingRoundImpl::last_finalized_block_
private

Definition at line 354 of file voting_round_impl.hpp.

log::Logger kagome::consensus::grandpa::VotingRoundImpl::logger_ = log::createLogger("VotingRound", "voting_round")
private

Definition at line 367 of file voting_round_impl.hpp.

std::function<void()> kagome::consensus::grandpa::VotingRoundImpl::on_complete_handler_
private

Definition at line 319 of file voting_round_impl.hpp.

const std::chrono::milliseconds kagome::consensus::grandpa::VotingRoundImpl::pending_interval_
private
Initial value:
=
std::chrono::duration_cast<std::chrono::milliseconds>(
std::max<Clock::Duration>(duration_ * 10,
std::chrono::seconds(12)))

Definition at line 325 of file voting_round_impl.hpp.

libp2p::basic::Scheduler::Handle kagome::consensus::grandpa::VotingRoundImpl::pending_timer_handle_
private

Definition at line 365 of file voting_round_impl.hpp.

std::optional<BlockInfo> kagome::consensus::grandpa::VotingRoundImpl::precommit_
private

Definition at line 351 of file voting_round_impl.hpp.

std::vector<bool> kagome::consensus::grandpa::VotingRoundImpl::precommit_equivocators_
private

Definition at line 338 of file voting_round_impl.hpp.

std::shared_ptr<VoteTracker> kagome::consensus::grandpa::VotingRoundImpl::precommits_
private

Definition at line 333 of file voting_round_impl.hpp.

std::shared_ptr<VotingRound> kagome::consensus::grandpa::VotingRoundImpl::previous_round_
private

Definition at line 302 of file voting_round_impl.hpp.

std::optional<BlockInfo> kagome::consensus::grandpa::VotingRoundImpl::prevote_
private

Definition at line 346 of file voting_round_impl.hpp.

std::vector<bool> kagome::consensus::grandpa::VotingRoundImpl::prevote_equivocators_
private

Definition at line 337 of file voting_round_impl.hpp.

std::optional<BlockInfo> kagome::consensus::grandpa::VotingRoundImpl::prevote_ghost_
private

Definition at line 359 of file voting_round_impl.hpp.

std::shared_ptr<VoteTracker> kagome::consensus::grandpa::VotingRoundImpl::prevotes_
private

Definition at line 332 of file voting_round_impl.hpp.

std::optional<BlockInfo> kagome::consensus::grandpa::VotingRoundImpl::primary_vote_
private

Definition at line 342 of file voting_round_impl.hpp.

const RoundNumber kagome::consensus::grandpa::VotingRoundImpl::round_number_
private

Definition at line 301 of file voting_round_impl.hpp.

std::shared_ptr<libp2p::basic::Scheduler> kagome::consensus::grandpa::VotingRoundImpl::scheduler_
private

Definition at line 317 of file voting_round_impl.hpp.

Stage kagome::consensus::grandpa::VotingRoundImpl::stage_ = Stage::INIT
private

Definition at line 330 of file voting_round_impl.hpp.

libp2p::basic::Scheduler::Handle kagome::consensus::grandpa::VotingRoundImpl::stage_timer_handle_
private

Definition at line 364 of file voting_round_impl.hpp.

std::chrono::milliseconds kagome::consensus::grandpa::VotingRoundImpl::start_time_
private

Definition at line 308 of file voting_round_impl.hpp.

size_t kagome::consensus::grandpa::VotingRoundImpl::threshold_
private

Definition at line 306 of file voting_round_impl.hpp.

std::shared_ptr<VoteCryptoProvider> kagome::consensus::grandpa::VotingRoundImpl::vote_crypto_provider_
private

Definition at line 314 of file voting_round_impl.hpp.

std::shared_ptr<VoterSet> kagome::consensus::grandpa::VotingRoundImpl::voter_set_
private

Definition at line 300 of file voting_round_impl.hpp.


The documentation for this class was generated from the following files: