23 using PeersMap = std::unordered_map<dev::p2p::NodeID, std::shared_ptr<TaraxaPeer>>;
46 std::shared_ptr<TaraxaPeer> peer);
71 const std::shared_ptr<PbftManager> pbft_mgr, std::function<
bool(
const std::shared_ptr<TaraxaPeer>&)> filter_func =
72 [](
const std::shared_ptr<TaraxaPeer>&) {
return true; });
82 const std::weak_ptr<dev::p2p::Host>
host_;
PeersState contains common members and functions related to peers, host, etc... that are shared among...
Definition peers_state.hpp:21
void erasePeer(const dev::p2p::NodeID &node_id)
Definition peers_state.cpp:93
std::shared_ptr< TaraxaPeer > getMaxChainPeer(const std::shared_ptr< PbftManager > pbft_mgr, std::function< bool(const std::shared_ptr< TaraxaPeer > &)> filter_func=[](const std::shared_ptr< TaraxaPeer > &) { return true;})
Definition peers_state.cpp:153
std::shared_ptr< TaraxaPeer > getPeer(const dev::p2p::NodeID &node_id) const
Definition peers_state.cpp:10
std::shared_mutex peers_mutex_
Definition peers_state.hpp:85
void set_peer_malicious(const dev::p2p::NodeID &peer_id)
Marks peer as malicious.
Definition peers_state.cpp:111
const std::weak_ptr< dev::p2p::Host > host_
Definition peers_state.hpp:82
PeersMap pending_peers_
Definition peers_state.hpp:87
std::shared_ptr< TaraxaPeer > addPendingPeer(const dev::p2p::NodeID &node_id, const std::string &address)
Definition peers_state.cpp:76
ThreadSafeMap< dev::p2p::NodeID, std::chrono::steady_clock::time_point > malicious_peers_
Definition peers_state.hpp:89
bool is_peer_malicious(const dev::p2p::NodeID &peer_id)
Checks if peer is in malicious peers list.
Definition peers_state.cpp:115
std::pair< std::shared_ptr< TaraxaPeer >, std::string > getPacketSenderPeer(const dev::p2p::NodeID &node_id, SubprotocolPacketType packet_type) const
Get known peer based on packet sender and packet type. For StatusPacket peer can be obtained from pen...
Definition peers_state.cpp:32
const FullNodeConfig kConf
Definition peers_state.hpp:90
void handleMaliciousSyncPeer(const dev::p2p::NodeID &id)
Handle malicious peer.
Definition peers_state.cpp:142
std::shared_ptr< TaraxaPeer > getPendingPeer(const dev::p2p::NodeID &node_id) const
Definition peers_state.cpp:21
void disconnectPeer(const dev::p2p::NodeID &id)
Disconnect peer.
Definition peers_state.cpp:147
PeersMap getAllPeers() const
Definition peers_state.cpp:71
PeersMap peers_
Definition peers_state.hpp:86
std::vector< dev::p2p::NodeID > getAllPendingPeersIDs() const
Definition peers_state.cpp:60
std::shared_ptr< TaraxaPeer > setPeerAsReadyToSendMessages(dev::p2p::NodeID const &node_id, std::shared_ptr< TaraxaPeer > peer)
Definition peers_state.cpp:99
std::unordered_map< dev::p2p::NodeID, std::shared_ptr< TaraxaPeer > > PeersMap
Definition peers_state.hpp:23
size_t getPeersCount() const
Definition peers_state.cpp:87
Definition vote_manager.hpp:23
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition packet_types.hpp:12