Create a node and join an internal network

What is a Corda Node?

A Corda network is a peer-to-peer network of nodes, where each node represents a party on the network. These nodes run Corda applications (CorDapps). A node can serve many CorDapps.

Visit the official Corda documentation to learn more about a Corda node.

Corda OS and Corda Enterprise

Corda is optimized to meet the privacy, security, and throughput demands of modern-day business.

Corda Open Source and Enterprise are functionally identical. Corda Enterprise is interoperable and compatible with Corda open-source (OS), but offers a production-ready version of Corda open-source.

The main differences include:

  • Added security and firewall

  • Performance and parallelism of CorDapp flows

  • External databases support

See more about Corda Open Source and Corda Enterprise in the official Corda documentation.

With Catalyst Blockchain Manager you can easily deploy both Corda Open Source and Corda Enterprise nodes using our user interface or the REST API endpoints.

Catalyst Blockchain Manager takes care of the whole process: it creates the node, registers it in a particular compatibility zone, and then ensures that the node is fully operational in a Kubernetes environment.

The current release of Catalyst Blockchain Manager supports the following Corda versions:

  • Corda Open Source: 4.8

  • Corda Enterprise: 4.8

How to Create a Node

Prerequisites: A compatibility zone has to be deployed beforehand. You can read more about a compatibility zone here.

Network management is currently out of scope, but it will be introduced in future releases of Catalyst Blockchain Manager.

To create a node go to the Nodes tab and click the “Create node” button to open a side window.

1. Provide a node name - the name, which will be displayed on the user interface.

(You can give any considering the following restrictions: the name must contain only alphanumeric characters, "-", "_" or ".").

2. Fill in the network information.

  • Network - A compatibility zone, where a node will be deployed. You can choose one of three options:

    • Corda production - a publicly available internet of Corda nodes operated by network participants.

    • Corda pre-production - also known as the User Acceptance Testing/UAT environment, seeks to provide a test environment that is as close as possible to Corda Network in its make-up and operation.

    • Other - a private network operating and being governed entirely independently. Note: To deploy a node to the private network, this network needs to be first bootstrapped by the network provider.

Corda production and pre-production will be supported in future releases.

  • Networkmap URL - Root address of a network map service.

  • Doorman URL - Root address of a network registration service.

  • Upload truststore - A network/zone operator’s root CA certificate. Should be generated before the node installation.

  • Password - Password to the truststore.

You can get all the data related to the network from your network operator.

3. Configure a node.

  • Version. You can choose one of two possible Corda node versions: Open Source 4.8 or Enterprise 4.8. The difference between Corda Open Source and Corda Enterprise is described in this section.

  • Firewall. The current release of Catalyst Blockchain Manager supports a DMZ-ready firewall and a setup without a firewall for a Corda Enterprise node. You can read about firewall configuration in the official Corda documentation.

  • Database. The node’s database includes a vault, where the node stores any relevant current and historic states together with the storage service, where it stores transactions, attachments, and flow checkpoints. Corda uses an internal H2 database by default. Catalyst Blockchain Manager also allows you to connect to an external database.

H2 is an in-memory database that runs within the node. It is embedded, fast, and does not require a lot of configuration. On the other hand, the external database connection option gives you more flexibility and control of your data. Catalyst Blockchain Manager allows you to connect your existing database to a node and thereby keep the control of the data of the blockchain application, and at the same time not worry about the deployment and uptime of the Corda node components.

The following external databases can be used :

  • PostgreSQL, SQLServer, Oracle, and AzureSQL for a Corda Enterprise node.

  • PostgreSQL for a Corda Open Source node.

To connect to an external database you should provide additional information. Fields may differ depending on database type. For example, to connect PostgreSQL the following fields should be filled:

  • Host

  • Port

  • Database

  • Name

  • Schema

  • Name

  • Username

  • Password

You need to configure a database before using it for Corda. Please, visit the official Corda documentation with database setup instructions for development and production environments.

  • Resources:

    • Requested CPU. Guaranteed CPU resources that will be allocated.

    • Requested memory (MB). Guaranteed amount of RAM that will be allocated.

    • Storage size.

4. Configure the node’s identity.

Each node in a Corda network should have an identity verified by a network operator. This refers to a real legal identity. This information will be further used in all the node certificates (node identity) so that it takes the form of a distinguished name in X.500 standard.

To read about distinguished name constraints please visit the Corda official documentation.

After clicking the “Create” button, a node’s certificate signing request will be sent to the network operator. The node will be up and running in a few minutes after the request is approved. You can see the node’s details by clicking on any particular node.

Node Details

Under the Nodes tab, you can see the existing nodes you have deployed. All of these nodes are displayed with the following columns representing individual characteristics:

  • Name

  • Architecture (Open Source (OS) or Enterprise)

  • Status (could be "Running" or "Processing")

If you click on any node, you will see a new window where the details of that particular node are displayed. The details window is divided into two sections.

In the first section, you can view the details about the node such as:

  • Name.

  • Addresses. The address for P2P communication between nodes.

  • Client Address. This is a base URL for the REST API endpoints Catalyst Blockchain Manager created automatically for the uploaded CorDapps.

By default Corda provides RPC protocol for client-node communication. Catalyst Blockchain Manager automatically generates REST API endpoints for the uploaded CorDapps for that purpose. It is up to a user which protocol to use: RPC or REST API.

  • RpcAddress. RPC address for communication between the node and the client. To read more about how to interact with a node using RPC see the official Corda documentation.

  • Serial. An arbitrary number incremented each time the NodeInfo is changed.

  • Node Architecture. OS (open source) or Enterprise.

  • LegalIdentities. Legal Identities provided by a user upon the node creation.

  • Version. The version of Corda running on the node.

  • Nodeid. Is used for addressing the node in API calls. The nodeid inherits the node’s name.

  • FirewallMode.

  • DebugAdress. The address exposed for debugging, at which the debugger would listen.

Here you can also see actions that can be performed on that node:

The second is the СorDapps section, where you can view all of the CorDapps installed to the node along with the CorDapp’s details:

  • Name

  • Maintainer

  • Date created

  • Version

  • Actions

    • See config file

    • Remove corDapp

CorDapp’s details display the information which is specified in the CorDapp. When no data is specified a standard value will be displayed (e.g., “Default Date” will be shown in the “Date created” field).

How to Join an Internal Network

CatBM allows customers to create Corda nodes on their own networks, but we also offer managed networks. We call this an Internal Network as it is bootstrapped internally with a single Notary. Customers may add or delete nodes in this internal network, just as they would on an external network.

The health of an internal network can be checked on the UI, as it is reflective of the status of the notary within the network. A Corda network is considered unhealthy if the notary is not in a functional state, as they play a critical part within the network.