TARAXA
|
#include <dag_block_packet_handler.hpp>
Public Member Functions | |
DagBlockPacketHandler (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< TransactionManager > trx_mgr, std::shared_ptr< DbStorage > db, const addr_t &node_addr, const std::string &logs_prefix="") | |
void | sendBlockWithTransactions (dev::p2p::NodeID const &peer_id, DagBlock block, const SharedTransactions &trxs) |
void | onNewBlockReceived (DagBlock &&block, const std::shared_ptr< TaraxaPeer > &peer=nullptr, const std::unordered_map< trx_hash_t, std::shared_ptr< Transaction >> &trxs={}) |
void | onNewBlockVerified (const DagBlock &block, bool proposed, const SharedTransactions &trxs) |
Public Member Functions inherited from taraxa::network::tarcap::ExtSyncingPacketHandler | |
ExtSyncingPacketHandler (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, const addr_t &node_addr, const std::string &log_channel_name) | |
virtual | ~ExtSyncingPacketHandler ()=default |
ExtSyncingPacketHandler & | operator= (const ExtSyncingPacketHandler &)=delete |
ExtSyncingPacketHandler & | operator= (ExtSyncingPacketHandler &&)=delete |
void | startSyncingPbft () |
Start syncing pbft if needed. More... | |
bool | syncPeerPbft (PbftPeriod request_period) |
Send sync request to the current syncing peer with specified request_period. More... | |
void | requestDagBlocks (const dev::p2p::NodeID &_nodeID, const std::unordered_set< blk_hash_t > &blocks, PbftPeriod period) |
void | requestPendingDagBlocks (std::shared_ptr< TaraxaPeer > peer=nullptr) |
std::shared_ptr< TaraxaPeer > | getMaxChainPeer (std::function< bool(const std::shared_ptr< TaraxaPeer > &)> filter_func=[](const std::shared_ptr< TaraxaPeer > &) { return true;}) |
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 addr_t &node_addr, const std::string &log_channel_name) | |
virtual | ~PacketHandler ()=default |
PacketHandler (const PacketHandler &)=default | |
PacketHandler (PacketHandler &&)=default | |
PacketHandler & | operator= (const PacketHandler &)=delete |
PacketHandler & | operator= (PacketHandler &&)=delete |
void | processPacket (const threadpool::PacketData &packet_data) |
Packet processing function wrapper that logs packet stats and calls process function. More... | |
void | requestPbftNextVotesAtPeriodRound (const dev::p2p::NodeID &peerID, PbftPeriod pbft_period, PbftRound pbft_round) |
Static Public Attributes | |
static constexpr SubprotocolPacketType | kPacketType_ = SubprotocolPacketType::DagBlockPacket |
Protected Attributes | |
std::shared_ptr< TransactionManager > | trx_mgr_ {nullptr} |
Protected Attributes inherited from taraxa::network::tarcap::ExtSyncingPacketHandler | |
std::shared_ptr< PbftSyncingState > | pbft_syncing_state_ {nullptr} |
std::shared_ptr< PbftChain > | pbft_chain_ {nullptr} |
std::shared_ptr< PbftManager > | pbft_mgr_ {nullptr} |
std::shared_ptr< DagManager > | dag_mgr_ {nullptr} |
std::shared_ptr< DbStorage > | db_ {nullptr} |
Protected Attributes inherited from taraxa::network::tarcap::PacketHandler | |
const FullNodeConfig & | kConf |
std::shared_ptr< PeersState > | peers_state_ {nullptr} |
std::shared_ptr< TimePeriodPacketsStats > | packets_stats_ |
Private Member Functions | |
virtual void | validatePacketRlpFormat (const threadpool::PacketData &packet_data) const override |
Validates packet rlp format - items count. More... | |
virtual void | process (const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer) override |
Main packet processing function. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from taraxa::network::tarcap::PacketHandler | |
void | checkPacketRlpIsList (const threadpool::PacketData &packet_data) const |
Checks if packet rlp is a list, if not it throws InvalidRlpItemsCountException. More... | |
bool | sealAndSend (const dev::p2p::NodeID &nodeID, SubprotocolPacketType packet_type, dev::RLPStream &&rlp) |
void | disconnect (const dev::p2p::NodeID &node_id, dev::p2p::DisconnectReason reason) |
taraxa::network::tarcap::DagBlockPacketHandler::DagBlockPacketHandler | ( | 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< TransactionManager > | trx_mgr, | ||
std::shared_ptr< DbStorage > | db, | ||
const addr_t & | node_addr, | ||
const std::string & | logs_prefix = "" |
||
) |
void taraxa::network::tarcap::DagBlockPacketHandler::onNewBlockReceived | ( | DagBlock && | block, |
const std::shared_ptr< TaraxaPeer > & | peer = nullptr , |
||
const std::unordered_map< trx_hash_t, std::shared_ptr< Transaction >> & | trxs = {} |
||
) |
void taraxa::network::tarcap::DagBlockPacketHandler::onNewBlockVerified | ( | const DagBlock & | block, |
bool | proposed, | ||
const SharedTransactions & | trxs | ||
) |
|
overrideprivatevirtual |
Main packet processing function.
Implements taraxa::network::tarcap::PacketHandler.
void taraxa::network::tarcap::DagBlockPacketHandler::sendBlockWithTransactions | ( | dev::p2p::NodeID const & | peer_id, |
taraxa::DagBlock | block, | ||
const SharedTransactions & | trxs | ||
) |
|
overrideprivatevirtual |
Validates packet rlp format - items count.
InvalidRlpItemsCountException | exception |
Implements taraxa::network::tarcap::PacketHandler.
|
staticconstexpr |
|
protected |