28 std::shared_ptr<TimePeriodPacketsStats> packets_stats,
const addr_t& node_addr,
29 const std::string& log_channel_name);
49 bool set_peer_as_malicious =
false);
Definition: FixedHash.h:35
Class for writing to an RLP bytestream.
Definition: RLP.h:484
Packet handler base class that consists of shared state and some commonly used functions.
Definition: packet_handler.hpp:25
PacketHandler(PacketHandler &&)=default
const FullNodeConfig & kConf
Definition: packet_handler.hpp:77
PacketHandler & operator=(PacketHandler &&)=delete
void processPacket(const threadpool::PacketData &packet_data)
Packet processing function wrapper that logs packet stats and calls process function.
Definition: packet_handler.cpp:21
std::shared_ptr< TimePeriodPacketsStats > packets_stats_
Definition: packet_handler.hpp:82
void disconnect(const dev::p2p::NodeID &node_id, dev::p2p::DisconnectReason reason)
Definition: packet_handler.cpp:128
PacketHandler(const PacketHandler &)=default
void checkPacketRlpIsList(const threadpool::PacketData &packet_data) const
Checks if packet rlp is a list, if not it throws InvalidRlpItemsCountException.
Definition: packet_handler.cpp:15
void handle_caught_exception(std::string_view exception_msg, const threadpool::PacketData &packet_data, const dev::p2p::NodeID &peer, dev::p2p::DisconnectReason disconnect_reason=dev::p2p::DisconnectReason::UserReason, bool set_peer_as_malicious=false)
Definition: packet_handler.cpp:80
virtual void validatePacketRlpFormat(const threadpool::PacketData &packet_data) const =0
Validates packet rlp format - items count.
std::shared_ptr< PeersState > peers_state_
Definition: packet_handler.hpp:79
PacketHandler & operator=(const PacketHandler &)=delete
virtual ~PacketHandler()=default
bool sealAndSend(const dev::p2p::NodeID &nodeID, SubprotocolPacketType packet_type, dev::RLPStream &&rlp)
Definition: packet_handler.cpp:94
virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer)=0
Main packet processing function.
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)
Definition: packet_handler.cpp:8
void requestPbftNextVotesAtPeriodRound(const dev::p2p::NodeID &peerID, PbftPeriod pbft_period, PbftRound pbft_round)
Definition: packet_handler.cpp:137
Stats for all received and sent packets of all types.
Definition: time_period_packets_stats.hpp:16
Definition: packet_data.hpp:12
#define LOG_OBJECTS_DEFINE
Definition: logger.hpp:60
DisconnectReason
Definition: Common.h:85
@ UserReason
Definition: Common.h:98
bytes rlp(_T _t)
Export a single item in RLP format, returning a byte array.
Definition: RLP.h:665
Definition: vote_manager.hpp:23
constexpr char TARAXA_CAPABILITY_NAME[]
Definition: packet_handler.hpp:18
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition: packet_types.hpp:12
uint32_t PbftRound
Definition: types.hpp:25
EthBlockNumber PbftPeriod
Definition: types.hpp:24
Definition: config.hpp:24