Upgrading the notary to a new version of Corda Enterprise

Version 4.4

The notary_request_log table was extended to include the X500 name of the worker node that processed the request.

Upgrade steps:

  • Backup your DB Cluster.
  • Test you can restore from backup.
  • Log in to any database server of your cluster and add the new column to the notary_request_log table, see SQL statements below. It will be replicated to all other database servers.
  • In the unlikely event that the database gets corrupted, take all the notary worker nodes down and restore the database.
  • Perform a rolling upgrade on the notary worker nodes. Follow the node upgrade guide for each node, and make sure the node is running and is no longer in flow draining mode before moving on to the next one.

JPA Notary

CockroachDB

ALTER TABLE notary_request_log ADD COLUMN worker_node_x500_name VARCHAR(255);

Oracle RAC

ALTER TABLE notary_request_log ADD worker_node_x500_name VARCHAR(255);

Percona XtraDB

ALTER TABLE notary_request_log ADD COLUMN worker_node_x500_name TEXT;

Version 4.2

Since Corda Enterprise 4.2 the MySQL JDBC driver now needs to be installed manually for every worker node, otherwise nodes will fail to start. See notary installation page for more information.

Version 4.0

In Corda Enterprise 4.0 an additional table notary_committed_transactions is being used by the HA notary to support the new reference state functionality.

Upgrade steps:

  • Backup your Percona XtraDB Cluster.
  • Test you can restore from backup.
  • Log in to any Percona XtraDB Cluster database server and create the notary_committed_transactions table. It will be replicated to all other database servers.>
CREATE TABLE IF NOT EXISTS notary_committed_transactions (
    transaction_id BINARY(32) NOT NULL,
    CONSTRAINT tid PRIMARY KEY (transaction_id)
);
  • In the unlikely event that the database gets corrupted, take all the notary worker nodes down and restore the database.
  • Perform a rolling upgrade on the notary worker nodes. Follow the node upgrade guide for each node, and make sure the node is running and is no longer in flow draining mode before moving on to the next one.