core.node.services

## Package core.node.services

### Types

AbstractNodeService | `abstract class AbstractNodeService` Abstract superclass for services that a node can host, which provides helper functions.
AttachmentStorage | `interface AttachmentStorage` An attachment store records potentially large binary objects, identified by their hash. Note that attachments are immutable and can never be erased once inserted
DummyTimestampingAuthority | `object DummyTimestampingAuthority`
IdentityService | `interface IdentityService` An identity service maintains an bidirectional map of Partys to their associated public keys and thus supports lookup of a party given its key. This is obviously very incomplete and does not reflect everything a real identity service would provide.
InMemoryNetworkMapService | `class InMemoryNetworkMapService : NetworkMapService, AbstractNodeService`

NetworkMapService

`interface NetworkMapService`

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. This information is cached locally within nodes, by the NetworkMapCache. Currently very basic consensus controls are applied, using signed changes which replace each other based on a serial number present in the change.

NodeAttachmentService | `class NodeAttachmentService : AttachmentStorage, AcceptsFileUpload` Stores attachments in the specified local directory, which must exist. Doesnt allow new attachments to be uploaded.
NodeInterestRates | `object NodeInterestRates` An interest rates service is an oracle that signs transactions which contain embedded assertions about an interest rate fix (e.g. LIBOR, EURIBOR ...).
NodeRegistration | `class NodeRegistration` A node registration state in the network map.
NodeTimestamperService | `class NodeTimestamperService : AbstractNodeService` This class implements the server side of the timestamping protocol, using the local clock. A future version might add features like checking against other NTP servers to make sure the clock hasnt drifted by too much.
RegulatorService | `interface RegulatorService` Placeholder interface for regulator services.
ServiceType | `abstract class ServiceType` Identifier for service types a node can expose over the network to other peers. These types are placed into network map advertisements. Services that are purely local and are not providing functionality to other parts of the network dont need a declared service type.

TimestamperService

`interface TimestamperService`

Simple interface (for testing) to an abstract timestamping service. Note that this is not "timestamping" in the blockchain sense of a total ordering of transactions, but rather, a signature from a well known/trusted timestamping service over a transaction that indicates the timestamp in it is accurate. Such a signature may not always be necessary: if there are multiple parties involved in a transaction then they can cross-check the timestamp themselves.

WireNodeRegistration | `class WireNodeRegistration : SignedData<NodeRegistration>` A node registration and its signature as a pair.

### Exceptions

NodeMapError | `sealed class NodeMapError : Exception`
TimestampingError | `sealed class TimestampingError : Exception`