TARAXA
Loading...
Searching...
No Matches
taraxa::network::tarcap::IVotePacketHandler Class Reference

#include <vote_packet_handler.hpp>

Collaboration diagram for taraxa::network::tarcap::IVotePacketHandler:

Public Member Functions

 IVotePacketHandler (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 std::string &log_channel_name)
 
void onNewPbftVote (const std::shared_ptr< PbftVote > &vote, const std::shared_ptr< PbftBlock > &block, bool rebroadcast=false)
 Sends pbft vote to connected peers.
 
virtual void sendPbftVote (const std::shared_ptr< TaraxaPeer > &peer, const std::shared_ptr< PbftVote > &vote, const std::shared_ptr< PbftBlock > &block)
 Sends pbft vote to specified peer.
 
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.
 
virtual void sendPbftVotesBundle (const std::shared_ptr< TaraxaPeer > &peer, std::vector< std::shared_ptr< PbftVote > > &&votes)
 Sends pbft votes bundle to specified peer.
 
- 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 std::string &log_channel_name)
 
virtual ~ExtVotesPacketHandler ()=default
 
 ExtVotesPacketHandler (const ExtVotesPacketHandler &)=delete
 
 ExtVotesPacketHandler (ExtVotesPacketHandler &&)=delete
 
ExtVotesPacketHandleroperator= (const ExtVotesPacketHandler &)=delete
 
ExtVotesPacketHandleroperator= (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.
 
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.
 
void requestPbftNextVotesAtPeriodRound (const dev::p2p::NodeID &peerID, PbftPeriod pbft_period, PbftRound pbft_round)
 
- 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 std::string &log_channel_name)
 
virtual ~PacketHandler ()=default
 
 PacketHandler (const PacketHandler &)=default
 
 PacketHandler (PacketHandler &&)=default
 
PacketHandleroperator= (const PacketHandler &)=delete
 
PacketHandleroperator= (PacketHandler &&)=delete
 
void processPacket (const threadpool::PacketData &packet_data) override
 Packet processing function wrapper that logs packet stats and calls process function.
 
- Public Member Functions inherited from taraxa::network::tarcap::BasePacketHandler
 BasePacketHandler ()=default
 
virtual ~BasePacketHandler ()=default
 
 BasePacketHandler (const BasePacketHandler &)=default
 
 BasePacketHandler (BasePacketHandler &&)=default
 
BasePacketHandleroperator= (const BasePacketHandler &)=default
 
BasePacketHandleroperator= (BasePacketHandler &&)=default
 

Additional Inherited Members

- Protected Member Functions inherited from taraxa::network::tarcap::PacketHandler
bool sealAndSend (const dev::p2p::NodeID &node_id, SubprotocolPacketType packet_type, dev::bytes &&rlp_bytes)
 
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< PbftManagerpbft_mgr_
 
std::shared_ptr< PbftChainpbft_chain_
 
std::shared_ptr< VoteManagervote_mgr_
 
std::shared_ptr< SlashingManagerslashing_manager_
 
- Protected Attributes inherited from taraxa::network::tarcap::PacketHandler
const FullNodeConfigkConf
 
std::shared_ptr< PeersStatepeers_state_ {nullptr}
 
std::shared_ptr< TimePeriodPacketsStatspackets_stats_
 
logger::Logger logger_
 
- Static Protected Attributes inherited from taraxa::network::tarcap::ExtVotesPacketHandler
static constexpr size_t kMaxVotesInBundleRlp {1000}
 
static constexpr std::chrono::seconds kSyncRequestInterval = std::chrono::seconds(10)
 

Constructor & Destructor Documentation

◆ IVotePacketHandler()

taraxa::network::tarcap::IVotePacketHandler::IVotePacketHandler ( 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 std::string &  log_channel_name 
)

Member Function Documentation

◆ onNewPbftVote()

void taraxa::network::tarcap::IVotePacketHandler::onNewPbftVote ( const std::shared_ptr< PbftVote > &  vote,
const std::shared_ptr< PbftBlock > &  block,
bool  rebroadcast = false 
)

Sends pbft vote to connected peers.

Parameters
voteVotes to send
blockblock to send - nullptr means no block
rebroadcast- send even of vote i known for the peer

◆ onNewPbftVotesBundle()

void taraxa::network::tarcap::IVotePacketHandler::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.

Parameters
votesVotes to send
rebroadcastif rebroadcast is true, all votes are resent to all peers
exclude_nodedo not send votes to excluded node

◆ sendPbftVote()

void taraxa::network::tarcap::IVotePacketHandler::sendPbftVote ( const std::shared_ptr< TaraxaPeer > &  peer,
const std::shared_ptr< PbftVote > &  vote,
const std::shared_ptr< PbftBlock > &  block 
)
virtual

Sends pbft vote to specified peer.

Parameters
peer
vote
block

◆ sendPbftVotesBundle()

void taraxa::network::tarcap::IVotePacketHandler::sendPbftVotesBundle ( const std::shared_ptr< TaraxaPeer > &  peer,
std::vector< std::shared_ptr< PbftVote > > &&  votes 
)
virtual

Sends pbft votes bundle to specified peer.

Parameters
peer
vote
block

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