Node command-line options
The node can optionally be started with the following command-line options:
-b: the node working directory where all the files are kept (default:
-f: the path to the config file. The path can be absolute or relative to the base directory. Defaults to
-d: runs the node in development mode. Unsafe in production. Defaults to true on MacOS and desktop versions of Windows. False otherwise.
-n: do not start the embedded shell locally.
--on-unknown-config-keys <[FAIL,INFO]>: how to behave on unknown node configuration. Defaults to FAIL.
--sshd: enables SSH server for node administration.
--sshd-port: sets the port for the SSH server. If not supplied and SSH server is enabled, the port defaults to 2222.
-v: if set, prints logging to the console as well as to a file.
--logging-level=<loggingLevel>: enable logging at this level and higher. Possible values: ERROR, WARN, INFO, DEBUG, TRACE. Default: INFO.
-h: show this help message and exit.
-V: print version information and exit.
--allow-hibernate-to-manage-app-schema: enable this option to make the node manage app schemas automatically using Hibernate with H2 in dev mode.
[COMMAND]precedes all options. Failing this, the provided arguments will not be in scope for the command and default arguments will be used instead as a result. For example, if
-f custom_config.confprecedes the
[COMMAND], Corda will look for the default
node.confinstead of the specified
clear-network-cache: Clears the local copy of the network map. On node startup it will be restored from the server or the file system.
initial-registration: Starts the initial node registration with the compatibility zone to obtain a certificate from the Identity Manager Service.
Important note about running the initial node registration command
Since Corda 4.6, database schemas are no longer initialised/migrated automatically by running any command at the first run of the node - typically at the initial node registration. This is now done explicitly by running
run-migration-scripts, so no other commands during the first node run would initialise/migrate the database schema.
The exception to that is the
initial-registration command, which embeds
run-migration-scripts and therefore runs the database migration scripts by default.
So if you are using deployment automation you may need to adjust your scripts accordingly and exclude the database initialisation/migration task from the initial node registration command. To do so, use the
--skip-schema-creation flag alongside the
-trequired: Network root trust store obtained from network operator.
-p: Network root trust store password obtained from network operator.
--skip-schema-creation: Skips the default database migration step.
initial-registrationnow includes the creation of
identity-private-keykeystore alias. For more information, see node folder structure. Previously, only
cordaclienttlsaliases were created during
identity-private-keywas generated on demand on the first node run. Hence, in Corda 4.7 the content of
nodekeystore.jksis never altered during a regular node run (except for
devMode = true, where the certificates directory can be filled with pre-configured keystores).
run-migration-scripts: From version 4.6, a Corda node can no longer modify/create schema on the fly in normal run mode - schema setup or changes must be
applied deliberately using this sub-command. It runs the database migration script for the requested schema set defined in the following parameters. Once it creates or modifies the schema(s), the sub-command will exit.
--core-schemas: Use to run the core database migration script for the node database. Core schemas cannot be migrated while there are checkpoints.
--app-schemas: Use to run the app database migration script for CorDapps. To force an app schema to migrate with checkpoints present, use the
--update-app-schema-with-checkpointsflag alongside the
generate-node-info: Performs the node start-up tasks necessary to generate the
nodeInfo file, saves it to disk, then exits.
generate-rpc-ssl-settings: Generates the SSL keystore and truststore for a secure RPC connection.
corda alias and auto completion for bash and zsh. See
Shell extensions for CLI Applications for more info.
validate-configuration: Validates the actual configuration without starting the node.
Enabling remote debugging
To enable remote debugging of the node, run the node with the following JVM arguments:
java -Dcapsule.jvm.args="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" -jar corda.jar
This will allow you to attach a debugger to your node on port 5005.