com.r3corda.node.internal / Node

# 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.

### Parameters

`dir` - A Path to a location on disk where working files can be found or stored.
`p2pAddr` - The host and port that this server will use. It cant find out its own external hostname, so you have to specify that yourself.
`configuration` - This is typically loaded from a .properties file.
`networkMapAddress` - An external network map service to use. Should only ever be null when creating the first network map service, while bootstrapping a network.
`advertisedServices` - The services this node advertises. This must be a subset of the services it runs, but nodes are not required to advertise services they run (hence subset).
`clock` - The clock used within the node and by all protocols etc.
`messagingServerAddr` - The address of the Artemis broker instance. If not provided the node will run one locally.

### Constructors

<init> | `Node(dir: Path, p2pAddr: <ERROR CLASS>, webServerAddr: <ERROR CLASS>, configuration: NodeConfiguration, networkMapAddress: NodeInfo?, advertisedServices: Set<ServiceType>, clock: Clock = NodeClock(), messagingServerAddr: <ERROR CLASS>? = null)` 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.

### Properties

log | `val log: <ERROR CLASS>`
messageBroker | `var messageBroker: ArtemisMessagingServer?`
messagingServerAddr | `val messagingServerAddr: <ERROR CLASS>?`
p2pAddr | `val p2pAddr: <ERROR CLASS>`
serverThread | `val serverThread: ServiceAffinityExecutor`
webServer | `lateinit var webServer: <ERROR CLASS>`
webServerAddr | `val webServerAddr: <ERROR CLASS>`

### Inherited Properties

_servicesThatAcceptUploads | `val _servicesThatAcceptUploads: ArrayList<AcceptsFileUpload>`
advertisedServices | `val advertisedServices: Set<ServiceType>`
api | `lateinit var api: APIServer`
checkpointStorage | `lateinit var checkpointStorage: CheckpointStorage`
closeOnStop | `val closeOnStop: ArrayList<Closeable>`
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?`
inNodeWalletMonitorService | `var inNodeWalletMonitorService: WalletMonitorService?`
info | `val info: NodeInfo`
isPreviousCheckpointsPresent | `var isPreviousCheckpointsPresent: Boolean`
keyManagement | `lateinit var keyManagement: E2ETestKeyManagementService`
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`
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

makeMessagingService | `fun makeMessagingService(): MessagingServiceInternal`
run | `fun run(): Unit` Starts a blocking event loop for message dispatch.
setup | `fun setup(): Node` Run any tasks that are needed to ensure the node is in a correct state before running start().
start | `fun start(): Node`
startMessagingService | `fun startMessagingService(): Unit`
stop | `fun stop(): Unit`

### Inherited 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`
makeNetworkMapService | `open fun makeNetworkMapService(): Unit`
makeNotaryService | `open fun makeNotaryService(type: ServiceType): NotaryService`
makeWalletMonitorService | `open fun makeWalletMonitorService(): WalletMonitorService`
makeWalletService | `open fun makeWalletService(): WalletService`
noNetworkMapConfigured | `open fun noNetworkMapConfigured(): <ERROR CLASS><Unit>` This is overriden by the mock node implementation to enable operation without any network map service

### Companion Object Properties

DEFAULT_PORT | `val DEFAULT_PORT: Int` The port that is used by default if none is specified. As you know, 31337 is the most elite number.