Create a Network

What is a Notary Service?

The notary service refers to Corda notary nodes (or notaries). A notary is responsible for providing consensus in the Corda network and prohibits the double-spending of states.

When a Corda node wishes to commit a transaction, signatures are required from all peers with public keys listed in the commands. In addition, a signature from the notary node specified for the input state reference is required. This is referred to as notarization.

A notary signs the transaction if it has not already signed other transactions consuming any of the proposed transaction input states. Hence, notarization is the point of finality in the system.

Notary nodes can be hosted by any of the network participants. It is defined in each use case according to the business requirements. This component usually falls under the responsibility of the network operator (a party that bootstrapped a network/a compatibility zone).

Validating and Non-Validating Notaries

To protect themselves against a potential DoS attack, whereby an attacker submits bogus transactions, a notary can be configured to verify transactions. In this case, the notary will act as a regular node and accept the transaction only if its CorDapp contracts approve.

There are two types of notary service:

  • Non-validating notaries check whether a state has been previously used and marked as historic. They do not perform verification over transactions and do not need to see the contents of state objects.

  • Validating notaries perform the same workflow, but they add an additional step to perform transaction verification. This requires the validating notary to see the transaction’s input and output states, as well as all historic transactions.

Currently, Catalyst Blockchain Manager supports only non-validating notaries.

Single-Node and High-Availability

(HA) notaries Corda Enterprise allows one to choose one of two possible setups: single-node notary and HA notary cluster. You can read more about these setups in the official Corda documentation.

The current version of Catalyst Blockchain Manager supports a single notary node deployment. A HA notary cluster deployment will be introduced in future releases.

Please visit the official Corda documentation to read more about notaries.

Deployment of a notary node is a complex and time-consuming process, which includes node creation, configuration, registration, etc. Catalyst Blockchain Manager allows you to deploy and manage a notary node as easily as clicking a few buttons.

How to Create a Notary Node

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

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

1. Provide a notary 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.

  • Database.

Corda uses an internal H2 database by default. Catalyst Blockchain Manager also allows you to connect to an external database.

To connect to an external database you should provide additional information. Fields may differ depending on database type. The following external databases can be used:

  • PostgreSQL

  • SQLServer

  • Oracle

  • AzureSQL

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 a notary node’s identity.

Each node in a Corda network should have an identity verified by a network operator. It refers to a real legal identity. This information will be further used in all the node’s 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.

You can deploy a few single notary nodes in the same network, but only one of these nodes will perform a notarising function in the network. It is decided by the network operator upon the node’s registration.

After clicking the “Create” button, a node’s certificate signing request will be sent to the network operator. The notary 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.

Notary Node Details

A list of existing notary nodes you have deployed is displayed on the “Notary service” tab. All notary nodes are displayed with the following columns representing individual characteristics:

  • Name

  • Architecture (Notary)

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

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

By default Corda provides RPC protocol for client-node communication. Catalyst Blockchain Manager automatically generates REST API endpoints 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.

  • 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:

  • Restart notary

  • Delete notary