Packages that use net.i2p.router
Package
Description
Low-level messages sent between routers - the Invisible Internet Network Protocol (I2NP).
Desktop GUI for monitoring and controlling the router from the system tray: status display, start/stop/restart controls and console access.
Router communication for the desktop GUI: status monitoring and control commands over I2CP (the Invisible Internet Client Protocol) and the router's service interfaces.
I2P Control service: a JSON-RPC 2.0 interface for controlling and monitoring the router from external applications, served over TLS on the configured port.
Request handling for the I2P Control JSON-RPC 2.0 service.
I2P Control JSON-RPC 2.0 method handlers: API version, router parameters, statistics and log access.
The I2P router application handles I2P network communication.
Router-side implementation of the Invisible Internet Client Protocol (I2CP): client sessions over plain or TLS sockets, message delivery, and lease and tunnel management on behalf of clients.
Router-specific cryptography: ElGamal+AES garlic encryption (ElGamalAESEngine), session key and tag caching for repeated peer communication (TransientSessionKeyManager), router-family shared keys (FamilyKeyCrypto), and the ratchet and pqc subpackages.
The Double Ratchet with X25519 key agreement and ECIES hybrid encryption, used by the NTCP2 and SSU transports for session encryption.
Simplified fake implementations of router interfaces (comm system and friends) for testing and embedded builds.
Garlic message creation, parsing and handling, and the outbound message jobs: one-shot sends, source routing and delivery status handling.
Network database message handling shared by all facades: database lookup jobs and local RouterInfo publication.
The Kademlia distributed hash table (DHT) network database: lookup, store and explore jobs, the data store, the floodfill variants, and lookup throttling.
Reseeding: fetching router info lists from reseed servers, web indexes or local files, validating them (signed SU3 update files and unsigned ZIP archives) and processing them to bootstrap into the network.
Parser for the I2P news format, which follows Atom with additional metadata for the update notification feature.
Peer profiles and capacity calculation, peer test jobs, peer selection for tunnel building, and the database and tunnel history used for peer selection.
The I2P startup package loads configuration when I2P is started.
Offline analysis tools for detecting Sybil attacks and malicious peer coordination by correlating peer relationships.
Periodic maintenance jobs: stats coalescing, cryptographic algorithm checks, liveliness marking, out-of-memory handling, thread dumps, the watchdog, graceful shutdown and soft restart, update installation, republishing and config reloading.
Transport framework: the transport lifecycle and pool management, connection handling and bandwidth throttling for the transports (NTCP2 over TCP, SSU over UDP) that carry I2P messages between routers, plus NAT traversal via UPnP and GeoIP country lookups.
NTCP2, the TCP transport: framed, ratchet-encrypted and mutually authenticated connections between routers.
SSU2, the UDP transport: datagram sessions with Holepunch peer discovery, plus the older SSU compatibility code.
Tunnel messages and the tunnel layer: the
TunnelManagerFacade, tunnel build request and reply processing, and the inbound and outbound tunnel structures. Tunnel pool management: pool lifecycle, peer selection, build scheduling and failure handling for client and exploratory tunnels.
Router-side update checking and installation: fetching update notifications, downloading and verifying updates, and staging them for the restart.
Router utility classes: CoDel active queue management, time-decaying collections, a diagnostics ring buffer, CIDR matching, and password management.
The router console user interface, implemented in routerconsole.jar, with these classes supporting the webapp in routerconsole.war.
Helpers and handlers for the router console user interface, packaged in routerconsole.war and accessible only from JSP files.
Router console servlets packaged in routerconsole.war, for pages that require servlet features rather than JSP helpers.
Servlet filters for I2P webapps: XSS protection and X-Forwarded header handling.
- Classes in net.i2p.router used by net.i2p.data.i2npClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.desktopguiClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.desktopgui.routerClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.i2pcontrolClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.i2pcontrol.servletsClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.i2pcontrol.servlets.jsonrpc2handlersClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.routerClassDescriptionRecords live bandwidth samples every second for the minigraph.Manages router banlist entries with configurable expiration times and transport-specific bans.Entry representing a banned peer with expiration and reason information.Dedicated logger for all ban events.Manage blocking by IP address, in a manner similar to the Banlist, which blocks by router hash.A blocklist file and its parsed contents.The result of parsing one line.Manages client connections and LeaseSet operations for I2P applications.Wrap a message either destined for a local client or received from one.Manage all of the inbound and outbound client messages maintained by the router.Wrap up the client settings specifying their tunnel criteria.Manages peer communication subsystem including transport protocols, connection handling, and network address management for router-to-router messaging.Network connectivity status enumeration for IPv4 and IPv6 transport capabilities.Builds jobs to handle a particular message type.Receives and dispatches inbound network messages with configurable processing modes.Wrapper class to pair tunnel data messages with their sender hash.Job to sequentially dispatch all queued tunnel data messages.Job to sequentially dispatch all queued tunnel gateway messages.Interface for router-internal executable tasks.Base implementation of a JobPrioritizes and executes router jobs with preference for earlier scheduled tasks.Thread pumping the ready jobs to the runners.Worker thread that executes jobs from the router job queue.Dynamic job runner scaling controller for the JobQueue.Snapshot of metrics taken before scaling up.Collects and maintains statistical data for job execution performance.One recorded recent execution.Totals over the most recent runs of one job type.Define the timing requirements and statistics for a particular jobManages all router cryptographic key pairs including persistent storage of router keys and in-memory management of LeaseSet keys for secure communications.Wrap up the keys given to the router when a destination connects to it.Logs router message traffic for debugging and network analysis.Job reopening the history file.Job writing the queued entries to the file.Define a mechanism to select what messages are associated with a particular OutNetMessage.Singleton to manage the logic (and historical data) to determine whether a message is valid or not (meaning it isn't expired and hasn't already been received).Abstract interface for I2P network database operations.Wrap up an outbound I2NP message, along with the information associated with its delivery and jobs to be fired off if particular events occur.Routes outbound messages to the communication system for delivery.Manage peer references and keep them up to date so that when asked for peers, it can provide appropriate peers according to the criteria provided.Manages peer profiles and performance metrics for router peers.Defines an executable task that can be fired off in reply to a message.Core router implementation that manages I2P node lifecycle, configuration, and subsystem coordination.State management - startup / shutdown states.Listener interface for receiving notifications when the router clock shifts.Extended application context that provides centralized resource coordination for router instances.Controls router load by throttling message processing and tunnel participation.Defines the lifecycle interface for router subsystems.Collects and publishes router performance statistics to the network database.Manages the autotune.config file — separate from
router.config.Base class for tunable params with history tracking and auto-revert.Snapshot of a subsystem's tunable parameter values at a point in time.CPU saturation state of one transport worker stage.Per-subsystem health scores.Tracks overall router health score for adaptive tuning decisions.Thread-id keyed sample state forTuner.sampleStageCpu(): per live thread, whichTuner.CPU_STAGESentry its name matched and the CPU nanoseconds recorded at the previous sample.One generation of the table: parallel arrays probed by the same index, keyed by thread id so no id is ever boxed.A tunable parameter with name, description, bounds, and default value.Defines the information associated with a tunnel.Manages tunnel creation, maintenance, and selection for encrypted routing.Wrap up the settings for a pool of tunnels.Test status for tunnel testing display. - Classes in net.i2p.router used by net.i2p.router.clientClassDescriptionManages client connections and LeaseSet operations for I2P applications.Wrap a message either destined for a local client or received from one.Interface for router-internal executable tasks.Base implementation of a JobExtended application context that provides centralized resource coordination for router instances.Defines the lifecycle interface for router subsystems.
- Classes in net.i2p.router used by net.i2p.router.cryptoClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.router.crypto.ratchetClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.router.dummyClassDescriptionManages client connections and LeaseSet operations for I2P applications.Wrap a message either destined for a local client or received from one.Wrap up the client settings specifying their tunnel criteria.Manages peer communication subsystem including transport protocols, connection handling, and network address management for router-to-router messaging.Interface for router-internal executable tasks.Base implementation of a JobAbstract interface for I2P network database operations.Wrap up an outbound I2NP message, along with the information associated with its delivery and jobs to be fired off if particular events occur.Manage peer references and keep them up to date so that when asked for peers, it can provide appropriate peers according to the criteria provided.Extended application context that provides centralized resource coordination for router instances.Defines the lifecycle interface for router subsystems.Defines the information associated with a tunnel.Manages tunnel creation, maintenance, and selection for encrypted routing.Wrap up the settings for a pool of tunnels.
- Classes in net.i2p.router used by net.i2p.router.messageClassDescriptionWrap a message either destined for a local client or received from one.Builds jobs to handle a particular message type.Interface for router-internal executable tasks.Base implementation of a JobDefine a mechanism to select what messages are associated with a particular OutNetMessage.Defines an executable task that can be fired off in reply to a message.Extended application context that provides centralized resource coordination for router instances.Defines the information associated with a tunnel.
- Classes in net.i2p.router used by net.i2p.router.networkdbClassDescriptionInterface for router-internal executable tasks.Base implementation of a JobExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.router.networkdb.kademliaClassDescriptionDedicated logger for all ban events.Network connectivity status enumeration for IPv4 and IPv6 transport capabilities.Builds jobs to handle a particular message type.Interface for router-internal executable tasks.Base implementation of a JobDefine a mechanism to select what messages are associated with a particular OutNetMessage.Abstract interface for I2P network database operations.Wrap up an outbound I2NP message, along with the information associated with its delivery and jobs to be fired off if particular events occur.Defines an executable task that can be fired off in reply to a message.Extended application context that provides centralized resource coordination for router instances.Defines the lifecycle interface for router subsystems.Defines the information associated with a tunnel.
- Classes in net.i2p.router used by net.i2p.router.networkdb.reseedClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.router.news
- Classes in net.i2p.router used by net.i2p.router.peermanagerClassDescriptionInterface for router-internal executable tasks.Base implementation of a JobDefine a mechanism to select what messages are associated with a particular OutNetMessage.Manage peer references and keep them up to date so that when asked for peers, it can provide appropriate peers according to the criteria provided.Manages peer profiles and performance metrics for router peers.Defines an executable task that can be fired off in reply to a message.Core router implementation that manages I2P node lifecycle, configuration, and subsystem coordination.Extended application context that provides centralized resource coordination for router instances.Defines the lifecycle interface for router subsystems.Defines the information associated with a tunnel.
- Classes in net.i2p.router used by net.i2p.router.startupClassDescriptionDedicated logger for all ban events.Interface for router-internal executable tasks.Base implementation of a JobExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.router.sybilClassDescriptionDedicated logger for all ban events.Interface for router-internal executable tasks.Base implementation of a JobExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.router.tasksClassDescriptionInterface for router-internal executable tasks.Base implementation of a JobCore router implementation that manages I2P node lifecycle, configuration, and subsystem coordination.Extended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.router.transportClassDescriptionDedicated logger for all ban events.Manages peer communication subsystem including transport protocols, connection handling, and network address management for router-to-router messaging.Network connectivity status enumeration for IPv4 and IPv6 transport capabilities.Interface for router-internal executable tasks.Define a mechanism to select what messages are associated with a particular OutNetMessage.Wrap up an outbound I2NP message, along with the information associated with its delivery and jobs to be fired off if particular events occur.Defines an executable task that can be fired off in reply to a message.Extended application context that provides centralized resource coordination for router instances.Defines the lifecycle interface for router subsystems.General-purpose adaptive tuner.
- Classes in net.i2p.router used by net.i2p.router.transport.ntcpClassDescriptionDedicated logger for all ban events.Network connectivity status enumeration for IPv4 and IPv6 transport capabilities.Wrap up an outbound I2NP message, along with the information associated with its delivery and jobs to be fired off if particular events occur.Extended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.router.transport.udpClassDescriptionManages router banlist entries with configurable expiration times and transport-specific bans.Dedicated logger for all ban events.Manage blocking by IP address, in a manner similar to the Banlist, which blocks by router hash.Network connectivity status enumeration for IPv4 and IPv6 transport capabilities.Wrap up an outbound I2NP message, along with the information associated with its delivery and jobs to be fired off if particular events occur.Extended application context that provides centralized resource coordination for router instances.General-purpose adaptive tuner.
- Classes in net.i2p.router used by net.i2p.router.tunnelClassDescriptionInterface for router-internal executable tasks.Base implementation of a JobExtended application context that provides centralized resource coordination for router instances.Defines the lifecycle interface for router subsystems.Defines the information associated with a tunnel.Test status for tunnel testing display.
- Classes in net.i2p.router used by net.i2p.router.tunnel.poolClassDescriptionDedicated logger for all ban events.Wrap up the client settings specifying their tunnel criteria.Builds jobs to handle a particular message type.Interface for router-internal executable tasks.Base implementation of a JobDefine a mechanism to select what messages are associated with a particular OutNetMessage.Wrap up an outbound I2NP message, along with the information associated with its delivery and jobs to be fired off if particular events occur.Defines an executable task that can be fired off in reply to a message.Extended application context that provides centralized resource coordination for router instances.Defines the lifecycle interface for router subsystems.Defines the information associated with a tunnel.Manages tunnel creation, maintenance, and selection for encrypted routing.Wrap up the settings for a pool of tunnels.Test status for tunnel testing display.
- Classes in net.i2p.router used by net.i2p.router.updateClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.router.utilClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.router.webClassDescriptionExtended application context that provides centralized resource coordination for router instances.General-purpose adaptive tuner.
- Classes in net.i2p.router used by net.i2p.router.web.helpersClassDescriptionManages peer communication subsystem including transport protocols, connection handling, and network address management for router-to-router messaging.Interface for router-internal executable tasks.Base implementation of a JobCollects and maintains statistical data for job execution performance.Abstract interface for I2P network database operations.Extended application context that provides centralized resource coordination for router instances.General-purpose adaptive tuner.Defines the information associated with a tunnel.Wrap up the settings for a pool of tunnels.
- Classes in net.i2p.router used by net.i2p.router.web.servletsClassDescriptionExtended application context that provides centralized resource coordination for router instances.
- Classes in net.i2p.router used by net.i2p.servlet.filtersClassDescriptionExtended application context that provides centralized resource coordination for router instances.