Corda Minimal Computer Hosting Specifications?

(Tony Byorick) #1

We plan to build a couple of Linux machines connected on an internal network for a few developers to begin evaluating and testing the Corda applications posted on Github and listed in the getting started section of We are just getting started ourselves so nothing big or super complex is expected to be built at this point.

Is there a section in the Corda documentation on or maybe here in the forum that specifies a minimal machine configuration for such a Corda developer box? I’ve searched around but not found a list of minimum system requirements.

We want to use Red Hat Linux on VMWare so the operating system will be RHEL 6 or 7. Is there any reason why Red Hat would not be a good choice?

Aside from the operating system version, are there recommendations regarding:

  • Minimum number of CPU cores?
  • Minimum amount of RAM?
  • Minimum amount of Disk?

We know Oracle Java JDK v8 is needed.

(Wawrzyniec (Wawrzek) Niewodniczański) #2

RedHat should not caused any problems for Corda (if used with Oracle JDK or OpenJDK from I haven’t tested Corda on RH, but it’s fine on CentOS 7, so i suggest RH7 for OS.

CPU - At the moment Corda is single thread. Therefore 1, 2 CPU should be enough for now. It’s going to change in future, because of current work to make Corda multithreaded.
RAM - I tend to configure 2GB of memory for JVM heap space, and 4 GB for whole VM running Corda. That’s a lot of spare space, so you can use less memory per VM.
Disk - Disk requirements are rather minimal, we try to have 256 GB of disk just in case for future grow, but even 25 GB might be enough.

I know that people are running Corda in Docker containers with lower specs (1 CPU, ~ 0.5 GB mem, and nothing special for disk).

Good starting point for setting up your environment can be Corda Ansible, especially Vagrant example. It based on Ubuntu, but I can provide CentOS version. I know there is an VMWare provider for Vagrant, which might makes things easier. Otherwise, just set up VMs and run Ansible to configure them.

(Tony Byorick) #3

This is exactly the info we need. Thank you.

(Charles) #4

setting up Corda for experimenting at the very least requires almost nothing i.e. relatively speaking. if you can I would setup at least 4 machines 1 for the notary, 2 for the controller i.e. naming service , 2 others for nodes representing counterparties in a transaction

(Tony Byorick) #5

Just for starters, could you have more than one node per machine? And use two machines?.. maybe with the notary and controller on one machine and the two counterparty nodes on a second machine?

(Charles) #6

sure you can have all nodes for that matter on one computer for eval purposes and that’s exactly what happens when you first run the deployNodes task , and then subsequently from the generated folders run the ./runnodes script

that all works fine for testing / dev / experimenting

if you want to get a better feel for deployment setup and limited to less machines that you need for typical node setup then perhaps you can setup virtualBoxes one per node

generally , after you run deployNodes , you can just grab the generated folders and copy them to your physical locations on your boxes

starting is basically java -jar corda.jar

and I forget what it is if you want to run their embedded web server , might very well be webserver.jar

in test / dev mode I start the nodes as such, substitute where appropriate

java -Dcapsule.jvm.args="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=${port} -Dco.paralleluniverse.fibers.verifyInstrumentation=true" -jar corda.jar 2>&1 >${}.txt &

which sets up debug ports and the quasar instrumentation logging , I also found redirecting output convenient , so sub out the ${etc…} , just Groovy interpolation

(ChrisD) #7

Has anyone tried to deploy this on a Raspberry PI?

The RaspberryPI 3 has 1GB ram, but has someone tried using the SD card as a swap disk also?