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:
The executable installer will deploy the console to the target system.
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 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.
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:
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.
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.
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'
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.)