Package net.i2p.router
Class NetworkDatabaseFacade
- java.lang.Object
-
- net.i2p.router.NetworkDatabaseFacade
-
- All Implemented Interfaces:
Service
- Direct Known Subclasses:
DummyNetworkDatabaseFacade
,KademliaNetworkDatabaseFacade
public abstract class NetworkDatabaseFacade extends Object implements Service
Defines the mechanism for interacting with I2P's network database
-
-
Constructor Summary
Constructors Constructor Description NetworkDatabaseFacade()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
fail(Hash dbEntry)
abstract Set<Hash>
findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)
Return the RouterInfo structures for the routers closest to the given key.boolean
floodfillEnabled()
For convenience, so users don't have to cast to FNDF, and unit tests using Dummy NDF will work.abstract Set<Hash>
getAllRouters()
List<BlindData>
getBlindData()
For console ConfigKeyringHelperBlindData
getBlindData(SigningPublicKey spk)
int
getKnownLeaseSets()
int
getKnownRouters()
long
getLastRouterInfoPublishTime()
The last time we successfully published our RI.Set<LeaseSet>
getLeases()
public for NetDbRenderer in routerconsoleSet<RouterInfo>
getRouters()
public for NetDbRenderer in routerconsoleboolean
isInitialized()
boolean
isNegativeCachedForever(Hash key)
Is it permanently negative cached?abstract void
lookupDestination(Hash key, Job onFinishedJob, long timeoutMs, Hash fromLocalDest)
Lookup using the client's tunnels Succeeds even if LS validation fails due to unsupported sig typeabstract Destination
lookupDestinationLocally(Hash key)
Lookup locally in netDB and in badDest cache Succeeds even if LS validation failed due to unsupported sig typeabstract void
lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)
abstract void
lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest)
Lookup using the client's tunnelsabstract LeaseSet
lookupLeaseSetLocally(Hash key)
abstract void
lookupLeaseSetRemotely(Hash key, Hash fromLocalDest)
Unconditionally lookup using the client's tunnels.abstract void
lookupLeaseSetRemotely(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest)
Unconditionally lookup using the client's tunnels.abstract DatabaseEntry
lookupLocally(Hash key)
abstract DatabaseEntry
lookupLocallyWithoutValidation(Hash key)
Not for use without validationabstract void
lookupRouterInfo(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)
abstract RouterInfo
lookupRouterInfoLocally(Hash key)
abstract void
publish(LeaseSet localLeaseSet)
abstract void
publish(RouterInfo localRouterInfo)
boolean
removeBlindData(SigningPublicKey spk)
For console ConfigKeyringHelpervoid
renderStatusHTML(Writer out)
Debug only - all user info moved to NetDbRenderer in router consolevoid
rescan()
ReseedChecker
reseedChecker()
void
routingKeyChanged()
Notify the netDB that the routing key changed at midnight UTCvoid
setBlindData(BlindData bd)
DatabaseEntry
store(Hash key, DatabaseEntry entry)
abstract LeaseSet
store(Hash key, LeaseSet leaseSet)
abstract RouterInfo
store(Hash key, RouterInfo routerInfo)
abstract void
unpublish(LeaseSet localLeaseSet)
-
-
-
Method Detail
-
findNearestRouters
public abstract Set<Hash> findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)
Return the RouterInfo structures for the routers closest to the given key. At most maxNumRouters will be returned- Parameters:
key
- The keymaxNumRouters
- The maximum number of routers to returnpeersToIgnore
- Hash of routers not to include
-
lookupLocally
public abstract DatabaseEntry lookupLocally(Hash key)
- Returns:
- RouterInfo, LeaseSet, or null
- Since:
- 0.8.3
-
lookupLocallyWithoutValidation
public abstract DatabaseEntry lookupLocallyWithoutValidation(Hash key)
Not for use without validation- Returns:
- RouterInfo, LeaseSet, or null, NOT validated
- Since:
- 0.9.38
-
lookupLeaseSet
public abstract void lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)
-
lookupLeaseSet
public abstract void lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest)
Lookup using the client's tunnels- Parameters:
fromLocalDest
- use these tunnels for the lookup, or null for exploratory- Since:
- 0.9.10
-
lookupRouterInfo
public abstract void lookupRouterInfo(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)
-
lookupRouterInfoLocally
public abstract RouterInfo lookupRouterInfoLocally(Hash key)
-
lookupLeaseSetRemotely
public abstract void lookupLeaseSetRemotely(Hash key, Hash fromLocalDest)
Unconditionally lookup using the client's tunnels. No success or failed jobs, no local lookup, no checks. Use this to refresh a leaseset before expiration.- Parameters:
fromLocalDest
- use these tunnels for the lookup, or null for exploratory- Since:
- 0.9.25
-
lookupLeaseSetRemotely
public abstract void lookupLeaseSetRemotely(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest)
Unconditionally lookup using the client's tunnels.- Parameters:
fromLocalDest
- use these tunnels for the lookup, or null for exploratoryonFindJob
- may be nullonFailedLookupJob
- may be null- Since:
- 0.9.47
-
lookupDestination
public abstract void lookupDestination(Hash key, Job onFinishedJob, long timeoutMs, Hash fromLocalDest)
Lookup using the client's tunnels Succeeds even if LS validation fails due to unsupported sig type- Parameters:
fromLocalDest
- use these tunnels for the lookup, or null for exploratory- Since:
- 0.9.16
-
lookupDestinationLocally
public abstract Destination lookupDestinationLocally(Hash key)
Lookup locally in netDB and in badDest cache Succeeds even if LS validation failed due to unsupported sig type- Since:
- 0.9.16
-
store
public abstract LeaseSet store(Hash key, LeaseSet leaseSet) throws IllegalArgumentException
- Returns:
- the leaseSet if another leaseSet already existed at that key
- Throws:
IllegalArgumentException
- if the data is not valid
-
store
public abstract RouterInfo store(Hash key, RouterInfo routerInfo) throws IllegalArgumentException
- Returns:
- the routerInfo if another router already existed at that key
- Throws:
IllegalArgumentException
- if the data is not valid
-
store
public DatabaseEntry store(Hash key, DatabaseEntry entry) throws IllegalArgumentException
- Returns:
- the old entry if it already existed at that key
- Throws:
IllegalArgumentException
- if the data is not valid- Since:
- 0.9.16
-
publish
public abstract void publish(RouterInfo localRouterInfo) throws IllegalArgumentException
- Throws:
IllegalArgumentException
- if the local router is not valid
-
publish
public abstract void publish(LeaseSet localLeaseSet)
-
unpublish
public abstract void unpublish(LeaseSet localLeaseSet)
-
fail
public abstract void fail(Hash dbEntry)
-
getLastRouterInfoPublishTime
public long getLastRouterInfoPublishTime()
The last time we successfully published our RI.- Since:
- 0.9.9
-
getKnownRouters
public int getKnownRouters()
-
getKnownLeaseSets
public int getKnownLeaseSets()
-
isInitialized
public boolean isInitialized()
-
rescan
public void rescan()
-
renderStatusHTML
public void renderStatusHTML(Writer out) throws IOException
Debug only - all user info moved to NetDbRenderer in router console- Specified by:
renderStatusHTML
in interfaceService
- Throws:
IOException
-
getRouters
public Set<RouterInfo> getRouters()
public for NetDbRenderer in routerconsole
-
reseedChecker
public ReseedChecker reseedChecker()
- Since:
- 0.9
-
floodfillEnabled
public boolean floodfillEnabled()
For convenience, so users don't have to cast to FNDF, and unit tests using Dummy NDF will work.- Returns:
- false; FNDF overrides to return actual setting
- Since:
- IPv6
-
isNegativeCachedForever
public boolean isNegativeCachedForever(Hash key)
Is it permanently negative cached?- Parameters:
key
- only for Destinations; for RouterIdentities, see Banlist- Since:
- 0.9.16
-
getBlindData
public BlindData getBlindData(SigningPublicKey spk)
- Parameters:
spk
- unblinded key- Returns:
- BlindData or null
- Since:
- 0.9.40
-
setBlindData
public void setBlindData(BlindData bd)
- Parameters:
bd
- new BlindData to put in the cache- Since:
- 0.9.40
-
removeBlindData
public boolean removeBlindData(SigningPublicKey spk)
For console ConfigKeyringHelper- Returns:
- true if removed
- Since:
- 0.9.41
-
routingKeyChanged
public void routingKeyChanged()
Notify the netDB that the routing key changed at midnight UTC- Since:
- 0.9.50
-
-