| Package | Description |
|---|---|
| net.i2p.router.client | Router-side implementation of the I2CP (I2P Client Protocol) interface for application integration. |
| net.i2p.router.message | Garlic message creation, parsing, and source routing for I2P communications. |
| net.i2p.router.networkdb | Network database management and coordination for the I2P distributed hash table. |
| net.i2p.router.networkdb.kademlia | Kademlia DHT implementation and floodfill router functionality for I2P. |
| net.i2p.router.peermanager | Peer management, profiling, and capacity calculation for I2P network optimization. |
| net.i2p.router.startup | The I2P startup package loads configuration when I2P is started. |
| net.i2p.router.sybil | Offline analysis tools for detecting Sybil attacks and malicious peer
coordination in the I2P network. |
| net.i2p.router.tasks | Periodic maintenance tasks and background jobs for I2P router operations. |
| net.i2p.router.tunnel.pool | Tunnel pool management, creation, and peer selection for I2P's anonymous routing system. |
| net.i2p.router.web.helpers | Helpers and handlers for the router console user interface, with these classes supporting the webapp in routerconsole.war. |
| Modifier and Type | Class and Description |
|---|---|
(package private) class | CreateSessionJobGiven an established connection, walk through the process of establishing the
leaseset. |
(package private) class | LookupDestJobLook up the lease of a hash, to convert it to a Destination for the client. |
(package private) class | MessageReceivedJobAsync job to notify the client that a new message is available for them,
or just send it directly if specified. |
(package private) class | ReportAbuseJobAsync job to send an abuse message to the client |
(package private) class | RequestLeaseSetJobAsync job to walk the client through generating a lease set. |
| Modifier and Type | Class and Description |
|---|---|
class | HandleGarlicMessageJobJob to handle an inbound GarlicMessage received outside of a tunnel. |
class | OutboundClientMessageOneShotJobSend a client message out an outbound tunnel and into an inbound
tunnel on the target leaseSet. |
class | SendMessageDirectJobSend a message directly to another router (not through a tunnel). |
| Modifier and Type | Class and Description |
|---|---|
class | HandleDatabaseLookupMessageJobHandle a lookup for a key received from a remote peer. |
class | PublishLocalRouterInfoJobPublish the local router's RouterInfo periodically. |
| Modifier and Type | Class and Description |
|---|---|
(package private) class | CleanupLURoutersJobPeriodically cleans up least-used router entries from the network database. |
(package private) class | ContactDrivenRefreshJobLightweight background job that refreshes RouterInfo for peers we recently
interacted with. |
(package private) class | DirectLookupJobAsk a connected peer for his RI. |
(package private) class | DirectLookupMatchJobOverride to not call failed() in setMessage(),
as it will be called from runJob() |
(package private) class | ExpireLeasesJobPeriodically searches through all leases to find expired ones, failing those
keys and firing up a new search for each (in case we want it later, might as
well preemptively fetch it). |
(package private) class | ExpireRoutersJobGo through the routing table pick routers that are
out of date, but don't expire routers we're actively connected to. |
class | ExploreJobRepresents an exploratory search job for a particular key in the Kademlia network database. |
(package private) class | FloodfillMonitorJobSimple job to monitor the floodfill pool. |
(package private) class | FloodfillRouterInfoFloodJobJob to flood nearby floodfill routers with our RI. |
(package private) class | FloodfillStoreJobThis class extends StoreJob to fire off a FloodfillVerifyStoreJob after a successful store. |
(package private) class | FloodfillVerifyStoreJobSend a netDb lookup to a floodfill peer - If it is found, great, but if they reply back saying
they don't know it, queue up a store of the key to a random floodfill peer again (via FloodfillStoreJob) |
(package private) class | FloodOnlyLookupMatchJobHandles match processing for flood-only search operations. |
(package private) class | FloodOnlyLookupTimeoutJobTimeout handler for flood-only search operations. |
(package private) class | FloodOnlySearchJobFlood-only search implementation for network database lookups. |
(package private) class | FloodSearchJobBase class for flood-based search operations with fallback to Kademlia. |
class | HandleFloodfillDatabaseLookupMessageJobProcesses database lookup messages received by floodfill routers. |
(package private) class | HandleFloodfillDatabaseStoreMessageJobProcesses and stores DatabaseStoreMessage data in the floodfill network database. |
(package private) class | IterativeFollowupJobPerforms targeted followup lookups during iterative search operations. |
(package private) class | IterativeLookupJobProcesses DatabaseSearchReplyMessage responses during iterative searches. |
class | IterativeSearchJobTraditional Kademlia iterative search with enhanced robustness. |
(package private) class | IterativeTimeoutJobHandles timeout events for individual peer lookups in iterative searches. |
(package private) class | ProbeStalePeerJobProbes peers to verify they are still alive, using DirectLookupJob to ask
for their RouterInfo. |
(package private) class | RefreshRoutersJobRefreshRoutersJob performs router info refresh operations periodically. |
class | RepublishLeaseSetJobPeriodically republishes a local LeaseSet to the network database. |
(package private) class | SearchJobBase class for iterative network database search operations. |
protected class | SearchJob.FailedJobCalled when a particular peer failed to respond before the timeout was
reached, or if the peer could not be contacted at all. |
(package private) class | SearchReplyJobProcesses DatabaseSearchReplyMessage responses from floodfill peers. |
(package private) class | SearchUpdateReplyFoundJobCalled after a match to a db search is found
Used only by SearchJob which is only used by ExploreJob |
(package private) class | SingleLookupJobPerforms targeted followup lookups for RouterInfo entries from search replies. |
(package private) class | SingleSearchJobPerforms a targeted lookup to a single peer for a specific key. |
(package private) class | StartExplorersJobThis job initiates exploration of the network database by selecting keys to explore
and queuing ExploreJobs up to a maximum per run. |
(package private) class | StoreJobAbstract base class for network database store operations. |
| Modifier and Type | Class and Description |
|---|---|
class | PeerTestJobPeriodically tests selected peers to gather real-time performance data and update peer profiles. |
| Modifier and Type | Class and Description |
|---|---|
(package private) class | BootCommSystemJobThis actually boots almost everything |
(package private) class | BootNetworkDbJobstart up the network database |
(package private) class | BootPeerManagerJobstart up the peer manager |
(package private) class | BuildTrustedLinksJobFor future restricted routes. |
class | CreateRouterInfoJobWarning - misnamed. |
class | LoadClientAppsJobRun any client applications specified in clients.config. |
(package private) class | LoadRouterInfoJobRun once or twice at startup by StartupJob,
and then runs BootCommSystemJob |
(package private) class | RebuildRouterInfoJobThis used be called from StartAcceptingClientsJob but is now disabled. |
(package private) class | StartAcceptingClientsJobstart I2CP interface |
class | StartupJobThe StartupJob should be run once on router startup to initialize the system
and set things in motion. |
| Modifier and Type | Class and Description |
|---|---|
class | AnalysisSybil attack analysis implementation. |
| Modifier and Type | Class and Description |
|---|---|
class | PersistRouterInfoJobRouter information persistence and synchronization job. |
class | ReadConfigJobSimply read the router config periodically,
so that the user may make config changes externally. |
class | UpdateRoutingKeyModifierJobUpdate the routing Key modifier every day at midnight (plus on startup). |
| Modifier and Type | Class and Description |
|---|---|
(package private) class | ExpireJobHandles tunnel expiration in two phases for graceful shutdown. |
class | TestJobRepeatedly tests a single tunnel for its lifetime to ensure it remains functional. |
| Modifier and Type | Class and Description |
|---|---|
class | NetDbCachingJobA caching job that periodically performs:
- Reverse DNS precaching for known routers
- Introducer precaching for known routers
Ensures:
- Only one instance is ever scheduled. |