TARAXA
Loading...
Searching...
No Matches
taraxa::network::tarcap::ITransactionPacketHandler Class Referenceabstract

#include <transaction_packet_handler.hpp>

Collaboration diagram for taraxa::network::tarcap::ITransactionPacketHandler:

Public Member Functions

 ITransactionPacketHandler (const FullNodeConfig &conf, std::shared_ptr< PeersState > peers_state, std::shared_ptr< TimePeriodPacketsStats > packets_stats, const std::string &log_channel_name)
 
void periodicSendTransactions (std::vector< SharedTransactions > &&transactions)
 Sends batch of transactions to all connected peers.
 
virtual void sendTransactions (std::shared_ptr< TaraxaPeer > peer, std::pair< SharedTransactions, std::vector< trx_hash_t > > &&transactions)=0
 Send transactions.
 
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
 
- Public Member Functions inherited from taraxa::network::tarcap::PacketHandler
 PacketHandler (const FullNodeConfig &conf, std::shared_ptr< PeersState > peers_state, std::shared_ptr< TimePeriodPacketsStats > packets_stats, const std::string &log_channel_name)
 
virtual ~PacketHandler ()=default
 
 PacketHandler (const PacketHandler &)=default
 
 PacketHandler (PacketHandler &&)=default
 
PacketHandleroperator= (const PacketHandler &)=delete
 
PacketHandleroperator= (PacketHandler &&)=delete
 
void processPacket (const threadpool::PacketData &packet_data) override
 Packet processing function wrapper that logs packet stats and calls process function.
 
- Public Member Functions inherited from taraxa::network::tarcap::BasePacketHandler
 BasePacketHandler ()=default
 
virtual ~BasePacketHandler ()=default
 
 BasePacketHandler (const BasePacketHandler &)=default
 
 BasePacketHandler (BasePacketHandler &&)=default
 
BasePacketHandleroperator= (const BasePacketHandler &)=default
 
BasePacketHandleroperator= (BasePacketHandler &&)=default
 

Private Member Functions

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
 

Additional Inherited Members

- Protected Member Functions inherited from taraxa::network::tarcap::PacketHandler
bool sealAndSend (const dev::p2p::NodeID &node_id, SubprotocolPacketType packet_type, dev::bytes &&rlp_bytes)
 
void disconnect (const dev::p2p::NodeID &node_id, dev::p2p::DisconnectReason reason)
 
- Protected Attributes inherited from taraxa::network::tarcap::PacketHandler
const FullNodeConfigkConf
 
std::shared_ptr< PeersStatepeers_state_ {nullptr}
 
std::shared_ptr< TimePeriodPacketsStatspackets_stats_
 
logger::Logger logger_
 

Constructor & Destructor Documentation

◆ ITransactionPacketHandler()

taraxa::network::tarcap::ITransactionPacketHandler::ITransactionPacketHandler ( const FullNodeConfig conf,
std::shared_ptr< PeersState peers_state,
std::shared_ptr< TimePeriodPacketsStats packets_stats,
const std::string &  log_channel_name 
)

Member Function Documentation

◆ periodicSendTransactions()

void taraxa::network::tarcap::ITransactionPacketHandler::periodicSendTransactions ( std::vector< SharedTransactions > &&  transactions)

Sends batch of transactions to all connected peers.

Note
This method is used as periodic event to broadcast transactions to the other peers in network
Parameters
transactionsto be sent

◆ sendTransactions()

virtual void taraxa::network::tarcap::ITransactionPacketHandler::sendTransactions ( std::shared_ptr< TaraxaPeer peer,
std::pair< SharedTransactions, std::vector< trx_hash_t > > &&  transactions 
)
pure virtual

Send transactions.

Parameters
peerpeer to send transactions to
transactionsserialized transactions

Implemented in taraxa::network::tarcap::TransactionPacketHandler.

◆ transactionsToSendToPeer()

std::pair< uint32_t, std::pair< SharedTransactions, std::vector< trx_hash_t > > > taraxa::network::tarcap::ITransactionPacketHandler::transactionsToSendToPeer ( std::shared_ptr< TaraxaPeer peer,
const std::vector< SharedTransactions > &  transactions,
uint32_t  account_start_index 
)
private

select which transactions and hashes to send to peer

Parameters
peer
transactionsgrouped per account to be sent
account_start_indexwhich account to start with
Returns
index of the next account to continue and selected transactions and hashes to be sent per peer

◆ transactionsToSendToPeers()

std::vector< std::pair< std::shared_ptr< TaraxaPeer >, std::pair< SharedTransactions, std::vector< trx_hash_t > > > > taraxa::network::tarcap::ITransactionPacketHandler::transactionsToSendToPeers ( std::vector< SharedTransactions > &&  transactions)

select which transactions and hashes to send to which connected peer

Parameters
transactionsto be sent
Returns
selected transactions and hashes to be sent per peer

The documentation for this class was generated from the following files: