TARAXA
get_pbft_sync_packet_handler.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../latest/common/packet_handler.hpp"
4 
5 namespace taraxa {
6 class PbftChain;
7 class DbStorage;
8 class VoteManager;
9 } // namespace taraxa
10 
11 namespace taraxa::network::tarcap {
12 class PbftSyncingState;
13 }
14 
17  public:
18  GetPbftSyncPacketHandler(const FullNodeConfig& conf, std::shared_ptr<taraxa::network::tarcap::PeersState> peers_state,
19  std::shared_ptr<taraxa::network::tarcap::TimePeriodPacketsStats> packets_stats,
20  std::shared_ptr<PbftSyncingState> pbft_syncing_state, std::shared_ptr<PbftChain> pbft_chain,
21  std::shared_ptr<VoteManager> vote_mgr, std::shared_ptr<DbStorage> db,
22  const addr_t& node_addr, const std::string& logs_prefix = "GET_PBFT_SYNC_PH");
23 
24  // Packet type that is processed by this handler
26 
27  private:
28  virtual void validatePacketRlpFormat(const threadpool::PacketData& packet_data) const override;
29  virtual void process(const threadpool::PacketData& packet_data, const std::shared_ptr<TaraxaPeer>& peer) override;
30 
31  virtual void sendPbftBlocks(const std::shared_ptr<TaraxaPeer>& peer, PbftPeriod from_period,
32  size_t blocks_to_transfer, bool pbft_chain_synced);
33 
34  protected:
35  std::shared_ptr<PbftSyncingState> pbft_syncing_state_;
36  std::shared_ptr<PbftChain> pbft_chain_;
37  std::shared_ptr<VoteManager> vote_mgr_;
38  std::shared_ptr<DbStorage> db_;
39 };
40 
41 } // namespace taraxa::network::tarcap::v3
Definition: FixedHash.h:35
Packet handler base class that consists of shared state and some commonly used functions.
Definition: packet_handler.hpp:25
Definition: get_pbft_sync_packet_handler.hpp:16
virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer) override
Main packet processing function.
Definition: get_pbft_sync_packet_handler.cpp:32
std::shared_ptr< PbftSyncingState > pbft_syncing_state_
Definition: get_pbft_sync_packet_handler.hpp:35
virtual void sendPbftBlocks(const std::shared_ptr< TaraxaPeer > &peer, PbftPeriod from_period, size_t blocks_to_transfer, bool pbft_chain_synced)
Definition: get_pbft_sync_packet_handler.cpp:69
std::shared_ptr< VoteManager > vote_mgr_
Definition: get_pbft_sync_packet_handler.hpp:37
static constexpr SubprotocolPacketType kPacketType_
Definition: get_pbft_sync_packet_handler.hpp:25
std::shared_ptr< DbStorage > db_
Definition: get_pbft_sync_packet_handler.hpp:38
virtual void validatePacketRlpFormat(const threadpool::PacketData &packet_data) const override
Validates packet rlp format - items count.
Definition: get_pbft_sync_packet_handler.cpp:26
GetPbftSyncPacketHandler(const FullNodeConfig &conf, std::shared_ptr< taraxa::network::tarcap::PeersState > peers_state, std::shared_ptr< taraxa::network::tarcap::TimePeriodPacketsStats > packets_stats, std::shared_ptr< PbftSyncingState > pbft_syncing_state, std::shared_ptr< PbftChain > pbft_chain, std::shared_ptr< VoteManager > vote_mgr, std::shared_ptr< DbStorage > db, const addr_t &node_addr, const std::string &logs_prefix="GET_PBFT_SYNC_PH")
std::shared_ptr< PbftChain > pbft_chain_
Definition: get_pbft_sync_packet_handler.hpp:36
Definition: packet_data.hpp:12
Definition: get_pbft_sync_packet_handler.hpp:15
Definition: vote_manager.hpp:23
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition: packet_types.hpp:12
@ GetPbftSyncPacket
Definition: packet_types.hpp:29
Definition: config.hpp:8
EthBlockNumber PbftPeriod
Definition: types.hpp:24
Definition: config.hpp:24