TARAXA
dag_block_packet_handler.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace taraxa {
6 class TransactionManager;
7 } // namespace taraxa
8 
9 namespace taraxa::network::tarcap {
10 
11 class TestState;
12 
14  public:
15  DagBlockPacketHandler(const FullNodeConfig &conf, std::shared_ptr<PeersState> peers_state,
16  std::shared_ptr<TimePeriodPacketsStats> packets_stats,
17  std::shared_ptr<PbftSyncingState> pbft_syncing_state, std::shared_ptr<PbftChain> pbft_chain,
18  std::shared_ptr<PbftManager> pbft_mgr, std::shared_ptr<DagManager> dag_mgr,
19  std::shared_ptr<TransactionManager> trx_mgr, std::shared_ptr<DbStorage> db,
20  const addr_t &node_addr, const std::string &logs_prefix = "");
21 
22  void sendBlockWithTransactions(dev::p2p::NodeID const &peer_id, DagBlock block, const SharedTransactions &trxs);
23  void onNewBlockReceived(DagBlock &&block, const std::shared_ptr<TaraxaPeer> &peer = nullptr,
24  const std::unordered_map<trx_hash_t, std::shared_ptr<Transaction>> &trxs = {});
25  void onNewBlockVerified(const DagBlock &block, bool proposed, const SharedTransactions &trxs);
26 
27  // Packet type that is processed by this handler
29 
30  private:
31  virtual void validatePacketRlpFormat(const threadpool::PacketData &packet_data) const override;
32  virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr<TaraxaPeer> &peer) override;
33 
34  protected:
35  std::shared_ptr<TransactionManager> trx_mgr_{nullptr};
36 };
37 
38 } // namespace taraxa::network::tarcap
Definition: FixedHash.h:35
DagBlock class is a DAG block class which main data is a list of transaction hashes included in the b...
Definition: dag_block.hpp:16
Definition: dag_block_packet_handler.hpp:13
virtual void validatePacketRlpFormat(const threadpool::PacketData &packet_data) const override
Validates packet rlp format - items count.
Definition: dag_block_packet_handler.cpp:22
void sendBlockWithTransactions(dev::p2p::NodeID const &peer_id, DagBlock block, const SharedTransactions &trxs)
Definition: dag_block_packet_handler.cpp:67
void onNewBlockReceived(DagBlock &&block, const std::shared_ptr< TaraxaPeer > &peer=nullptr, const std::unordered_map< trx_hash_t, std::shared_ptr< Transaction >> &trxs={})
Definition: dag_block_packet_handler.cpp:100
std::shared_ptr< TransactionManager > trx_mgr_
Definition: dag_block_packet_handler.hpp:35
void onNewBlockVerified(const DagBlock &block, bool proposed, const SharedTransactions &trxs)
Definition: dag_block_packet_handler.cpp:194
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="")
Definition: dag_block_packet_handler.cpp:10
virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer) override
Main packet processing function.
Definition: dag_block_packet_handler.cpp:30
static constexpr SubprotocolPacketType kPacketType_
Definition: dag_block_packet_handler.hpp:28
ExtSyncingPacketHandler is extended abstract PacketHandler with added functions that are used in pack...
Definition: ext_syncing_packet_handler.hpp:21
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
@ DagBlockPacket
Definition: packet_types.hpp:21
Definition: config.hpp:8
std::vector< SharedTransaction > SharedTransactions
Definition: transaction.hpp:81
Definition: config.hpp:24