TARAXA
|
#include <votes_bundle_packet_handler.hpp>
Public Member Functions | |
VotesBundlePacketHandler (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 &logs_prefix="") | |
void | onNewPbftVotesBundle (const std::vector< std::shared_ptr< PbftVote >> &votes, bool rebroadcast=false, const std::optional< dev::p2p::NodeID > &exclude_node={}) |
Sends pbft votes bundle to connected peers. More... | |
Public Member Functions inherited from taraxa::network::tarcap::ExtVotesPacketHandler | |
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) |
Static Public Attributes | |
static constexpr SubprotocolPacketType | kPacketType_ = SubprotocolPacketType::VotesBundlePacket |
Private Member Functions | |
virtual void | validatePacketRlpFormat (const threadpool::PacketData &packet_data) const override |
Validates packet rlp format - items count. More... | |
virtual void | process (const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer) override |
Main packet processing function. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from taraxa::network::tarcap::PacketHandler | |
void | checkPacketRlpIsList (const threadpool::PacketData &packet_data) const |
Checks if packet rlp is a list, if not it throws InvalidRlpItemsCountException. More... | |
bool | sealAndSend (const dev::p2p::NodeID &nodeID, SubprotocolPacketType packet_type, dev::RLPStream &&rlp) |
void | disconnect (const dev::p2p::NodeID &node_id, dev::p2p::DisconnectReason reason) |
Protected Attributes inherited from taraxa::network::tarcap::ExtVotesPacketHandler | |
std::chrono::system_clock::time_point | last_votes_sync_request_time_ |
std::chrono::system_clock::time_point | last_pbft_block_sync_request_time_ |
std::shared_ptr< PbftManager > | pbft_mgr_ |
std::shared_ptr< PbftChain > | pbft_chain_ |
std::shared_ptr< VoteManager > | vote_mgr_ |
std::shared_ptr< SlashingManager > | slashing_manager_ |
Protected Attributes inherited from taraxa::network::tarcap::PacketHandler | |
const FullNodeConfig & | kConf |
std::shared_ptr< PeersState > | peers_state_ {nullptr} |
std::shared_ptr< TimePeriodPacketsStats > | packets_stats_ |
Static Protected Attributes inherited from taraxa::network::tarcap::ExtVotesPacketHandler | |
constexpr static size_t | kMaxVotesInBundleRlp {1000} |
constexpr static std::chrono::seconds | kSyncRequestInterval = std::chrono::seconds(10) |
taraxa::network::tarcap::VotesBundlePacketHandler::VotesBundlePacketHandler | ( | 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 & | logs_prefix = "" |
||
) |
void taraxa::network::tarcap::VotesBundlePacketHandler::onNewPbftVotesBundle | ( | const std::vector< std::shared_ptr< PbftVote >> & | votes, |
bool | rebroadcast = false , |
||
const std::optional< dev::p2p::NodeID > & | exclude_node = {} |
||
) |
Sends pbft votes bundle to connected peers.
votes | Votes to send |
rebroadcast | if rebroadcast is true, all votes are resent to all peers |
exclude_node | do not send votes to excluded node |
|
overrideprivatevirtual |
Main packet processing function.
Implements taraxa::network::tarcap::PacketHandler.
|
overrideprivatevirtual |
Validates packet rlp format - items count.
InvalidRlpItemsCountException | exception |
Implements taraxa::network::tarcap::PacketHandler.
|
staticconstexpr |