com.r3corda.node.internal / AbstractNode

# AbstractNode

`abstract class AbstractNode : SingletonSerializeAsToken`

A base node implementation that can be customised either for production (with real implementations that do real I/O), or a mock implementation suitable for unit test environments.

Marked as SingletonSerializeAsToken to prevent the invisible reference to AbstractNode in the ServiceHub accidentally sweeping up the Node into the Kryo checkpoint serialization via any protocols holding a reference to ServiceHub.

### Constructors

<init> | `AbstractNode(dir: Path, configuration: NodeConfiguration, networkMapService: NodeInfo?, advertisedServices: Set<ServiceType>, platformClock: Clock)` A base node implementation that can be customised either for production (with real implementations that do real I/O), or a mock implementation suitable for unit test environments.

### Properties

_servicesThatAcceptUploads | `val _servicesThatAcceptUploads: ArrayList<AcceptsFileUpload>`
advertisedServices | `val advertisedServices: Set<ServiceType>`
api | `lateinit var api: APIServer`
checkpointStorage | `lateinit var checkpointStorage: CheckpointStorage`
configuration | `val configuration: NodeConfiguration`
customServices | `val customServices: ArrayList<Any>`
dir | `val dir: Path`
identity | `lateinit var identity: IdentityService`
inNodeNetworkMapService | `var inNodeNetworkMapService: NetworkMapService?`
inNodeNotaryService | `var inNodeNotaryService: NotaryService?`
info | `val info: NodeInfo`
isPreviousCheckpointsPresent | `var isPreviousCheckpointsPresent: Boolean`
keyManagement | `lateinit var keyManagement: E2ETestKeyManagementService`
log | `abstract val log: <ERROR CLASS>`
net | `lateinit var net: MessagingServiceInternal`
netMapCache | `lateinit var netMapCache: NetworkMapCache`
networkMapRegistrationFuture | `val networkMapRegistrationFuture: <ERROR CLASS><Unit>`
networkMapSeq | `var networkMapSeq: Long` Sequence number of changes sent to the network map service, when registering/de-registering this node.
networkMapService | `val networkMapService: NodeInfo?`
platformClock | `val platformClock: Clock`
pluginRegistries | `val pluginRegistries: List<CordaPluginRegistry>` Fetch CordaPluginRegistry classes registered in META-INF/services/com.r3corda.core.node.CordaPluginRegistry files that exist in the classpath
protocolLogicFactory | `lateinit var protocolLogicFactory: ProtocolLogicRefFactory`
scheduler | `lateinit var scheduler: SchedulerService`
serverThread | `abstract val serverThread: AffinityExecutor`
services | `val services: ServiceHubInternal`
servicesThatAcceptUploads | `val servicesThatAcceptUploads: List<AcceptsFileUpload>`
smm | `lateinit var smm: StateMachineManager`
started | `var started: Boolean` Set to true once start has been successfully called.
storage | `lateinit var storage: TxWritableStorageService`
wallet | `lateinit var wallet: WalletService`

### Functions

constructStorageService | `open fun constructStorageService(attachments: NodeAttachmentService, transactionStorage: TransactionStorage, keypair: KeyPair, identity: Party): StorageServiceImpl`
createNodeDir | `fun createNodeDir(): Unit`
findMyLocation | `open fun findMyLocation(): PhysicalLocation?`
findService | `fun <T : Any> findService(): <ERROR CLASS>` Locates and returns a service of the given type if loaded, or throws an exception if not found.
generateKeyPair | `open fun generateKeyPair(): KeyPair`
initialiseStorageService | `open fun initialiseStorageService(dir: Path): <ERROR CLASS><TxWritableStorageService, CheckpointStorage>`
makeAttachmentStorage | `fun makeAttachmentStorage(dir: Path): NodeAttachmentService`
makeIdentityService | `open fun makeIdentityService(): IdentityService`
makeMessagingService | `abstract fun makeMessagingService(): MessagingServiceInternal`
makeNetworkMapService | `open fun makeNetworkMapService(): Unit`
makeNotaryService | `open fun makeNotaryService(type: ServiceType): Unit`
noNetworkMapConfigured | `open fun noNetworkMapConfigured(): <ERROR CLASS><Unit>` This is overriden by the mock node implementation to enable operation without any network map service
setup | `open fun setup(): AbstractNode` Run any tasks that are needed to ensure the node is in a correct state before running start().
start | `open fun start(): AbstractNode`
startMessagingService | `abstract fun startMessagingService(): Unit`
stop | `open fun stop(): Unit`

### Inherited Functions

toToken | `open fun toToken(context: SerializeAsTokenContext): SerializationToken`

### Companion Object Properties

PRIVATE_KEY_FILE_NAME | `val PRIVATE_KEY_FILE_NAME: String`
PUBLIC_IDENTITY_FILE_NAME | `val PUBLIC_IDENTITY_FILE_NAME: String`

### Inheritors

MockNode | `class MockNode : AbstractNode`
Node | `class Node : AbstractNode` A Node manages a standalone server that takes part in the P2P network. It creates the services found in ServiceHub, loads important data off disk and starts listening for connections.