The implementation of TEEMS, a Trusted Execution Environment based Metadata-protected Messaging System

Ian Goldberg 8a5a63878e "make clean" should clean the Client dir as well пре 11 месеци
App 1ae94b11ed Rename ecall_authenticate to ecall_ingestion_authenticate пре 11 месеци
Client 9213665c0f Automatically configure the cores to use for each experiment пре 11 месеци
Enclave a0037dae9f The round1a buffer size needs to be a multiple of the number of routers пре 11 месеци
Untrusted 1ae94b11ed Rename ecall_authenticate to ecall_ingestion_authenticate пре 11 месеци
docker 60e3633b3d Add cpuid to the Dockerfile пре 11 месеци
Makefile 8a5a63878e "make clean" should clean the Client dir as well пре 11 месеци
README 5c44ca5fcd First cut at README пре 1 година
core-time-tradeoff 4139cd49db Add integer time data points to the core-time tradeoff output пре 1 година
core_allocator.py 9213665c0f Automatically configure the cores to use for each experiment пре 11 месеци
epc_probe.py 1f5c8b9bdd Remove an unused import пре 11 месеци
gen_enclave_config.py bf3f1304ba More accurately compute the required enclave heap memory пре 11 месеци
gen_manifest.py 9213665c0f Automatically configure the cores to use for each experiment пре 11 месеци
logs_to_csv.py 1c6525f520 Clean up the log parser and have it record Waksman network creation times as well пре 1 година
mkzip 7f2dcab64b mkzip script to create the artifact zip file пре 1 година
plot_traces 5313a77081 Automatically choose the horizontal scale for the trace plotter пре 1 година
run_all_experiments.py 7afcd457ec Check the EPC and free RAM sizes before running the experiments пре 11 месеци
run_experiments.py 9213665c0f Automatically configure the cores to use for each experiment пре 11 месеци

README

Source code for "TEEMS: Trusted Execution Environment based
Metadata-protected Messaging System"

This code produced the data reported in Section 6 of our paper.

You will need:

- A machine with one or more SGX2-enabled processors
- The SGX SDK (https://github.com/intel/linux-sgx) installed (we used
version 2.22)
- The "numactl" program installed (even if you don't have a NUMA
machine)

The code is designed to run on a single machine with two 40-core
processors (Intel 8380). We allocate 36 cores on each processor for the
servers, and the last 4 cores on each processor for the clients.

If you have a different configuration, change the cores assigned to
clients by setting "prefix" in Client/clientlaunch and the -t option to
clientlaunch in run_experiments.py. Change the cores assigned to
servers in the gen_manifest.py program. Change the maximum number of
servers for a given number of cores in the M_MAX dictionary in
run_experiments.py.

Decide what experiments you want to run:

- Set the numbers of users (N), the numbers of servers (M), and the
numbers of cores per server (T) in run_experiments.py.
- Set whether you want to test the private or public channel by setting
"private_routing:" in gen_manifest.py to True or False respectively.

Build and run the code, and collect the output:

- make
- ./run_experiments.py
- ./logs_to_csv.py Experiments_test results.csv