Table of Contents

Jar Base Console Installers

This section will describe the steps required to create a Jar based installer for the ximix console. The ximix console is a monitoring console that allows administrators to monitory ximix nodes in real time. The Executable Jar files were chosen because:

  1. The complete process to build the jars can be examined and audited from beginning to end.
  2. As target systems will be running java, the platform to run the installer would be available.
  3. Jar files can be signed for later validation and repudiation.

The executable installer will deploy the console to the target system.

Creating an Installer

To create an installer you must install Gradle. Gradle is a build system that is used by this project to automate the process of building ximix.

Download and unpack ximix

Download the ximix source code and unpack it into a director of your choosing, using a terminal or a command prompt (cmd), “cd” into the root of the source code.

If this is a fresh installation

If this is a fresh installation you must run the following command from a command prompt or terminal window.

cd /path/to/ximix/installation


mw$ gradle fetch_libs clean jar
:fetch_libs

And you should get output similar to the following.

Fetching 'bcprov-jdk15on-150b03.jar' from 'https://downloads.bouncycastle.org/betas/bcprov-jdk15on-150b03.jar' ... Complete
Fetching 'bcpkix-jdk15on-150b03.jar' from 'https://downloads.bouncycastle.org/betas/bcpkix-jdk15on-150b03.jar' ... Complete
Fetching 'jpbc-api-1.2.1.jar' from 'https://www.cryptoworkshop.com/libs/jpbc-api-1.2.1.jar' ... Complete
Fetching 'jpbc-crypto-1.2.1.jar' from 'https://www.cryptoworkshop.com/libs/jpbc-crypto-1.2.1.jar' ... Complete
Fetching 'jpbc-plaf-1.2.1.jar' from 'https://www.cryptoworkshop.com/libs/jpbc-plaf-1.2.1.jar' ... Complete
Fetching 'jpbc-pbc-1.2.1.jar' from 'https://www.cryptoworkshop.com/libs/jpbc-pbc-1.2.1.jar' ... Complete
Fetching 'mapdb-0.9.3.jar' from 'https://www.cryptoworkshop.com/libs/mapdb-0.9.3.jar' ... Complete
Fetching 'jackson-annotations-2.2.0.jar' from 'https://www.cryptoworkshop.com/libs//jackson-annotations-2.2.0.jar' 

... output removed for brevity.


:console:processResources
:console:classes
:console:jar
:demo:compileJava
:demo:processResources UP-TO-DATE
:demo:classes
:demo:jar
:installer:compileJava
:installer:processResources
:installer:classes
:installer:jar
:test:compileJava
:test:processResources UP-TO-DATE
:test:classes
:test:jar

BUILD SUCCESSFUL

The above step must work for you to continue.

Building on Unix Systems

If you are using a unix based system, such as linux or Mac OSX then there is a connivence script in the 'scripts' scripts directory of the ximix project. The scrips director is off the root of the ximix project and contains a script called 'mkconsoleinstaller.sh'

mw$ ls -al scripts/mkconsoleinstaller.sh 
-rwxr-xr-x  1 mw  staff  416  1 Aug 19:43 scripts/mkconsoleinstaller.sh

Once you have found this script it can be run by providing two parameters:

  1. The path to the mixnet.xml configuration file which defines the addresses of the nodes.
  2. The path to the console.xml configuration file which supplies configuration information for the console.

For example, (assuming you are in the root of the ximix project)

mw$ ./scripts/mkconsoleinstaller.sh demo/conf/mixnet.xml demo/conf/console.xml

Will produce a demo console that will work with the demo configurations for the ximix nodes.

When you run the above command you will see output similar to:

./scripts/mkconsoleinstaller.sh demo/conf/mixnet.xml demo/conf/console.xml 
:clean
:common:clean
:console:clean
:crypto:clean
:demo:clean
:installer:clean
:mixnet:clean
:node:clean
:test:clean

... output removed for brevity.

:installer:jar
:test:compileJava
:test:processResources UP-TO-DATE
:test:classes
:test:jar
:make_console_installer

Making Node Installer Jar


Installer Jar: /Users/meganwoods/crypto-workshop/ximix/repo/ximix/build/installers/XimixConsoleInstaller.jar
The installer jar can run using:
java -jar /Users/meganwoods/crypto-workshop/ximix/repo/ximix/build/installers/XimixConsoleInstaller.jar

BUILD SUCCESSFUL

If the the command is successful the installer jar and instructions on running the jar are shown in the output.

When you run the jar file it will ask you for an installation location, once this is supplied it will proceed to install the console.

Creating an installer on Windows

Presently there is no script for windows but the same result can be achieved by:

> gradle clean jar make_console_installer "-Dmixnet=demo/conf/mixnet.xml" "-Dconfig=console/conf/console.xml"

This will produce the installer jar and display the location of the installer and how to run it.

Running the installer

The installer can be run by using the following command.

java -jar XimixConsoleInstaller.jar

When the installer runs it will ask you for an installation location the following applies to both unix and windows operating systems.

mw$ java -jar XimixConsoleInstaller.jar 

Enter Install Directory [/Users/meganwoods/crypto-workshop/ximix/repo/ximix] >/tmp/ximix
Confirm Install to '/private/tmp/ximix' Yes or [No] >y

Unpacking: /tmp/ximix/ximix-console/bin/start.bat
Unpacking: /tmp/ximix/ximix-console/bin/start.sh
Unpacking: /tmp/ximix/ximix-console/conf/console.xml
Unpacking: /tmp/ximix/ximix-console/conf/mixnet.xml
Unpacking: /tmp/ximix/ximix-console/libs/bcprov-jdk15on-150b03.jar
Unpacking: /tmp/ximix/ximix-console/libs/common.jar
Unpacking: /tmp/ximix/ximix-console/libs/console.jar
Unpacking: /tmp/ximix/ximix-console/libs/crypto.jar
Unpacking: /tmp/ximix/ximix-console/libs/jackson-annotations-2.2.0.jar
Unpacking: /tmp/ximix/ximix-console/libs/jackson-core-2.2.0.jar
Unpacking: /tmp/ximix/ximix-console/libs/jackson-databind-2.2.0.jar
Unpacking: /tmp/ximix/ximix-console/libs/javax.servlet-3.0.0.v201112011016.jar
Unpacking: /tmp/ximix/ximix-console/libs/jetty-http-9.0.4.v20130625.jar
Unpacking: /tmp/ximix/ximix-console/libs/jetty-io-9.0.4.v20130625.jar
Unpacking: /tmp/ximix/ximix-console/libs/jetty-server-9.0.4.v20130625.jar
Unpacking: /tmp/ximix/ximix-console/libs/jetty-util-9.0.4.v20130625.jar
Unpacking: /tmp/ximix/ximix-console/libs/mixnet.jar
Unpacking: /tmp/ximix/ximix-console/libs/node.jar
Setting posix file permissions on 'ximix-console/bin/start.sh' to 'rwxr-xr-x'

Running the console

To run the console cd into the 'ximix-console' directory and run './bin/start.sh' and you should see output similar to:

./bin/start.sh

mw$ 2013-08-01 20:46:59.465:INFO:oejs.Server:main: jetty-9.0.4.v20130625
2013-08-01 20:46:59.481:INFO:oejsh.ContextHandler:main: Started o.e.j.s.h.ContextHandler@5f9a5d3d{/api,null,AVAILABLE}
2013-08-01 20:46:59.494:INFO:oejs.ServerConnector:main: Started ServerConnector@211b3c6a{HTTP/1.1}{0.0.0.0:1887}

To access the console use your web browser with the following url:

(Note, you will need to start some nodes before the console will display any information.)

http://127.0.0.1:1887