Host prerequisites and database requirements

Operating Systems Supported in Production

Platform CPU Architecture Versions
Red Hat Enterprise Linux x86-64 7.x, 6.x
Suse Linux Enterprise Server x86-64 12.x, 11.x
Ubuntu Linux x86-64 16.10, 16.04
Oracle Linux x86-64 7.x, 6.x

Operating Systems Supported in Development

Platform CPU Architecture Versions
Microsoft Windows x86-64 10, 8.x
Microsoft Windows Server x86-64 2016, 2012 R2, 2012
Apple macOS x86-64 10.9 and above

Node databases

Vendor CPU Architecture Versions JDBC Driver
Microsoft x86-64 Azure SQL,SQL Server 2017 Microsoft JDBC Driver 6.4
Oracle x86-64 11gR2 Oracle JDBC 6
Oracle x86-64 12cR2 Oracle JDBC 8
PostgreSQL x86-64 9.6, 10.10, 11.5 PostgreSQL JDBC Driver 42.1.4 / 42.2.8

Sizing

The recommended minimum vault database size is 2GB. As with the Corda node, the use case determines the sizing needs for the database. When testing in your development environment, pay attention to the size of objects created in the NODE_CHECKPOINT_BLOBS and NODE_TRANSACTIONS tables, to inform the sizing requirements of your use case. Some guidance on this is provided in the Performance benchmarking results documentation. In a production implementation, a separate high availability database instance should be deployed for each Corda node. However, it’s possible to create a separate schema for each node within a single database instance subject to performance, availability, and security constraints (the schema to be used is defined in the node configuration file).

Corda Enterprise uses Liquibase to generate the requisite database schemas for both the Corda node the CorDapps the node has installed. The run-migration-script sub-command controls whether these database schemas are generated automatically. In many production scenarios, you may require more control over the creation and running of those scripts. In these cases, simply do not run the run-migration-script sub-command. The Corda Enterprise Database Management Tool can assist a database administrator by creating scripts for initial table creation.

Corda Node, Bridge and Float

Prerequisite and sizing information for the Corda Node, Bridge and Float components.

VM Sizing Guidelines

Minimum specification for a testing environment with components on separate VMs:

  • Corda Node 2 CPU Core, 4 GB Memory
  • Corda Bridge 2 CPU Core, 2 GB Memory
  • Corda Float 2 CPU Core, 2 GB Memory

Recommended production specification for components on separate VMs:

  • Corda Node 4 CPU Core, 8 GB Memory
  • Corda Bridge 2 CPU Core, 2 GB Memory
  • Corda Float 2 CPU Core, 2 GB Memory

Recommended production specification for multiple nodes

  • Corda Node(s) 8 CPU Core, 16 GB Memory, assuming two nodes, scale linearly for more
  • Corda Bridge(s) 4 CPU Core, 4 GB Memory
  • Corda Float(s) 2 CPU Core, 4 GB Memory

Additional Details

JDBC Connectivity from the Corda node to the Corda vault is required to create Corda system tables on startup as well as storing application tables/logic. Corda stores information about several aspects of the Corda node and network in tables in the vault.

During deployment the following system (not user) tables will be created in the vault database:

  • DATABASECHANGELOG
  • DATABASECHANGELOGLOCK
  • NODE_ATTACHMENTS
  • NODE_ATTACHMENTS_CONTRACTS
  • NODE_ATTACHMENTS_SIGNERS
  • NODE_CHECKPOINTS
  • NODE_CHECKPOINT_BLOBS
  • NODE_FLOW_RESULTS
  • NODE_FLOW_EXCEPTIONS
  • NODE_FLOW_METADATA
  • NODE_CONTRACT_UPGRADES
  • NODE_CORDAPP_METADATA
  • NODE_CORDAPP_SIGNERS
  • NODE_IDENTITIES
  • NODE_INFOS
  • NODE_INFO_HOSTS
  • NODE_INFO_PARTY_CERT
  • NODE_LINK_NODEINFO_PARTY
  • NODE_MESSAGE_IDS
  • NODE_METERING_COMMANDS
  • NODE_METERING_CORDAPPS
  • NODE_METERING_DATA
  • NODE_NAMED_IDENTITIES
  • NODE_NETWORK_PARAMETERS
  • NODE_OUR_KEY_PAIRS
  • NODE_PROPERTIES
  • NODE_RPC_AUDIT_DATA
  • NODE_SCHEDULED_STATES
  • NODE_TRANSACTIONS
  • PK_HASH_TO_EXT_ID_MAP
  • STATE_PARTY
  • VAULT_FUNGIBLE_STATES
  • VAULT_FUNGIBLE_STATES_PARTS
  • VAULT_LINEAR_STATES
  • VAULT_LINEAR_STATES_PARTS
  • VAULT_STATES
  • VAULT_TRANSACTION_NOTES
  • V_PKEY_HASH_EX_ID_MAP

Detailed information on the Corda Vault can be found here .

JDBC Connectivity to the Corda Vault is handled in the Corda Enterprise node.conf file in /opt/corda. Here are examples for each supported RDBMS.

Was this page helpful?

Thanks for your feedback!

Chat with us

Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.

Propose documentation improvements directly

Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.

We're sorry this page wasn't helpful. Let us know how we can make it better!

Chat with us

Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.

Create an issue

Create a new GitHub issue in this repository - submit technical feedback, draw attention to a potential documentation bug, or share ideas for improvement and general feedback.

Propose documentation improvements directly

Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.