Host prerequisites and database requirements

Operating Systems Supported in Production

PlatformCPU ArchitectureVersions
Red Hat Enterprise Linuxx86-647.x, 6.x
Suse Linux Enterprise Serverx86-6412.x, 11.x
Ubuntu Linuxx86-6416.10, 16.04
Oracle Linuxx86-647.x, 6.x

Operating Systems Supported in Development

PlatformCPU ArchitectureVersions
Microsoft Windowsx86-6410, 8.x
Microsoft Windows Serverx86-642016, 2012 R2, 2012
Apple macOSx86-6410.9 and above

Corda Vault

VendorCPUArchitectureVersionsJDBC Driver
Microsoftx86-64Azure SQL, SQL Server 2017MicrosoftJDBC Driver 6.2
Oraclex86-6411gR2OracleJDBC 6
Oraclex86-6412cR2OracleJDBC 8
PostgreSQLx86-649.6PostgreSQLJDBC Driver 42.1.4

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_CHECKPOINTS and NODE_TRANSACTIONS tables, to inform the sizing requirements of your use case. Some guidance on this is provided in: Sizing and Performance: Database server configuration. In a production implementation, a separate high availability database instance should be deployed for each Corda node. However, it’s possible to create 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 config file).

Corda Enterprise uses Liquibase to generate the requisite database schemas for both the Corda node the CorDapps the node has installed. The runMigration parameter 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, set runMigration to false. 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_CONTRACT_UPGRADES
  • NODE_IDENTITIES
  • NODE_INFOS
  • NODE_INFO_HOSTS
  • NODE_INFO_PARTY_CERT
  • NODE_LINK_NODEINFO_PARTY
  • NODE_MESSAGE_IDS
  • NODE_NAMED_IDENTITIES
  • NODE_NETWORK_PARAMETERS
  • NODE_OUR_KEY_PAIRS
  • NODE_PROPERTIES
  • 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.