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

Ian Goldberg ef84c8d48c Adjust run_all_experiments autodetection of experiment sizes to new EPC requirements 8 kuukautta sitten
App d1cc60bfdc Nomenclature change: public/private channels become ID/token channels 8 kuukautta sitten
Client 99753c6c21 Turn off SHOW_RECEIVED_MESSAGES for the clients 8 kuukautta sitten
Enclave b5fc3ab27a Turn off TRACE_ROUTING 8 kuukautta sitten
Untrusted 1ae94b11ed Rename ecall_authenticate to ecall_ingestion_authenticate 11 kuukautta sitten
docker fe03daab04 Have the repro script add the bandwidth costs to the reported results 8 kuukautta sitten
Makefile 8a5a63878e "make clean" should clean the Client dir as well 11 kuukautta sitten
README 5c44ca5fcd First cut at README 1 vuosi sitten
core-time-tradeoff d1cc60bfdc Nomenclature change: public/private channels become ID/token channels 8 kuukautta sitten
core_allocator.py 9213665c0f Automatically configure the cores to use for each experiment 11 kuukautta sitten
epc_probe.py 1f5c8b9bdd Remove an unused import 11 kuukautta sitten
gen_enclave_config.py ce657d2594 Correct the enclave maximum heap computation 8 kuukautta sitten
gen_manifest.py d1cc60bfdc Nomenclature change: public/private channels become ID/token channels 8 kuukautta sitten
logs_to_csv.py 1c6525f520 Clean up the log parser and have it record Waksman network creation times as well 1 vuosi sitten
mkzip d1cc60bfdc Nomenclature change: public/private channels become ID/token channels 8 kuukautta sitten
plot_traces 5313a77081 Automatically choose the horizontal scale for the trace plotter 1 vuosi sitten
run_all_experiments.py ef84c8d48c Adjust run_all_experiments autodetection of experiment sizes to new EPC requirements 8 kuukautta sitten
run_experiments.py d1cc60bfdc Nomenclature change: public/private channels become ID/token channels 8 kuukautta sitten
short_exp.py d1cc60bfdc Nomenclature change: public/private channels become ID/token channels 8 kuukautta sitten

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