See: Description
| Interface | Description |
|---|---|
| DataStore |
Interface for database storage operations in the network database.
|
| Class | Description |
|---|---|
| BlindCache |
Cache for blinding data as specified in I2P proposal 123.
|
| DirectLookupJob |
Ask a connected peer for his RI.
|
| DirectLookupMatchJob |
Override to not call failed() in setMessage(),
as it will be called from runJob()
|
| ExpireLeasesJob |
Periodically 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).
|
| ExpireRoutersJob |
Go through the routing table pick routers that are
out of date, but don't expire routers we're actively connected to.
|
| ExploreJob |
Represents an exploratory search job for a particular key in the Kademlia network database.
|
| FloodfillDatabaseLookupMessageHandler |
Handler for DatabaseLookupMessage received on floodfills.
|
| FloodfillDatabaseStoreMessageHandler |
Handles incoming DatabaseStoreMessage for floodfill network database operations.
|
| FloodfillMonitorJob |
Simple job to monitor the floodfill pool.
|
| FloodfillNetworkDatabaseFacade |
The network database
|
| FloodfillNetworkDatabaseSegmentor |
FloodfillNetworkDatabaseSegmentor
Default implementation of the SegmentedNetworkDatabaseFacade.
|
| FloodfillPeerSelector |
This is where we implement semi-Kademlia with the floodfills, by selecting
floodfills closest to a given key for searches and stores.
|
| FloodfillRouterInfoFloodJob |
Job to flood nearby floodfill routers with our RI.
|
| FloodfillStoreJob |
This class extends StoreJob to fire off a FloodfillVerifyStoreJob after a successful store.
|
| FloodfillVerifyStoreJob |
Send 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)
|
| FloodOnlyLookupMatchJob |
Handles match processing for flood-only search operations.
|
| FloodOnlyLookupSelector |
Message selector for flood-only database lookup operations.
|
| FloodOnlyLookupTimeoutJob |
Timeout handler for flood-only search operations.
|
| FloodOnlySearchJob |
Flood-only search implementation for network database lookups.
|
| FloodSearchJob |
Base class for flood-based search operations with fallback to Kademlia.
|
| FloodThrottler |
Provides basic denial-of-service protection for database flood operations.
|
| HandleFloodfillDatabaseLookupMessageJob |
Processes database lookup messages received by floodfill routers.
|
| HandleFloodfillDatabaseStoreMessageJob |
Processes and stores DatabaseStoreMessage data in the floodfill network database.
|
| IterativeFollowupJob |
Performs targeted followup lookups during iterative search operations.
|
| IterativeLookupJob |
Processes DatabaseSearchReplyMessage responses during iterative searches.
|
| IterativeLookupSelector |
Slightly modified version of FloodOnlyLookupSelector.
|
| IterativeSearchJob |
Traditional Kademlia iterative search with enhanced robustness.
|
| IterativeTimeoutJob |
Handles timeout events for individual peer lookups in iterative searches.
|
| KademliaNetworkDatabaseFacade |
Kademlia based version of network database.
|
| LocalHash |
Pull the caching used only by KBucketImpl out of Hash and put it here.
|
| LookupBanHammer |
Tracks the frequency of recent lookup requests targeting a specific reply peer/tunnel pair
to provide basic denial-of-service (DOS) protection by banning excessive requesters.
|
| LookupThrottler |
Provides denial-of-service protection for network database lookup operations.
|
| MessageWrapper |
Method and class for garlic encrypting outbound netdb traffic,
and sending keys and tags for others to encrypt inbound netdb traffic,
including management of the ElGamal/AES tags.
|
| MessageWrapper.OneTimeSession |
A single key and tag, for receiving a single message.
|
| MessageWrapper.WrappedMessage |
Wrapper so that we can keep track of the key and tags
for later notification to the SKM
|
| NegativeLookupCache |
Negative cache for network database lookup operations.
|
| PeerSelector |
Abstract base class for peer selection in Kademlia routing tables.
|
| PersistentDataStore |
Persistent network database storage with disk I/O and memory management.
|
| RefreshRoutersJob |
RefreshRoutersJob performs router info refresh operations periodically.
|
| RepublishLeaseSetJob |
A job that periodically republishes a local LeaseSet to the network database.
|
| SearchJob |
Base class for iterative network database search operations.
|
| SearchMessageSelector |
Message selector for matching search operation responses from specific peers.
|
| SearchReplyJob |
Processes DatabaseSearchReplyMessage responses from floodfill peers.
|
| SearchState |
Manages state for network database search operations.
|
| SearchUpdateReplyFoundJob |
Called after a match to a db search is found
Used only by SearchJob which is only used by ExploreJob
|
| SegmentedNetworkDatabaseFacade |
SegmentedNetworkDatabaseFacade
This class implements an interface for managing many netDbs as part of a
single I2P instance, each representing its own view of the network.
|
| SingleLookupJob |
Performs targeted followup lookups for RouterInfo entries from search replies.
|
| SingleSearchJob |
Performs a targeted lookup to a single peer for a specific key.
|
| StartExplorersJob |
This job initiates exploration of the network database by selecting keys to explore
and queuing ExploreJobs up to a maximum per run.
|
| StoreJob |
Abstract base class for network database store operations.
|
| StoreMessageSelector |
Message selector for matching database store operation confirmations.
|
| StoreState |
Manages state for network database store operations.
|
| TransientDataStore |
In-memory network database storage implementation.
|
| Exception | Description |
|---|---|
| UnsupportedCryptoException |
Signature verification failed because the
sig type is unknown or unavailable.
|
Kademlia DHT implementation and floodfill router functionality for I2P.
This package contains the complete implementation of the I2P network database based on the Kademlia distributed hash table algorithm. It provides the core functionality for storing and retrieving router information and lease sets, with special support for floodfill routers that act as super-nodes in the network.
Key Components:
Main Functionality:
Usage Notes: