corda / net.corda.core.node.services / NetworkMapCache

NetworkMapCache

interface NetworkMapCache : NetworkMapCacheBase

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

MapChange

sealed class MapChange

Inherited Properties

allNodes

abstract val allNodes: List<NodeInfo>

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

changed

abstract val changed: Observable<MapChange>

Tracks changes to the network map cache.

nodeReady

abstract val nodeReady: CordaFuture<Void?>

Future to track completion of the NetworkMapService registration.

notaryIdentities

abstract val notaryIdentities: List<Party>

A list of notary services available on the network.

Functions

getNodeByLegalIdentity

abstract fun getNodeByLegalIdentity(party: AbstractParty): NodeInfo?

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.

Inherited Functions

clearNetworkMapCache

abstract fun clearNetworkMapCache(): Unit

Clear all network map data from local node cache.

getNodeByAddress

abstract fun getNodeByAddress(address: NetworkHostAndPort): NodeInfo?

Look up the node info for a host and port.

getNodeByLegalName

abstract fun getNodeByLegalName(name: CordaX500Name): NodeInfo?

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

getNodesByLegalIdentityKey

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.

getNodesByLegalName

abstract fun getNodesByLegalName(name: CordaX500Name): List<NodeInfo>

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.

getNotary

open fun getNotary(name: CordaX500Name): Party?

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

getPartyInfo

abstract fun getPartyInfo(party: Party): PartyInfo?

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

getPeerByLegalName

open fun getPeerByLegalName(name: CordaX500Name): Party?

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.

getPeerCertificateByLegalName

abstract fun getPeerCertificateByLegalName(name: CordaX500Name): PartyAndCertificate?

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.

isNotary

open fun isNotary(party: Party): Boolean

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

isValidatingNotary

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.

track

abstract fun track(): DataFeed<List<NodeInfo>, MapChange>

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.

Extension Functions

contextLogger

fun Any.contextLogger(): Logger

When called from a companion object, returns the logger for the enclosing class.