TARAXA
status_packet_handler.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace taraxa::network::tarcap {
6 
8  public:
9  StatusPacketHandler(const FullNodeConfig& conf, std::shared_ptr<PeersState> peers_state,
10  std::shared_ptr<TimePeriodPacketsStats> packets_stats,
11  std::shared_ptr<PbftSyncingState> pbft_syncing_state, std::shared_ptr<PbftChain> pbft_chain,
12  std::shared_ptr<PbftManager> pbft_mgr, std::shared_ptr<DagManager> dag_mgr,
13  std::shared_ptr<DbStorage> db, h256 genesis_hash, const addr_t& node_addr,
14  const std::string& logs_prefix = "STATUS_PH");
15 
16  bool sendStatus(const dev::p2p::NodeID& node_id, bool initial);
17  void sendStatusToPeers();
18 
19  // Packet type that is processed by this handler
21 
22  private:
23  virtual void validatePacketRlpFormat(const threadpool::PacketData& packet_data) const override;
24  virtual void process(const threadpool::PacketData& packet_data, const std::shared_ptr<TaraxaPeer>& peer) override;
25 
26  protected:
27  static constexpr uint16_t kInitialStatusPacketItemsCount = 11;
28  static constexpr uint16_t kStandardStatusPacketItemsCount = 4;
29 
31 };
32 
33 } // namespace taraxa::network::tarcap
ExtSyncingPacketHandler is extended abstract PacketHandler with added functions that are used in pack...
Definition: ext_syncing_packet_handler.hpp:21
Definition: status_packet_handler.hpp:7
StatusPacketHandler(const FullNodeConfig &conf, std::shared_ptr< PeersState > peers_state, std::shared_ptr< TimePeriodPacketsStats > packets_stats, std::shared_ptr< PbftSyncingState > pbft_syncing_state, std::shared_ptr< PbftChain > pbft_chain, std::shared_ptr< PbftManager > pbft_mgr, std::shared_ptr< DagManager > dag_mgr, std::shared_ptr< DbStorage > db, h256 genesis_hash, const addr_t &node_addr, const std::string &logs_prefix="STATUS_PH")
Definition: status_packet_handler.cpp:13
virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer) override
Main packet processing function.
Definition: status_packet_handler.cpp:32
const h256 kGenesisHash
Definition: status_packet_handler.hpp:30
bool sendStatus(const dev::p2p::NodeID &node_id, bool initial)
Definition: status_packet_handler.cpp:157
void sendStatusToPeers()
Definition: status_packet_handler.cpp:186
static constexpr uint16_t kStandardStatusPacketItemsCount
Definition: status_packet_handler.hpp:28
static constexpr uint16_t kInitialStatusPacketItemsCount
Definition: status_packet_handler.hpp:27
static constexpr SubprotocolPacketType kPacketType_
Definition: status_packet_handler.hpp:20
virtual void validatePacketRlpFormat(const threadpool::PacketData &packet_data) const override
Validates packet rlp format - items count.
Definition: status_packet_handler.cpp:24
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
@ StatusPacket
Definition: packet_types.hpp:28
Definition: config.hpp:24