TARAXA
|
#include <EndpointTracker.h>
Public Member Functions | |
size_t | addEndpointStatement (bi::udp::endpoint const &_sourceEndpoint, bi::udp::endpoint const &_externalEndpoint) |
bi::udp::endpoint | bestEndpoint () const |
Find endpoint with max number of statements. More... | |
void | garbageCollectStatements (std::chrono::seconds const &_timeToLive) |
Remove statements older than _timeToLive. More... | |
Private Types | |
using | EndpointAndTimePoint = std::pair< bi::udp::endpoint, std::chrono::steady_clock::time_point > |
using | SourceToStatementMap = std::map< bi::udp::endpoint, EndpointAndTimePoint > |
Private Member Functions | |
size_t | addStatement (bi::udp::endpoint const &_sourceEndpoint, bi::udp::endpoint const &_externalEndpoint) |
SourceToStatementMap::iterator | removeStatement (SourceToStatementMap::iterator _it) |
Private Attributes | |
SourceToStatementMap | m_statementsMap |
std::map< bi::udp::endpoint, size_t > | m_endpointStatementCountMap |
map external endpoint => how many sources reported it More... | |
Class for keeping track of our external endpoint as seen by our peers. Keeps track of what external endpoint is seen by every peer and finds which endpoint is reported most often
|
private |
|
private |
size_t dev::p2p::EndpointTracker::addEndpointStatement | ( | bi::udp::endpoint const & | _sourceEndpoint, |
bi::udp::endpoint const & | _externalEndpoint | ||
) |
Register the statement about endpoint from one of the peers.
Register the statement about endpoint from one othe peers.
|
private |
bi::udp::endpoint dev::p2p::EndpointTracker::bestEndpoint | ( | ) | const |
Find endpoint with max number of statements.
Find endpoint with max number of statemens.
void dev::p2p::EndpointTracker::garbageCollectStatements | ( | std::chrono::seconds const & | _timeToLive | ) |
Remove statements older than _timeToLive.
Remove old statements.
|
private |
|
private |
map external endpoint => how many sources reported it
|
private |
Statements about our external endpoint, maps statement source peer => endpoint, timestamp