This is a fork of the DepSpace project intended for stability and improvements. Please credit the original project as described below.
DepSpace (Dependable Tuple Space) is fault and intrusion-tolerant secure tuple space implementation. The main objective of the system is to provide an extended tuple space abstraction that could be used to implement Byzantine fault tolerant applications. The system design is described in an EuroSys'08 paper.
This package contains the DepSpace source code (src/), libraries needed (lib/), a Makefile, and configuration files (config/). DepSpace requires the Java Runtime Environment version 1.7 or later.
This version of DepSpace uses a tunned version of BFT-SMaRt (lib/SMaRt-eds.jar). In the future it will be fully integrated with the most up-to-date distribution of this library.
To build an image with DepSpace execute:
docker build -t depspacito .
To start a container with DepSpace instance execute:
docker run -it -p 11000:11000 depspacito /bin/bash -c "mvn clean && mvn install && mvn exec:java"
DepSpacito added maven support.
First run:
mvn clean
to clean the project folder and install the non-maven libs. This is required to install the jar libs of the project.
Execute:
mvn install exec:java@replica &
mvn install exec:java@client
to install DepSpacito and run a replica and a client.
First you need to configurate the BFT-SMaRt library. Please take a look at BFT-SMaRt page.
After that, you just need to run the DepSpace replicas using the given script /scripts/replica by typing the command:
./replica
The field is the replica's unique identifier, and the field is the full path to the configuration directory (/config). One execution example:
./replica 0 /home/ubuntu/EDS/config
Note that, by default you need to run 4 DepSpace replicas (from 0 to 3).
To run the client you need to run the script scripts/client by executing: ./client
The refers to the client unique identifier. This id should be different from the ones used to lauch the DepSpace replicas. The field can be the same used above. The field is related with depspace extentions source directory. It should be the full path of the directory used to store the DepSpace extensions. An example is:
./client 4 /home/ubuntu/EDS/config /home/ubuntu/EDS/src/