TARAXA
Loading...
Searching...
No Matches
pbft_sync_packet_handler.hpp
Go to the documentation of this file.
1#pragma once
2
7
9
11 public:
12 PbftSyncPacketHandler(const FullNodeConfig& conf, std::shared_ptr<PeersState> peers_state,
13 std::shared_ptr<TimePeriodPacketsStats> packets_stats,
14 std::shared_ptr<PbftSyncingState> pbft_syncing_state, std::shared_ptr<PbftChain> pbft_chain,
15 std::shared_ptr<PbftManager> pbft_mgr, std::shared_ptr<DagManager> dag_mgr,
16 std::shared_ptr<VoteManager> vote_mgr, std::shared_ptr<DbStorage> db,
17 const std::string& logs_prefix = "");
18
19 // Packet type that is processed by this handler
21
22 private:
23 virtual void process(const threadpool::PacketData& packet_data, const std::shared_ptr<TaraxaPeer>& peer) override;
24
25 protected:
26 virtual PeriodData decodePeriodData(const dev::RLP& period_data_rlp) const;
27 virtual std::vector<std::shared_ptr<PbftVote>> decodeVotesBundle(const dev::RLP& votes_bundle_rlp) const;
28
29 void pbftSyncComplete();
30 void delayedPbftSync(uint32_t counter);
31
32 static constexpr uint32_t kDelayedPbftSyncDelayMs = 10;
33
34 std::shared_ptr<VoteManager> vote_mgr_;
36};
37
38} // namespace taraxa::network::tarcap
Definition RLP.h:56
Definition sync_packet_handler.hpp:7
Definition pbft_sync_packet_handler.hpp:10
util::ThreadPool periodic_events_tp_
Definition pbft_sync_packet_handler.hpp:35
virtual std::vector< std::shared_ptr< PbftVote > > decodeVotesBundle(const dev::RLP &votes_bundle_rlp) const
Definition pbft_sync_packet_handler.cpp:216
static constexpr uint32_t kDelayedPbftSyncDelayMs
Definition pbft_sync_packet_handler.hpp:32
void delayedPbftSync(uint32_t counter)
Definition pbft_sync_packet_handler.cpp:240
static constexpr SubprotocolPacketType kPacketType_
Definition pbft_sync_packet_handler.hpp:20
std::shared_ptr< VoteManager > vote_mgr_
Definition pbft_sync_packet_handler.hpp:34
virtual PeriodData decodePeriodData(const dev::RLP &period_data_rlp) const
Definition pbft_sync_packet_handler.cpp:212
virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer) override
Main packet processing function.
Definition pbft_sync_packet_handler.cpp:25
void pbftSyncComplete()
Definition pbft_sync_packet_handler.cpp:221
Definition packet_data.hpp:12
Definition thread_pool.hpp:7
PeriodData class is for block execution, that includes PBFT block, certify votes, DAG blocks,...
Definition period_data.hpp:26
Definition vote_manager.hpp:24
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition packet_types.hpp:12
@ kPbftSyncPacket
Definition packet_types.hpp:30
Definition config.hpp:41