TARAXA
vote_packet_handler.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace taraxa::network::tarcap {
6 
8  public:
9  VotePacketHandler(const FullNodeConfig& conf, std::shared_ptr<PeersState> peers_state,
10  std::shared_ptr<TimePeriodPacketsStats> packets_stats, std::shared_ptr<PbftManager> pbft_mgr,
11  std::shared_ptr<PbftChain> pbft_chain, std::shared_ptr<VoteManager> vote_mgr,
12  std::shared_ptr<SlashingManager> slashing_manager, const addr_t& node_addr,
13  const std::string& logs_prefix = "");
14 
22  void onNewPbftVote(const std::shared_ptr<PbftVote>& vote, const std::shared_ptr<PbftBlock>& block,
23  bool rebroadcast = false);
24  void sendPbftVote(const std::shared_ptr<TaraxaPeer>& peer, const std::shared_ptr<PbftVote>& vote,
25  const std::shared_ptr<PbftBlock>& block);
26 
27  // Packet type that is processed by this handler
29 
30  private:
31  virtual void validatePacketRlpFormat(const threadpool::PacketData& packet_data) const override;
32  virtual void process(const threadpool::PacketData& packet_data, const std::shared_ptr<TaraxaPeer>& peer) override;
33 
34  protected:
35  const size_t kVotePacketSize{1};
36  const size_t kExtendedVotePacketSize{3};
37 };
38 
39 } // namespace taraxa::network::tarcap
Definition: FixedHash.h:35
ExtVotesPacketHandler is extended abstract PacketHandler with added functions that are used in packet...
Definition: ext_votes_packet_handler.hpp:20
Definition: vote_packet_handler.hpp:7
virtual void validatePacketRlpFormat(const threadpool::PacketData &packet_data) const override
Validates packet rlp format - items count.
Definition: vote_packet_handler.cpp:18
VotePacketHandler(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="")
Definition: vote_packet_handler.cpp:8
const size_t kExtendedVotePacketSize
Definition: vote_packet_handler.hpp:36
static constexpr SubprotocolPacketType kPacketType_
Definition: vote_packet_handler.hpp:28
void onNewPbftVote(const std::shared_ptr< PbftVote > &vote, const std::shared_ptr< PbftBlock > &block, bool rebroadcast=false)
Sends pbft vote to connected peers.
Definition: vote_packet_handler.cpp:88
const size_t kVotePacketSize
Definition: vote_packet_handler.hpp:35
virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer) override
Main packet processing function.
Definition: vote_packet_handler.cpp:26
void sendPbftVote(const std::shared_ptr< TaraxaPeer > &peer, const std::shared_ptr< PbftVote > &vote, const std::shared_ptr< PbftBlock > &block)
Definition: vote_packet_handler.cpp:109
Definition: packet_data.hpp:12
Definition: vote_manager.hpp:23
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition: packet_types.hpp:12
@ VotePacket
Definition: packet_types.hpp:15
Definition: config.hpp:24