This repository allows to reproduce the performance evaluation of the software EasySMPC in a dockerized form. This branch contains the evaluation with the e-mail server iRedMail. For the performance evaluation of EasySMPC's own backend EasyBackend please switch to the respective branch in this repository. The results of previous runs of the evaluation are stored in the folder
results
.
- Clone this repository with the command
clone https://github.com/fnwirth/easy-smpc-performance-evaluation
. - Build the program with the command
mvn clean package
. The two warnings regarding the import of easy-smpc.jar can be ignored. - Create the docker image by changing to the folder docker and executing the script
createDockerImage.sh
orcreateDockerImage.bat
respectively. - Start the docker image with the script
startEvaluation.sh
orstartEvaluation.bat
. To change the simulated network delay, the parameter TC_DELAY_MS can adapted before starting the script. - The performance evaluation is running and can be inspected with the command
docker logs easy-eval
. The results can be accessed in the file /root/easy-smpc/result.csv within the container e.g. by copying the file to the host with the commanddocker cp easy-eval:/root/easy-smpc/performanceEvaluation.csv .
The latency within the docker container is creates with the program tc. On startup this program may fail to start. If this is the case, the docker logs show the error message Specified qdisc not found
. Solving this issue is dependent of your host OS:
- Linux: Please make sure the kernel module sch_netem is loaded, e.g. by installing the package kernel-modules-extra provided by different Linux distributions.
- Windows: Please deactivate the use of WSL 2 engine as described here.
10 gigabyte of RAM for the docker container are recommended.
See github README page of EasySMPC
This software is licensed under the Apache License 2.0. The full text is accessible in the LICENSE file. EasySMPC itself has several dependencies whose license files are listed in the github README page. The dockerfile uses the docker image provided by iRedMail. See the documentation of the image for license details.