sev_demo: Folder containing documentation for setting up an ubuntu based AMD SEV VM and perform proof tests.
policy_compiler: Folder containing the policy compiler.
configs: Folder containing sample configs for data owner, data controller, data processor (3rd party) and regulator.
controller: Folder containing the core code of the data controller.
KVs: Folder containing the KVs submodules.
scripts: Folder containing python wrapper scripts for all considered bare-metal execution variants.
sev-tool: Submodule providing AMD SEV functionalities
ycsb_trace_generator: Submodule containing a modified version of GDPRBench (YCSB-based) to produce workload traces
To enter the development environment with all the required dependencies, use:
$ nix develop
$ git submodule update --init --recursive
$ cd controller
$ cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
$ cmake --build build
Useful options:
- Enable/disable the encryption with
-D ENCRYPTION_ENABLED=ON/OFF
(defaults toON
) - Enable/disable AddressSanitizer with
-D ASAN_ENABLED=ON/OFF
(defaults toOFF
) - Enable/disable ThreadSanitizer with
-D TSAN_ENABLED=ON/OFF
(defaults toOFF
)
$ cd KVs/redis
$ make BUILD_TLS=yes MALLOC=libc
# Optional command to test the success of the installation
$ make test
$ cd ycsb_trace_generator
$ bash workload_generator.sh
This will create the trace files for the workloads in the workload_traces
directory.
- For
redis
:
$ cd KVs/redis/src
$ ./redis-server --protected-mode no
- For
rocksdb
:
$ cd controller/build
$ ./rocksdb_server [port] [db_file_location]
For the native passthrough controller:
$ python3 scripts/native_ctl.py --db [redis/rocksdb]
For the native GDPR controller:
$ python3 scripts/GDPRuler.py --db [redis/rocksdb]
For more command line options, please consult scripts/native_ctl.py
and scripts/GDPRuler.py
.
$ python3 scripts/client.py --workload [workload_trace_name] --clients [num_of_clients] --config [user_config/user_config_directory]
For more command line options, please consult scripts/client.py
.
For instructions on how to set up the client and server SEV VMs, please consult the respective README.
TODO @dimstav23