ExtVotesPacketHandler is extended abstract PacketHandler with added functions that are used in packet handlers that process pbft votes.
More...
#include <ext_votes_packet_handler.hpp>
|
| ExtVotesPacketHandler (const FullNodeConfig &conf, std::shared_ptr< PeersState > peers_state, std::shared_ptr< TimePeriodPacketsStats > packets_stats, std::shared_ptr< PbftManager > pbft_mgr, std::shared_ptr< PbftChain > pbft_chain, std::shared_ptr< VoteManager > vote_mgr, std::shared_ptr< SlashingManager > slashing_manager, const addr_t &node_addr, const std::string &log_channel_name) |
|
virtual | ~ExtVotesPacketHandler ()=default |
|
| ExtVotesPacketHandler (const ExtVotesPacketHandler &)=delete |
|
| ExtVotesPacketHandler (ExtVotesPacketHandler &&)=delete |
|
ExtVotesPacketHandler & | operator= (const ExtVotesPacketHandler &)=delete |
|
ExtVotesPacketHandler & | operator= (ExtVotesPacketHandler &&)=delete |
|
bool | processVote (const std::shared_ptr< PbftVote > &vote, const std::shared_ptr< PbftBlock > &pbft_block, const std::shared_ptr< TaraxaPeer > &peer, bool validate_max_round_step) |
| Process vote. More...
|
|
bool | isPbftRelevantVote (const std::shared_ptr< PbftVote > &vote) const |
| Checks is vote is relevant for current pbft state in terms of period, round and type. More...
|
|
virtual void | sendPbftVotesBundle (const std::shared_ptr< TaraxaPeer > &peer, std::vector< std::shared_ptr< PbftVote >> &&votes) |
|
Public Member Functions inherited from taraxa::network::tarcap::PacketHandler |
| PacketHandler (const FullNodeConfig &conf, std::shared_ptr< PeersState > peers_state, std::shared_ptr< TimePeriodPacketsStats > packets_stats, const addr_t &node_addr, const std::string &log_channel_name) |
|
virtual | ~PacketHandler ()=default |
|
| PacketHandler (const PacketHandler &)=default |
|
| PacketHandler (PacketHandler &&)=default |
|
PacketHandler & | operator= (const PacketHandler &)=delete |
|
PacketHandler & | operator= (PacketHandler &&)=delete |
|
void | processPacket (const threadpool::PacketData &packet_data) |
| Packet processing function wrapper that logs packet stats and calls process function. More...
|
|
void | requestPbftNextVotesAtPeriodRound (const dev::p2p::NodeID &peerID, PbftPeriod pbft_period, PbftRound pbft_round) |
|
ExtVotesPacketHandler is extended abstract PacketHandler with added functions that are used in packet handlers that process pbft votes.
◆ ExtVotesPacketHandler() [1/3]
◆ ~ExtVotesPacketHandler()
virtual taraxa::network::tarcap::ExtVotesPacketHandler::~ExtVotesPacketHandler |
( |
| ) |
|
|
virtualdefault |
◆ ExtVotesPacketHandler() [2/3]
◆ ExtVotesPacketHandler() [3/3]
◆ isPbftRelevantVote()
bool taraxa::network::tarcap::ExtVotesPacketHandler::isPbftRelevantVote |
( |
const std::shared_ptr< PbftVote > & |
vote | ) |
const |
Checks is vote is relevant for current pbft state in terms of period, round and type.
- Parameters
-
- Returns
- true if vote is relevant for current pbft state, otherwise false
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ processVote()
bool taraxa::network::tarcap::ExtVotesPacketHandler::processVote |
( |
const std::shared_ptr< PbftVote > & |
vote, |
|
|
const std::shared_ptr< PbftBlock > & |
pbft_block, |
|
|
const std::shared_ptr< TaraxaPeer > & |
peer, |
|
|
bool |
validate_max_round_step |
|
) |
| |
Process vote.
- Parameters
-
vote | |
pbft_block | |
peer | |
validate_max_round_step | |
- Returns
- if vote was successfully processed, otherwise false
◆ sendPbftVotesBundle()
void taraxa::network::tarcap::ExtVotesPacketHandler::sendPbftVotesBundle |
( |
const std::shared_ptr< TaraxaPeer > & |
peer, |
|
|
std::vector< std::shared_ptr< PbftVote >> && |
votes |
|
) |
| |
|
virtual |
◆ validateVoteAndBlock()
bool taraxa::network::tarcap::ExtVotesPacketHandler::validateVoteAndBlock |
( |
const std::shared_ptr< PbftVote > & |
vote, |
|
|
const std::shared_ptr< PbftBlock > & |
pbft_block |
|
) |
| const |
|
private |
Validates provided vote if voted value == provided block.
- Parameters
-
- Returns
- true if validation successful, otherwise false
◆ validateVotePeriodRoundStep()
std::pair< bool, std::string > taraxa::network::tarcap::ExtVotesPacketHandler::validateVotePeriodRoundStep |
( |
const std::shared_ptr< PbftVote > & |
vote, |
|
|
const std::shared_ptr< TaraxaPeer > & |
peer, |
|
|
bool |
validate_max_round_step |
|
) |
| |
|
private |
Validates vote period, round and step against max values from config.
- Parameters
-
vote | to be validated |
peer | |
validate_max_round_step | validate also max round and step |
- Returns
- <true, ""> vote validation passed, otherwise <false, "err msg">
◆ kMaxVotesInBundleRlp
constexpr static size_t taraxa::network::tarcap::ExtVotesPacketHandler::kMaxVotesInBundleRlp {1000} |
|
staticconstexprprotected |
◆ kSyncRequestInterval
constexpr static std::chrono::seconds taraxa::network::tarcap::ExtVotesPacketHandler::kSyncRequestInterval = std::chrono::seconds(10) |
|
staticconstexprprotected |
◆ last_pbft_block_sync_request_time_
std::chrono::system_clock::time_point taraxa::network::tarcap::ExtVotesPacketHandler::last_pbft_block_sync_request_time_ |
|
mutableprotected |
◆ last_votes_sync_request_time_
std::chrono::system_clock::time_point taraxa::network::tarcap::ExtVotesPacketHandler::last_votes_sync_request_time_ |
|
mutableprotected |
◆ pbft_chain_
std::shared_ptr<PbftChain> taraxa::network::tarcap::ExtVotesPacketHandler::pbft_chain_ |
|
protected |
◆ pbft_mgr_
std::shared_ptr<PbftManager> taraxa::network::tarcap::ExtVotesPacketHandler::pbft_mgr_ |
|
protected |
◆ slashing_manager_
std::shared_ptr<SlashingManager> taraxa::network::tarcap::ExtVotesPacketHandler::slashing_manager_ |
|
protected |
◆ vote_mgr_
std::shared_ptr<VoteManager> taraxa::network::tarcap::ExtVotesPacketHandler::vote_mgr_ |
|
protected |
The documentation for this class was generated from the following files: