CSDE Overview heading-link-icon

This section provides an overview of the content of CSDE. It contains the following:

On the left, you can see the folder structure created, ready for CorDapps development.

CSDE folders in IntelliJ
CSDE folder structure

For Kotlin, write your flow Communication between participants in an application network is peer-to-peer using flows. code in workflows/src/main/kotlin/<your package path> and your contract and states An immutable object representing a fact known by one or more participants at a specific point in time. You can use states to represent any type of data, and any kind of fact. code in /contracts/src/main/kotlin/<your package path>.

For Java, use workflows/src/main/java/<your package path> and your contract and states code in /contracts/src/main/java/<your package path>.

For test code, use the corresponding test folder.

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:

CSDE gradle tasks in IntelliJ
CSDE gradle helpers
The combined worker is a Corda cluster that runs all of the workers in one JVM process.

The helpers are split into three folders:

These tasks help with the lifecycle of your local Corda cluster.

Helper
Description
startCorda1. Downloads a copy of the combined worker JAR, if required.
2. Starts an instance of a Postgres Docker container. You will need Docker Engine or Docker Desktop running.
3. Starts the combined worker. The Combined Worker will continue to run in a ‘Run’ Console until it is shut down.
Note, Corda takes about one minute to start up. It is best to poll the cluster with one of the csde-query helpers until it responds to confirm if the cluster is live and ready to interact.
stopCorda1. Stops the Postgres database.
2. Stops the combined worker.
Helper
Description
1-createGroupPolicyCreates the group policy A JSON file containing network information that is bundled with a CPB to create a CPI. which is required to set up the application network The set of all possible entities onboarded according to the rules of the network. Application networks enable people and businesses to interact with each other on Corda. .
2-createKeyStoreCreates the signing keys for publishing the CPIs Corda Package Installer. A signed ZIP/JAR combination of a CPB and a Group Policy File that defines not only the application code that a virtual node will run, but also the details of the MGM with which to register, and the details of network PKI requirements. .
3-buildCPIsBuilds your CorDapp and wraps it in a signed CPI.
4-deployCPIsDeploys the CPI to your local Corda cluster. If the CPI has already been deployed to the nodes on the cluster, this task performs a forced upload and replaces the old CPI with the new one.
5-vNodeSetupSets up the virtual nodes specified in config/static-network-config.json on you local Corda cluster with the uploaded CPI.

Each of these tasks has a dependency on the previous. So, if you run 3, it also runs 1 and 2.

These are standard queries that are useful to run against your Corda cluster.

Helper
Description
listVNodesQueries the Corda cluster and returns the list of vnodes. This includes the ShortHash that you need for running flows.
listCPIsQueries the Corda cluster and returns the list of CPIs uploaded.

In the toolbar, you can select the DebugCorDapp run configuration to debug the running Corda from IntelliJ.

Menu in IntelliJ to debug Corda
CSDE DebugCorDapp

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.