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.
sealed class MapChange |
abstract val allNodes: List<NodeInfo>
Return all NodeInfos the node currently is aware of (including ourselves). |
|
abstract val changed: <ERROR CLASS><MapChange>
Tracks changes to the network map cache. |
|
abstract val nodeReady: CordaFuture<Void?>
Future to track completion of the NetworkMapService registration. |
|
abstract val notaryIdentities: List<Party>
A list of notary services available on the network. |
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. |
abstract fun clearNetworkMapCache(): Unit
Clear all network map data from local node cache. |
|
abstract fun getNodeByAddress(address: NetworkHostAndPort): NodeInfo?
Look up the node info for a host and port. |
|
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. |
|
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. |
|
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. |
|
open fun getNotary(name: CordaX500Name): Party?
Look up a well known identity of notary by legal name. |
|
abstract fun getPartyInfo(party: Party): PartyInfo?
Returns information about the party, which may be a specific node or a service |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
fun Any.contextLogger(): <ERROR CLASS>
When called from a companion object, returns the logger for the enclosing class. |