Welcome to the CorDapp template. The CorDapp template is a stubbed-out CorDapp which you can use to bootstrap your own CorDapp projects.
This is the JAVA version of the CorDapp template. For the KOTLIN version click here.
You will need the following installed on your machine before you can start:
- JDK 8 installed and available on your path (Minimum version: 1.8_131).
- IntelliJ IDEA (Minimum version 2017.1)
- Optional: h2 web console (download the "platform-independent zip")
For more detailed information, see the getting set up page on the Corda docsite.
Getting Set Up
To get started, clone this repository with:
git clone https://github.com/corda/cordapp-template-java.git
And change directories to the newly cloned repo:
Building the CorDapp template:
Note: You'll need to re-run this build step after making any changes to the template for these to take effect on the node.
Running the Nodes
Once the build finishes, change directories to the folder where the newly built nodes are located:
The Gradle build script will have created a folder for each node. You'll
see three folders, one for each node and a
runnodes script. You can
run the nodes with:
You should now have three Corda nodes running on your machine serving the template.
When the nodes have booted up, you should see a message like the following in the console:
Node started up and registered in 5.007 sec
Interacting with the CorDapp via HTTP
The CorDapp defines a couple of HTTP API end-points and also serves some static web content. Initially, these return generic template responses.
The nodes can be found using the following port numbers, defined in the
build.gradle, as well as the
node.conf file for each node found
PartyA: localhost:10007 PartyB: localhost:10010
As the nodes start up, they should tell you which host and port their embedded web server is running on. The API endpoints served are:
And the static web content is served from:
Using the Example RPC Client
TemplateClient.java file is a simple utility which uses the client
RPC library to connect to a node and log its transaction activity.
It will log any existing states and listen for any future states. To build
the client use the following Gradle task:
To run the client:
Select the 'Run Template RPC Client' run configuration which, by default, connect to PartyA (RPC port 10006). Click the Green Arrow to run the client.
Via the command line:
Run the following Gradle task:
Note that the template rPC client won't output anything to the console as no state objects are contained in either PartyA's or PartyB's vault.
Running the Nodes Across Multiple Machines
Tutorials and developer docs for CorDapps and Corda are here.