NetworkMapCache

A network map contains lists of nodes on the network along with information about their identity keys, services they provide and host names or IP addresses where they can be connected to. The cache wraps around a map fetched from an authoritative service, and adds easy lookup of the data stored within it. Generally it would be initialised with a specified network map service, which it fetches data from and then subscribes to updates of.

Types

Link copied to clipboard
sealed class MapChange

Properties

Link copied to clipboard
abstract val allNodes: List<NodeInfo>

Return all NodeInfos the node currently is aware of (including ourselves).

Link copied to clipboard
abstract val changed: <Error class: unknown class><NetworkMapCache.MapChange>

Tracks changes to the network map cache.

Link copied to clipboard
abstract val nodeReady: CordaFuture<Void?>

Future to track completion of the NetworkMapService registration.

Link copied to clipboard
abstract val notaryIdentities: List<Party>

A list of notary services available on the network.

Functions

Link copied to clipboard
abstract fun clearNetworkMapCache()

Clear all network map data from local node cache.

Link copied to clipboard

Look up the node info for a host and port.

Link copied to clipboard

Look up the node info for a specific party. Will attempt to de-anonymise the party if applicable; if the party is anonymised and the well known party cannot be resolved, it is impossible ot identify the node and therefore this returns null. Notice that when there are more than one node for a given party (in case of distributed services) first service node found will be returned. See also: NetworkMapCache.getNodesByLegalIdentityKey.

Link copied to clipboard

Return a NodeInfo which has the given legal name for one of its identities, or null if no such node is found.

Link copied to clipboard
abstract fun getNodesByLegalIdentityKey(identityKey: PublicKey): List<NodeInfo>

Look up the node information entries for a specific identity key. Note that normally there will be only one node for a key, but for clusters of nodes or distributed services there can be multiple nodes.

Link copied to clipboard

Return a list of NodeInfos which have the given legal name for one of their identities, or an empty list if no such nodes are found.

Link copied to clipboard
open fun getNotary(name: CordaX500Name): Party?

Look up a well known identity of notary by legal name.

Link copied to clipboard
abstract fun getPartyInfo(party: Party): PartyInfo?

Returns information about the party, which may be a specific node or a service

Link copied to clipboard

Look up the well known identity of a legal name. This should be used in preference to well known identity lookup in the identity service where possible, as the network map is the authoritative source of well known identities.

Link copied to clipboard

Look up a well known identity (including certificate path) of a legal name. This should be used in preference to well known identity lookup in the identity service where possible, as the network map is the authoritative source of well known identities.

Link copied to clipboard
abstract fun isNotary(party: Party): Boolean

Returns true if and only if the given Party is a notary, which is defined by the network parameters.

Link copied to clipboard
abstract fun isValidatingNotary(party: Party): Boolean

Returns true if and only if the given Party is validating notary. For every party that is a validating notary, isNotary is also true.

Link copied to clipboard

Atomically get the current party nodes and a stream of updates. Note that the Observable buffers updates until the first subscriber is registered so as to avoid racing with early updates.