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
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)
-
Constructor Details
-
NetworkDatabaseFacade
public NetworkDatabaseFacade()
-
-
Method Details
-
findNearestRouters
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
- Returns:
- RouterInfo, LeaseSet, or null
- Since:
- 0.8.3
-
lookupLocallyWithoutValidation
Not for use without validation- Returns:
- RouterInfo, LeaseSet, or null, NOT validated
- Since:
- 0.9.38
-
lookupLeaseSet
-
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
-
lookupLeaseSetLocally
-
lookupRouterInfo
-
lookupRouterInfoLocally
-
lookupLeaseSetRemotely
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
Lookup locally in netDB and in badDest cache Succeeds even if LS validation failed due to unsupported sig type- Since:
- 0.9.16
-
store
- Returns:
- the leaseSet if another leaseSet already existed at that key
- Throws:
IllegalArgumentException
- if the data is not valid
-
store
- Returns:
- the routerInfo if another router already existed at that key
- Throws:
IllegalArgumentException
- if the data is not valid
-
store
- Returns:
- the old entry if it already existed at that key
- Throws:
IllegalArgumentException
- if the data is not valid- Since:
- 0.9.16
-
publish
- Throws:
IllegalArgumentException
- if the local router is not valid
-
publish
-
unpublish
-
fail
-
getLastRouterInfoPublishTime
public long getLastRouterInfoPublishTime()The last time we successfully published our RI.- Since:
- 0.9.9
-
getAllRouters
-
getKnownRouters
public int getKnownRouters() -
getKnownLeaseSets
public int getKnownLeaseSets() -
isInitialized
public boolean isInitialized() -
rescan
public void rescan() -
renderStatusHTML
Debug only - all user info moved to NetDbRenderer in router console- Specified by:
renderStatusHTML
in interfaceService
- Throws:
IOException
-
getLeases
public for NetDbRenderer in routerconsole -
getRouters
public for NetDbRenderer in routerconsole -
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
Is it permanently negative cached?- Parameters:
key
- only for Destinations; for RouterIdentities, see Banlist- Since:
- 0.9.16
-
getBlindData
- Parameters:
spk
- unblinded key- Returns:
- BlindData or null
- Since:
- 0.9.40
-
setBlindData
- Parameters:
bd
- new BlindData to put in the cache- Since:
- 0.9.40
-
getBlindData
For console ConfigKeyringHelper- Since:
- 0.9.41
-
removeBlindData
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
-