|
Class Summary |
| 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 |
Deprecated. unused - see comments in KNDF |
| 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. |
| 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 |
| HarvesterJob |
Simple job to try to keep our peer references up to date by aggressively
requerying them every few minutes. |
| 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. |
| KBucketImpl |
|
| KBucketSet |
In memory storage of buckets sorted by the XOR metric from the local router's
identity, with bucket N containing routers BASE^N through BASE^N+1 away, up through
2^256 bits away (since we use SHA256). |
| 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,
including management of the ElGamal/AES tags |
| 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. |
| 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 |
| 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 |
Unused directly - see FloodfillStoreJob |
| StoreMessageSelector |
Check to see the message is a reply from the peer regarding the current
store |
| StoreState |
Tracks the state of a StoreJob |
| TransientDataStore |
|
| XORComparator |
Help sort Hashes in relation to a base key using the XOR metric. |