Preinstalled Virtual Machines

To allow you to get familiar with the Sharemind Application Server, we have put together a virtual machine bundle, including most of the Sharemind MPC platform components. These include:

Runtime

  • Sharemind Application Server with the Encrypted Computing Engine for running secure multi-party programs

  • SecreC compiler

  • Sharemind Web Gateway for deploying web-based MPC applications

  • HDF5 table-based persistent storage back-end

  • Redis adapter for key-value based persistent storage back-end

  • Rmind statistical analysis tool (command-line version) with its statistical analysis back-end called Analytics Engine (with demo)

  • CSV Importer for importing CSV datasets into Sharemind (command-line version)

Development

  • SecreC standard library and reference

  • SecreC example applications showing profiling and usage of persistent storage

  • JavaScript client API for building web-based MPC client applications (with example code)

  • C++ client API for building stand-alone desktop client applications (with example code)

  • Qt Creator IDE with Sharemind SDK plug-in for basic SecreC language syntax highlighting

These components are not included in the virtual machine and are available on request:

  • Web UI for Rmind and CSV Importer

  • SecreC source code for the Sharemind Analytics Engine

  • Java and Haskell client API for building client applications

Getting Started

Sharemind MPC virtual machine bundle is available as a virtual machine image (OVA format) from the Downloads section and can be imported by many virtualization platforms, e.g. VirtualBox or VMware.

Once started, most of the demos are available from ~/Sharemind-SDK, also linked to desktop as "Demos". Most of the demos in ~/Sharemind-SDK contain README files with instructions on how to use them and their prerequisites, e.g. compiling their server-side SecreC code. The configuration files for the three server instances are available at ~/Sharemind-SDK/sharemind.

Each Sharemind Application Server (sharemind-server binary) requires a valid license file to start (the license.p7b file). As this file is client-specific and updated separately, it is not included in the bundle, but delivered separately, e.g. via e-mail. This file must be copied into each Sharemind Application Server’s configuration directory at ~/Sharemind-SDK/sharemind/server{1,2,3}. The simplest way to copy that is by setting up a shared folder with the virtual machine or downloading the license file from your e-mail account on the virtual machine itself.

Sharemind Application Server can be started from command-line with sm_start_servers.sh or from the Tools → External → Sharemind SDK → Start servers menu in Qt Creator. Both of these options start all three server instances in parallel in separate terminal windows.

We encourage you to go through the bundled demos. As mentioned, they have some comments in their README files, but please ask if anything remains unclear.

Next Steps

This virtual machine has all three Sharemind Application Server instances running locally on a single machine. Therefore, this virtual machine is meant mainly for testing and development and not performance benchmarking.

For production deployment of Sharemind MPC, we advise you to use Linux distribution specific packages, where available.