Corda 5 Developer Preview

Corda is a trust technology platform. You can use it to build verified blockchain networks, create applications that represent your business on the network, and interact in a completely secure ecosystem.

This is a developer preview of Corda’s next major iteration, Corda 5. Here, you can experiment with three key aspects of Corda 5:

In this preview, you can:

  • Deploy a local Corda 5 developer network for building and testing CorDapps.
  • Trial a new Corda 5 sample CorDapp, using HTTPS node operations via a new RESTful API.
  • Follow a step-by-step guide to create a Corda 5 CorDapp.
  • Try the new CorDapp packaging plugin to convert your code to the Corda 5 .cpk fileā€”the new extension for Corda 5 CorDapps.
  • Experiment with the discovery and identity API for network memberships.

New concepts in Corda 5 Developer Preview

If you have worked with Corda before, you will see major advances when you start developing in the Corda 5 Developer Preview. Previous versions of Corda focused on building an ecosystem of networks. Corda 5 is application-focused, making it easier to build, test, and distribute CorDapps.

To simplify the CorDapp development process, Corda 5 breaks the operational and developmental power of Corda into layers. Allowing you to choose the technologies that matter to you.

Notably, as a developer, you will notice a substantial restructuring of the available APIs for creating CorDapps and initiating flows remotely using HTTPS.

A full list of what’s new in Corda 5 Developer Preview:

  • A Modular API. Corda’s core API module has been split into packages and versioned.

  • Dependency upgrades to Gradle 6, Java 11, and Kotlin 1.4. This enables the latest Gradle CorDapp packaging plugins, letting you create CorDapps faster.

  • Node interaction upgrades. You can interface with a node using HTTP and auto-generate CorDapp endpoints.

  • Upgrades to packaging:

    • CorDapps are no longer packaged as .jar files.
    • A Corda Package, .cpk is now the unit of software that executes within a single sandbox.
    • CorDapps are a set of versioned .cpks that define a deployable application.
  • A new integration test framework that reflects real node behavior.

  • An API for pluggable uniqueness service (notary). This is interface-only.

CorDapp Development changes

The Corda 5 flow interface and CorDapp packaging makes building CorDapps simpler and more concise. The Flow interface allows you to create flows and inject your preferred methods (now called Corda Services) into the flow.

The FlowLogic abstract class has been broken up into a set of smaller interfaces. In place of FlowLogic, you can now implement the Flow interface which holds the call method.

Methods that previously existed on FLowlogic have been broken out into injectable Corda services.

The move away from an abstract class to injectable services allows you to use only the services you need. Features that you don’t use will not need to be present on your flow classes.

Packaging your code has been made easier with a new CorDapp packaging plugin. Individual CorDapps can be bundled together to create your enterprise solution using a simple Command Line Interface (CLI).

Network and node changes

You can easily bootstrap a local Corda 5 network using the new CLI. This deployment creates a developer network in which you can test your own Corda 5 CorDapps or try the new node HTTP commands to initiate flows on a demo CorDapp.

Next steps

Dive into the tutorials to get started with the Corda 5 Developer Preview .

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.