/avocado

Primary LanguageC++MIT LicenseMIT

Avocado

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.

Getting started

Dependencies

Building

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

Docker

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 .

Notes

We used a internal development version of scone to run Avocado. We have not tested it with the publicly available version.

Running

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.

Docker

Try running the docker image with:

docker run --rm -it avocado:virtual /app/server