7 class TransactionManager;
18 std::shared_ptr<TimePeriodPacketsStats> packets_stats,
19 std::shared_ptr<TransactionManager> trx_mgr,
const addr_t& node_addr,
20 const std::string& logs_prefix =
"TRANSACTION_PH");
57 std::vector<std::pair<std::shared_ptr<TaraxaPeer>, std::pair<SharedTransactions, std::vector<trx_hash_t>>>>
69 std::shared_ptr<TaraxaPeer> peer,
const std::vector<SharedTransactions>& transactions,
70 uint32_t account_start_index);
Definition: FixedHash.h:35
Packet handler base class that consists of shared state and some commonly used functions.
Definition: packet_handler.hpp:25
Definition: transaction_packet_handler.hpp:15
virtual void validatePacketRlpFormat(const threadpool::PacketData &packet_data) const override
Validates packet rlp format - items count.
Definition: transaction_packet_handler.cpp:17
virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer) override
Main packet processing function.
Definition: transaction_packet_handler.cpp:38
void periodicSendTransactions(std::vector< SharedTransactions > &&transactions)
Sends batch of transactions to all connected peers.
Definition: transaction_packet_handler.cpp:177
std::shared_ptr< TransactionManager > trx_mgr_
Definition: transaction_packet_handler.hpp:72
std::vector< std::pair< std::shared_ptr< TaraxaPeer >, std::pair< SharedTransactions, std::vector< trx_hash_t > > > > transactionsToSendToPeers(std::vector< SharedTransactions > &&transactions)
select which transactions and hashes to send to which connected peer
Definition: transaction_packet_handler.cpp:147
static constexpr SubprotocolPacketType kPacketType_
Definition: transaction_packet_handler.hpp:41
TransactionPacketHandler(const FullNodeConfig &conf, std::shared_ptr< PeersState > peers_state, std::shared_ptr< TimePeriodPacketsStats > packets_stats, std::shared_ptr< TransactionManager > trx_mgr, const addr_t &node_addr, const std::string &logs_prefix="TRANSACTION_PH")
Definition: transaction_packet_handler.cpp:10
std::atomic< uint64_t > unique_received_trx_count_
Definition: transaction_packet_handler.hpp:75
std::atomic< uint64_t > received_trx_count_
Definition: transaction_packet_handler.hpp:74
static constexpr uint32_t kTransactionPacketItemCount
Definition: transaction_packet_handler.hpp:44
std::pair< uint32_t, std::pair< SharedTransactions, std::vector< trx_hash_t > > > transactionsToSendToPeer(std::shared_ptr< TaraxaPeer > peer, const std::vector< SharedTransactions > &transactions, uint32_t account_start_index)
select which transactions and hashes to send to peer
Definition: transaction_packet_handler.cpp:103
void sendTransactions(std::shared_ptr< TaraxaPeer > peer, std::pair< SharedTransactions, std::vector< trx_hash_t >> &&transactions)
Send transactions.
Definition: transaction_packet_handler.cpp:190
Definition: packet_data.hpp:12
TransactionStatus
TransactionStatus enum class defines current transaction status.
Definition: transaction_manager.hpp:19
Definition: vote_manager.hpp:23
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition: packet_types.hpp:12
@ TransactionPacket
Definition: packet_types.hpp:24
std::vector< SharedTransaction > SharedTransactions
Definition: transaction.hpp:81
Definition: config.hpp:24