Avocado is secure distributed in-memory key-value store. It leverages SGX to provide trust in an untrusted setting. You can find more details in our USENIX ATC'21 paper.
You can build the non-secure version by doing the following
git submodule update --init --recursive
mkdir build
cd build
cmake ..
cmake --build . --parallel
You can build the secure version with the scone images. However, you might be required to patch the folly library with the provided patch. You should also set the SCONE flag in cmake
cmake .. -DSCONE=ON
You can build the virtual (insecure) image with:
docker build -f Dockerfile -t avocado:virtual --build-arg=platform=virtual .
Or for secure mode (SGX):
docker build -f Dockerfile -t avocado:sgx --build-arg=platform=sgx .
We used a internal development version of scone to run Avocado. We have not tested it with the publicly available version.
The build process will generate a benchmark application build/src/server
which you can use to run the benchmark, see the --help
flag for information.
Try running the docker image with:
docker run --rm -it avocado:virtual /app/server