Recipe ID: hsts-r54
In this tutorial, we briefly review the Corda R3 Decentralized Application or DApp. This tutorial helps you to have a good understanding of Corda DApp architecture and you will use it in developing your future blockchain applications using Corda platform. In other words, in order to build distributed ledger application in Corda, you must fully follow and understand this tutorial.
CorDapps (Corda Distributed Applications) are distributed applications that run on the Corda platform. The goal of a CorDapp is to allow nodes to reach agreement on updates to the ledger. They achieve this goal by defining flows that Corda node owners can invoke over RPC:
CorDapps take the form of a set of JAR files containing class definitions written in Java and/or Kotlin.
These class definitions will commonly include the following elements:
But the CorDapp JAR can also include other class definitions. These may include:
Suppose a node owner wants their node to be able to trade bonds. They may choose to install a Bond Trading CorDapp with the following components:
After installing this CorDapp, the node owner will be able to use the flows defined by the CorDapp to agree ledger updates related to issuance, sale, purchase and exit of bonds.
Corda and Corda Enterprise are compatible and interoperable, which means you can write a CorDapp that can run on both. To make this work in practice you should follow these steps:
It is also important to understand how to manage any dependencies a CorDapp may have on 3rd party libraries and other CorDapps.
As of Corda 4 it is recommended to use CorDapp Jar signing to leverage the new signature constraints functionality.
In summary, structure your app as kernel (contracts, states, dependencies) and workflow (the rest) and be sure to compile the kernel against Corda open source. You can compile your workflow (Jars) against the distribution of Corda that they target.
After finishing this tutorial, you can move on to below tutorials:
Build and Run Sample Corda Decentralized App for a Distributed Ledger
Develop your first Decentralized Application using Corda Distributed Ledger
Also, if you like to learn Corda or other blockchain development platforms via hands-on projects, the following classes are recommended:
Blockchain Hyperledger Fabric and Composer development- 30 hour course
Blockchain Ethereum development with Solidity- 30 hour course
Blockchain Corda R3 distributed ledger development- 30 hour course
Become Blockchain Certified Security Architect in 30 hours
We provide private tutoring classes online and offline (at our DC site or your preferred location) with custom curriculum for almost all of our classes for $50 per hour online or $75 per hour in DC. Give us a call or submit our private tutoring registration form to discuss your needs.