By Mike Ward, Head of Product at R3
We’ve been hard at work on our second quarter release within the engineering and product teams at R3. This is our second release in our new quarterly release cadence. This quarter we are delivering improvements across our Corda, Corda Enterprise and Corda Enterprise Network Manager products in the areas of performance, operational and deployment improvements. Among the many features, we are introducing large latency improvements in Corda Enterprise and the ability to recover a ledger from your network peers.
The biggest areas of improvements we’ve focused on in the second quarter are performance improvements for Corda Enterprise.
Performance has been a large focus for the blockchain industry for sometime. However, arguably much of it was academic as there were very few implementations where performance was truly the constraining characteristic. We have done work in earlier releases focused on performance. That focus was on throughput, often referred to as transactions per second (TPS). Throughput is a measurement of how many transactions a node can process concurrently. We had some great achievements in throughput performance in earlier releases.
As our customers production systems grow in volume they are starting to push the limits on performance. Our improvements in throughput helped greatly and remain robust. However, we are starting to see that larger networks pose a different performance challenge — latency.
Latency is a different way to look at performance. Latency is a measurement of how long a transaction takes from the time it starts to finish, among a group of participants. One of the key challenges is the latency in sending and receiving messages between participants in building, finalizing and distributing a transaction. This is our area of focus in the second quarter release. We think you’ll be excited to see the dramatic improvements we’ve made here. All of these improvements come without any breaking changes to compatibility. Our latency improvements include:
- Reduction of latency in back-chain resolution.
- Parallelization of signature requests and collection.
- Using a single checkpoint (instead of multiple ones) when using a flow to contact multiple parties.
- Message compression sending less data over the wire and persisting a more compact format.
We are happy to announce new ledger recovery capabilities. As a point-to-point system Corda maintains privacy by ensuring only parties to a transaction are able to see the transaction and record it to their vault. However, one of the benefits of a blockchain system has been perceived as the ability to recover your ledger from a peer in the event of a failure. Without a global state ledger Corda has lacked this ability. In this release we are delivering a similar capability. Corda Enterprise 4.5 brings:
- Tooling to allow nodes to diagnose any inconsistency or missing data in their ledger by comparing their ledger with the one of their peers.
- The ability to recover data from your network peers by requesting transactions from them via the flow framework.
- The ability to recover from network peers via an export / import process to lessen the impact on network traffic.
Additionally, we have a number of improvements for the operator of the node or the business network.
- Auditing. Nodes now maintain an audit trail of all users who tried to launch an RPC operation. This has been added for compliance and security reasons.
- Flow management. We continue to improve our flow management capabilities. If a node user terminates a flow, counter-parties are automatically notified and any soft-locked states in the vault are automatically released.
- Metering. Tooling to collect metering from network participants. Specifically for Corda Enterprise, the application publisher is able to request metering information from nodes where their CorDapp is deployed. This allows them to have an aggregated view of Corda Enterprise usage, related to their solution. This supports our flexible pricing model and is achieved with full privacy and security considerations.
- Notary auditing. We’re evolving the notary to facilitate easier operations by network operators including auditing capabilities. The notary operator can better audit the log of spent states and requests from clients.
Deployment & Management
Deployment of a solution into an enterprise environment can be challenging with the highly heterogeneous environments operated by our larger customers. With a few years of experience in deployments in these environments, we have now selected a single set of deployment tooling that we believe best supports the needs of our customers and sets us up for future growth.
We are embracing a container strategy, specifically with Docker images. Containers are largely the default means by which organizations expect software to be delivered into their data centers. Docker has become the de-facto standard for containers. We are delivering all of our products in Docker containers.
We will be allowing customers to automate the process of deployment by distributing our containers with Docker Hub. This allows customers to use standard tooling in their environments to obtain and manage Corda Enterprise and Corda Enterprise Network Manager.
Additionally, we continue to lay the groundwork for a better cloud experience. This release brings:
- AWS HSM support for signing, confidential identity and TLS keys. Note the TLS key support requires use of the Corda Firewall component in configuration.
- Additionally, the notary has the ability to store keys in AWS as the signing occurs in the HSM environment.
Corda Enterprise Network Manager
Corda Enterprise Network Manager continues to mature as a critical component of the network. In this release we have significant improvements including:
- Availability as a cloud template (available at GA).
- High availability for the CRL endpoint.
- Improved DB permissions.
We have a large number of smaller, additional improvements. The smaller items will be available in the upcoming release notes.