See: Description
Interface | Description |
---|---|
DataStore |
Class | Description |
---|---|
ExpireLeasesJob |
Periodically search 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
is out of date, but don't expire routers we're actively connected to.
|
ExploreJob |
Search for a particular key iteratively until we either find a value, we run
out of peers, or the bucket the key belongs in has sufficient values in it.
|
ExploreKeySelectorJob | Deprecated
unused, see comments in KNDF
|
FloodfillDatabaseLookupMessageHandler |
Build a HandleDatabaseLookupMessageJob whenever a DatabaseLookupMessage arrives
|
FloodfillDatabaseStoreMessageHandler |
Create a HandleDatabaseStoreMessageJob whenever a DatabaseStoreMessage arrives
|
FloodfillMonitorJob |
Simple job to monitor the floodfill pool.
|
FloodfillNetworkDatabaseFacade |
The network database
|
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 extends StoreJob to fire off a FloodfillVerifyStoreJob after success.
|
FloodfillVerifyStoreJob |
Send a netDb lookup to a floodfill peer - If it is found, great,
but if they reply back saying they dont know it, queue up a store of the
key to a random floodfill peer again (via FloodfillStoreJob)
|
FloodOnlyLookupMatchJob | |
FloodOnlyLookupSelector |
Mostly replaced by IterativeLookupSelector
|
FloodOnlyLookupTimeoutJob |
This is the timeout for the whole search.
|
FloodOnlySearchJob |
Uunused directly, replaced by IterativeSearchJob, but still extended by
SingleSearchJob.
|
FloodSearchJob |
Try sending a search to some floodfill peers, but if we don't get a successful
match within half the allowed lookup time, give up and start querying through
the normal (kademlia) channels.
|
FloodThrottler |
Count how often we have recently flooded a key
This offers basic DOS protection but is not a complete solution.
|
HandleFloodfillDatabaseLookupMessageJob |
Handle a lookup for a key received from a remote peer.
|
HandleFloodfillDatabaseStoreMessageJob |
Receive DatabaseStoreMessage data and store it in the local net db
|
IterativeFollowupJob |
Ask a single peer for a single key.
|
IterativeLookupJob |
Ask the peer who sent us the DSRM for the RouterInfos...
|
IterativeLookupSelector |
Slightly modified version of FloodOnlyLookupSelector.
|
IterativeSearchJob |
A traditional Kademlia search that continues to search
when the initial lookup fails, by iteratively searching the
closer-to-the-key peers returned by the query in a DSRM.
|
IterativeTimeoutJob |
This is the timeout for a single lookup, not for the whole search.
|
KademliaNetworkDatabaseFacade |
Kademlia based version of the network database.
|
LocalHash |
Pull the caching used only by KBucketImpl out of Hash and put it here.
|
LookupThrottler |
Count how often we have recently received a lookup request with
the reply specified to go to a peer/TunnelId pair.
|
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 |
Track lookup fails
|
PeerSelector |
Mostly unused, see overrides in FloodfillPeerSelector
|
PersistentDataStore |
Write out keys to disk when we get them and periodically read ones we don't know
about into memory, with newly read routers are also added to the routing table.
|
PersistentDataStore.RouterInfoFilter | |
RefreshRoutersJob |
Go through all the routers once, after startup, and refetch their router infos.
|
RepublishLeaseSetJob |
Run periodically for each locally created leaseSet to cause it to be republished
if the client is still connected.
|
SearchJob |
Search for a particular key iteratively until we either find a value or we
run out of peers
Note that this is rarely if ever used directly, and is primary used by the ExploreJob extension.
|
SearchMessageSelector |
Check to see the message is a reply from the peer regarding the current
search
|
SearchReplyJob | |
SearchState |
Data related to a particular search
|
SearchUpdateReplyFoundJob |
Called after a match to a db search is found
Used only by SearchJob which is only used by ExploreJob
|
SingleLookupJob |
Ask the peer who sent us the DSRM for the RouterInfos...
|
SingleSearchJob |
Ask a single peer for a single key.
|
StartExplorersJob |
Fire off search jobs for random keys from the explore pool, up to MAX_PER_RUN
at a time.
|
StoreJob |
Stores through this always request a reply.
|
StoreMessageSelector |
Check to see the message is a reply from the peer regarding the current
store
|
StoreState |
Tracks the state of a StoreJob
|
TransientDataStore |
Stores in-memory only.
|
Exception | Description |
---|---|
UnsupportedCryptoException |
Signature verification failed because the
sig type is unknown or unavailable.
|
The network database, including implementation of floodfills. Database lookups, stores, exploration, and replies. Management of locally-generated RouterInfos and Leasesets.