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.
sev-tool: submodule providing AMD SEV functionalities
ycsb_trace_generator: submodule containing a modified version of GDPRBench (YCSB-based) to produce workload traces
$ 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 native_ctl.py --db [redis/rocksdb]
For the native GDPR controller:
$ python3 GDPRuler.py --config [user_config] --db [redis/rocksdb]
For more command line options, please consult native_ctl.py
and GDPRuler.py
.
$ python3 client.py --workload [workload_trace_file] --clients [num_of_clients]
For more command line options, please consult client.py
.
For instructions on how to set up the client and server SEV VMs, please consult the respective README.
TODO @dimstav23