The peer manager logs information about the history and quality of network peers.
Peer capacity, speed and other parameters are calculated to determine in what cases we should use each peer.
Class Summary Class Description CapacityCalculatorEstimate how many of our tunnels the peer can join per hour. DBHistoryHistory of NetDb related activities (lookups, replies, stores, etc) IntegrationCalculatorDetermine how well integrated the peer is - how likely they will be useful to us if we are trying to get further connected. InverseCapacityComparatorOrder profiles by their capacity, but backwards (highest capacity / value first). PeerManagerManage the current state of the statistics Also maintain Sets for each of the capabilities in TRACKED_CAPS. PeerManagerFacadeImplBase implementation that has simple algorithms and periodically saves state PeerProfileCopied from http://www.i2p2.i2p/how_peerselection.html See also main() below for additional commentary by zzz. PeerSelectionCriteriaDefines the criteria for selecting a set of peers for use when searching the PeerManager Only used by PeerTestJob, which may not have a point. PeerTestJobGrab some peers that we want to test and probe them briefly to get some more accurate and up to date performance data. ProfileManagerImplMethods to update profiles. ProfileOrganizerKeep the peer profiles organized according to the tiered model. ProfilePersistenceHelperWrite profiles to disk at shutdown, read at startup. SpeedCalculatorQuantify how fast the peer is - how fast they respond to our requests, how fast they pass messages on, etc. SpeedComparatorOrder profiles by their speed (lowest first). TunnelHistoryTunnel related history information
Enum Summary Enum Description ProfileOrganizer.SliceReplaces integer subTierMode argument, for clarity