This release continues on Corda on the path to a stable API and improving developer friendliness. There have also been more bug fixes and other improvements across the board.
A format has been introduced for CorDapp JARs that standardises the contents of CorDapps across nodes. This new format now requires CorDapps to contain their own external dependencies. This paves the way for significantly improved dependency management for CorDapps with the release of Jigsaw (Java Modules). For those using non-gradle build systems it is important to read this docsite page to learn more. Those using our cordformation plugin simply need to update to the latest version (
0.14.0) to get the fixes.
It is now possible to specify multiple IP addresses and legal identities for a single node, allowing node operators more flexibility in setting up nodes.
We’ve now begun the process of demarcating which classes are part of our public API and which ones are internal. Everything found in
net.corda.core.internal and other packages in the
net.corda namespace which has
.internal in it are considered internal and not for public use. In a future release any CorDapp using these packages will fail to load, and when we migrate to Jigsaw these will not be exported.
The transaction finalisation flow (
FinalityFlow) has had hooks added for alternative implementations, for example in scenarios where no single participant in a transaction is aware of the well known identities of all parties.
DemoBench has a fix for a rare but inconvenient crash that can occur when sharing your display across multiple devices, e.g. a projector while performing demonstrations in front of an audience.
Guava types are being removed because Guava does not have backwards compatibility across versions, which has serious issues when multiple libraries depend on different versions of the library.
The identity service API has been tweaked, primarily so anonymous identity registration now takes in
AnonymousPartyAndPath rather than the individual components of the identity, as typically the caller will have an
AnonymousPartyAndPath instance. See change log for further detail.
The Vault Query service adds support for Aggregate Functions (sum, max, min, avg, count) with, optional, group by clauses and sorting (on calculated aggregates). Pagination has been simplified, with a resulting improvement in performance for general queries. Finally a new Sort criteria (by State Reference or constituents of) has been added, and several important fixes applied (please see the changelog).
Upgrading to this release is strongly recommended in order to keep up with the API changes, removal and additions.