Host prerequisites and database requirements
Operating Systems Supported in Production
Platform | CPU Architecture | Versions |
---|---|---|
Red Hat Enterprise Linux | x86-64 | 8.x, 7.x, 6.x |
Suse Linux Enterprise Server | x86-64 | 12.x, 11.x |
Ubuntu Linux | x86-64 | 16.04, 16.10, 18.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, 13.8 | PostgreSQL JDBC Driver 42.1.4 / 42.2.9 |
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-scripts
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-scripts
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
- 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.