This prototype demonstrates a nodejs application server which uses corda rpc library running on GraalVM to communicate with Corda
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
api
gradle/wrapper
jars
.gitignore
README.md
RPCConnection.js
build.gradle
gradlew
gradlew.bat
nodeConfig.json
package-lock.json
package.json
server.js

README.md

cordapp-example-nodejs-server-graalvm

This example demonstates a nodejs server which uses corda rpc-3.1 library running in GraalVM. The nodejs server serves APIs to create IOU, fetch IOUs similar to the cordapp-example

Pre-requisites

Setting Up the GraalVM environment

  • Follow the official GraalVM documentation on how to setup the Graal for linux or osX.
  • To learn more about GraalVM refer to the Mike Hearn's blog

Steps to the run the node.js server with GraalVM

  • Run the cordapp-example nodes
  • Make sure that the nodeConfig.json file matches the settings of a running node
  • Run ./gradlew printClassPath once to make sure everything is downloaded. You should see a big classpath be printed.
  • Run npm install from root directory of the project to install express and body-parser npm modules.
  • Run node --jvm --jvm.cp=$( ./gradlew -q printClasspath ) server.js
  • Output will look like: PartyA Node.js server listening on port 3000

TroubleShooting

If you get the following error when starting the server, you need to install GraalVM:

node: bad option: --jvm
node: bad option: --jvm.cp=

Interacting with the Cordaapp-example network to create IOUs from nodejs server

  1. Create-iou

curl -d '{"iouValue":10, "otherPartyOrgName":"PartyB","otherPartyOrgCountry":"New York", "otherPartyOrgLocality":"US"}' -H "Content-Type: application/json" -X POST http://localhost:3000/api/example/create-iou

  1. Fetch IOUs

curl http://localhost:3000/api/example/ious

Other endpoints

  • GET /api/example/me
  • GET /api/example/peers