4.9 KiB
DemoBench
DemoBench is a standalone desktop application that makes it easy to configure and launch local Corda nodes. It is useful for training sessions, demos or just experimentation.
Downloading
Installers compatible with the latest Corda release can be downloaded from the Corda website.
Running DemoBench
- Configuring a Node
Each node must have a unique name to identify it to the network map service. DemoBench will suggest local port numbers to use.
The first node will host the network map service, and we are forcing that node also to be a notary. Hence only notary services will be available to be selected in the
Services
list. For subsequent nodes you may also select any of Corda's other built-in services.
Note
Press Ctrl
/Cmd
and then click with the mouse to select multiple services, and also to deselect a service again.
- Running Nodes
DemoBench launches each new node in a terminal emulator. The
View Database
,Launch Explorer
andLaunch WebServer
buttons will all be disabled until the node has finished booting. DemoBench will then display simple statistics about the node such as its cash balance.
It is currently impossible from DemoBench to restart a node that has terminated, e.g. because the user typed "bye" at the node's shell prompt. However, that node's data and logs still remain in its directory.
- Exiting DemoBench
When you terminate DemoBench, it will automatically shut down any nodes and explorers that it has launched and then exit.
- Profiles
You can save the configurations and CorDapps for all of DemoBench's currently running nodes into a profile, which is a
ZIP
file with the following layout, e.g.:
- notary/
node.conf plugins/
- banka/
node.conf plugins/
- bankb/
node.conf plugins/ example-cordapp.jar
...
DemoBench writes a log file to the following location:
MacOSX/Linux | $HOME/demobench/demobench.log |
Windows | %USERPROFILE%\demobench\demobench.log |
Building the Installers
There are three scripts in the tools/demobench
directory:
package-demobench-exe.bat
(Windows)package-demobench-dmg.sh
(MacOS)package-demobench-rpm.sh
(Fedora/Linux)
Each script can only be run on its target platform, and each expects the platform's installation tools already to be available.
- Windows: Inno Setup 5+
- MacOS: The packaging tools should be available automatically. The DMG contents will also be signed if the packager finds a valid
Developer ID Application
certificate on the keyring. You can create such a certificate by generating a Certificate Signing Request and then asking your local "Apple team agent" to upload it to the Apple Developer portal. (See here.)- Fedora/Linux:
rpm-build
packages.
You will also need to define the environment variable JAVA_HOME
to point to the same JDK that you use to run Gradle. The installer will be written to the tools/demobench/build/javapackage/bundles
directory, and can be installed like any other application for your platform.
Developer Notes
Developers wishing to run DemoBench without building a new installer each time can install it locally using Gradle:
$ gradlew tools:demobench:installDist $ cd tools/demobench/build/install/demobench $ bin/demobench
Unfortunately, DemoBench's $CLASSPATH
may be too long for the Windows shell . In which case you can still run DemoBench as follows:
> java -Djava.util.logging.config.class=net.corda.demobench.config.LoggingConfig -jar lib/demobench-$version.jar
While DemoBench can be executed within an IDE, it would be up to the Developer to install all of its runtime dependencies beforehand into their correct locations relative to the value of the user.dir
system property (i.e. the current working directory of the JVM):
- corda/
corda.jar corda-webserver.jar
- explorer/
node-explorer.jar
- plugins/
bank-of-corda.jar