CorDapp Standard Development Environment (CSDE)
The CorDapp Standard Development Environment (CSDE) makes the process of prototyping CorDapps on Developer Preview 2 more straight-forward.
The CSDE is obtained by cloning our
CSDE-Cordapp-Template-Kotlin repository to your local machine. The CSDE provides:
- A prepared CorDapp project that you can use as a starting point to develop your own prototypes
- A base Gradle configuration that brings in the dependencies you need to write and test a Corda 5 CorDapp
- A set of Gradle helper tasks which speed up and simplify the development and deployment process; these are effectively wrappers over the Corda CLI
- Debug configuration for debugging a local Corda cluster
MyFirstFlowcode which forms the basis of the Getting Started documentation
- The ability to configure the members of the local Corda network
Downloading the CSDE
To obtain the CSDE template, clone the CSDE-Cordapp-Template-Kotlin repository:
git clone https://github.com/corda/CSDE-cordapp-template-kotlin.git <local-folder>
Change to the new directory and checkout the Developer Preview 2 branch:
git checkout release/corda-5-developer-preview-2
Initialise the git repo and change the remote so you do not inadvertently push your work back to our R3 repo.
Open the project in IntelliJ and let the import process complete. When complete, the project structure looks as follows:
Configuring the CSDE
The CSDE includes Gradle tasks to manage a local deployment of Corda. These Gradle tasks require Java Azul Zulu 11. To configure IntelliJ to use the correct Java version for Gradle, set Gradle JVM to
Project SDK 11, as follows:
This section provides an overview of the content of CSDE. Other sections show you how to use it in the process of writing a CorDapp.
On the left, you can see the folder structure created, ready for CorDapps development.
You will write your flow code in
src/main/kotlin/<your package path> and your flow tests in
src/test/kotlin/<your package path>.
(For Java, use
src/main/java/<your package path> and
src/test/java/<your package path> respectively.)
Gradle Helpers for the Combined Worker
On the right, you can see the Gradle tasks that we have included to help you work with a local deployment of Corda using the combined worker: The combined worker is a Corda cluster that runs all of the workers in one JVM process.
startCorda task does the following:
- Downloads and locally stores a copy of the combined worker JAR, if required
- Starts an instance of a Postgres Docker container; you will need Docker Engine or Docker Desktop running
- Starts the combined worker
startCordatask if any existing local programs are using ports 5432, 7000, or 8888. Reserve these ports.
stopCorda task does the following:
- Stops the Postgres database
- Stops the combined worker
deployCorDapp task does the following to compile and deploy the CorDapp to the combined worker:
- Compiles the CPB and CPI using the buildcpi task
- Uploads the CPI to the combined worker
- Generates the virtual nodes with the CPI
buildCPI task compiles your CorDapp into a CPI file.
listVNodes task displays a list of the virtual nodes on the local Corda cluster.
In the toolbar, you can select the
DebugCorDapp run configuration to debug the running Corda from IntelliJ.
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
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.