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

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