# Package net.i2p.router.peermanager

Peer management, profiling, and capacity calculation for I2P network optimization.

See: Description

- Class Summary
  Class | Description
  --- | ---
  CapacityCalculator | Estimate how many of our tunnels the peer can join per hour.
  DBHistory | History of NetDb related activities (lookups, replies, stores, etc)
  IntegrationCalculator | Determine how well integrated a peer is - how likely they will be useful to us if we are trying to get further connected.
  InverseCapacityComparator | Order profiles by their capacity, but backwards (highest capacity / value first).
  PeerManager | Tracks peer capabilities and maintains performance statistics for router peers.
  PeerManagerFacadeImpl | Base implementation that has simple algorithms and periodically saves state
  PeerProfile | Copied from http://www.i2p2.i2p/how_peerselection.html See also main() below for additional commentary by zzz.
  PeerSelectionCriteria | Defines the criteria for selecting a set of peers for use when searching the PeerManager Only used by PeerTestJob, which may not have a point.
  PeerTestJob | Periodically tests selected peers to gather real-time performance data and update peer profiles.
  ProfileManagerImpl | Methods to update profiles.
  ProfileOrganizer | Categorizes peers into performance tiers based on historical metrics.
  ProfilePersistenceHelper | Write profiles to disk at shutdown, read at startup.
  SpeedCalculator | Quantify how fast the peer is - how fast they respond to our requests, how fast they pass messages on, etc.
  SpeedComparator | Order profiles by their speed (lowest first).
  TunnelHistory | Tunnel related history information

- Enum Summary
  Enum | Description
  --- | ---
  ProfileOrganizer.Slice | Defines peer selection slicing modes for tier-based peer organization.

## Package net.i2p.router.peermanager Description

Peer management, profiling, and capacity calculation for I2P network optimization.

This package provides comprehensive peer management functionality that tracks, evaluates, and optimizes interactions with other I2P routers. The peer manager maintains detailed profiles of network peers, calculates their capacity and reliability, and makes intelligent decisions about which peers to use for various operations.

Key Components:

- PeerManager - Main peer management and coordination
- PeerProfile - Detailed peer information and statistics
- ProfileManager - Manages peer profile data and lifecycle
- ProfileOrganizer - Organizes and categorizes peer profiles
- CapacityCalculator - Calculates peer capacity and capabilities
- SpeedCalculator - Evaluates peer speed and performance
- IntegrationCalculator - Assesses peer integration quality
- PeerSelectionCriteria - Defines criteria for peer selection
- PeerTestJob - Tests peer connectivity and performance
- DBHistory - Tracks peer database interaction history
- TunnelHistory - Records peer tunnel participation history

Main Functionality:

- Peer profiling and reputation tracking
- Capacity and performance calculation
- Peer selection and recommendation
- Network topology optimization
- Peer testing and validation
- Historical data management
- Performance metrics collection
- Integration quality assessment

Usage Notes:

- Essential for efficient network routing
- Provides data for intelligent peer selection
- Maintains long-term peer performance history
- Integrates with tunnel building and routing decisions