Corda Enterprise 4.0¶
Welcome to the documentation website for Corda Enterprise 4.0, based on the Corda 4.0 open source release.
Corda Enterprise 4.0 builds on the performance, scalability, high-availability, enhanced DMZ security, and multiple database vendor support introduced in Corda Enterprise 3.0 with the following important new additions:
- Multiple nodes behind a single firewall: multi-tenancy of Corda Firewall (float and bridge) components enables multiple Corda nodes to multiplex all remote peer-to-peer message traffic through a single Corda Firewall.
- Hardware Security Module (HSM) support: for Node CA and Legal Identity signing keys in hardware security modules provides increased security. This release includes full integration with Azure Key Vault, Gemalto Luna and Utimaco HSM devices.
- High Availability improvements: this release builds on the Hot-Cold High Availability configuration available in Corda Enterprise 3.x with improved deployment configurations to simplify operational management and reduce overall VM footprint.
- Operational Deployment improvements: introduces improvements that optimize larger scale deployments, reduce the cost of infrastructure, and minimize the operational complexity of multi-node hosting.
- Performance Test Suite for benchmarking: a toolkit to allow customers to test and validate Corda for their infrastructure performance and determine whether or not improvements are needed before going live.
Corda Enterprise 4.0 also includes the new features of Corda 4, notably:
- Reference input states: these allow smart contracts to read data from the ledger without simultaneously updating it.
- State pointers:
these work together with the reference states feature to make it easy for data to point to the latest version of any other piece of data
on the ledger by
StateRefor linear ID.
- Signature constraints: facilitate upgrading CorDapps in a secure manner using standard public key signing mechanisms and controls.
- Security upgrades to include:
- Sealed JARs are a security upgrade that ensures JARs cannot define classes in each other’s packages, thus ensuring Java’s package-private visibility feature works.
@BelongsToContractannotation: allows annotating states with which contract governs them.
SwapIdentitiesFlowto prevent nodes accepting any finalised transaction, outside of the context of a containing flow.
- Package namespace ownership: allows app developers to register their keys and Java package namespaces with the zone operator. Any JAR that defines classes in these namespaces will have to be signed by those keys.
- Versioning: applications can now specify a target version in their JAR manifest that declares which version of the platform the app was tested against. They can also specify a minimum platform version which specifies the minimum version a node must be running on to allow the app to start using new features and APIs of that version.
You can read this site offline by downloading the PDF.
Corda Enterprise is binary compatible with apps developed for the open source node. This docsite is intended for administrators and advanced users who wish to learn how to install and configure an enterprise deployment. For application development please continue to refer to the main project documentation website.
Corda Enterprise provides platform API version 4, which matches the API available in open source Corda 4.x releases.
- Release notes
- Upgrading CorDapps to Corda Enterprise 4.0
- Upgrading your node to Corda 4
- Step 1. Drain the node
- Step 2. Make a backup of your node directories and database
- Step 3. Update database
- Step 4. Replace
corda.jarwith the new version
- Step 5. Start up the node
- Step 6. Undrain the node
- Corda API
- API: States
- API: Persistence
- API: Contracts
- API: Contract Constraints
- Reasons for Contract Constraints
- Types of Contract Constraints
- Signature Constraints
- Hash Constraints
- Contract/State Agreement
- Using Contract Constraints in Transactions
- CorDapps as attachments
- Constraints propagation
- Constraints migration to Corda 4
- API: Vault Query
- API: Transactions
- Transaction lifecycle
- Transaction components
- API: Flows
- An example flow
- FlowLogic annotations
- Common flow tasks
- HTTP and database calls
- Concurrency, Locking and Waiting
- API: Identity
- API: ServiceHub
- API: RPC operations
- API: Core types
- API: Testing
- Flow testing
- Contract testing
- API stability guarantees
- Public API
- Non-public API (experimental)
- Corda and Corda Enterprise compatibility
- Platform support matrix
- Cheat sheet
- Node folder structure
- Node identity
- Node configuration
- Node command-line options
- Node administration
- Deploying a node to a server
- Node database
- Database tables
- Database schema setup
- Simplified database schema setup for development
- Upgrading a Corda (open source) Node to Corda Enterprise
- Deploying CorDapps on a node
- Upgrading CorDapps on a node
- Node shell
- Interacting with a node
- Creating nodes locally
- Running nodes locally
- Flow Hospital
- What is a compatibility zone?
- Network certificates
- The network map
- Joining Corda Testnet
- Using Azure Resource Manager Templates to deploy a Corda Enterprise node
- Using the Node Explorer to test a Corda Enterprise node on Corda Testnet
- Cipher suites supported by Corda
- Joining an existing compatibility zone
- Joining Corda Testnet
- Deploying Corda to Testnet
- Setting up a dynamic compatibility zone
- Setting up a notary service
- Official Corda Docker Image
- Performing Database Migrations
- Corda Enterprise cloud images
- Shell extensions for CLI Applications
- Certificate revocation list