浏览代码

Deanonymize README and fix internal links

Ian Goldberg 3 月之前
父节点
当前提交
e93d953e08
共有 1 个文件被更改,包括 24 次插入12 次删除
  1. 24 12
      README.md

+ 24 - 12
README.md

@@ -1,10 +1,22 @@
 # TEEMS: A Trusted Execution Environment based Metadata-protected Messaging System
 
-This repository contains the source code for TEEMS, as well as the dockerization and experimentation scripts we used to generate the data files that are plotted in Figure 7 (varying the number of clients) and Figure 8 (varying the number of server cores) in the paper.
+Ian Goldberg, iang@uwaterloo.ca  
+Sajin Sasy, sasy@cispa.de  
+Aaron Johnson, aaron.m.johnson213.civ@us.navy.mil
+
+This repository contains the source code for TEEMS, as well as the
+dockerization and experimentation scripts we used to generate the data
+files that are plotted in Figure 7 (varying the number of clients) and
+Figure 8 (varying the number of server cores) in our paper:
+
+Sajin Sasy, Aaron Johnson, and Ian Goldberg.
+TEEMS: A Trusted Execution Environment based Metadata-protected
+Messaging System. Proceedings on Privacy Enhancing Technologies 2025(4),
+2025.
 
 This repository only contains the TEEMS code; the data for the comparator scheme Sparta-SB (also plotted in those figures) was obtained by running the original Sparta code: [https://github.com/ucsc-anonymity/sparta-experiments/](https://github.com/ucsc-anonymity/sparta-experiments/)
 
-## Hardware requirements  {#hardware-reqs}
+## Hardware requirements
 
 TEEMS is based on Intel's SGX trusted execution environment, version 2 (SGX2), so you will need a server with one or more Intel Xeon CPUs that support SGX2.  In addition to CPU support, you may have to enable SGX in the machine's BIOS, if it is not already enabled.  The things to look for and turn on in the BIOS are:
 
@@ -15,7 +27,7 @@ TEEMS is based on Intel's SGX trusted execution environment, version 2 (SGX2), s
 
 If your BIOS gives you a choice of how much EPC to allocate, choose a value **at least 5 GiB** if you want to run the largest experiments we report in the figures in the paper.
 
-### Hardware requirements to run all of the experiments {#hardware-reqs-full}
+### Hardware requirements to run all of the experiments
 
 In order to run all of the experiments to replicate Figures 7 and 8 in the paper, your server will need at least:
 
@@ -28,9 +40,9 @@ We used a machine with two Intel Xeon 8380 CPUs (40 cores each), running at 2.7
 To see how much EPC you have available, you can either:
 
   - Install the `cpuid` program (`apt install cpuid`), and run `./epc_probe.py`
-  - Build the TEEMS docker (see [below](#build-docker)), and then run `docker/epc-probe`
+  - Build the TEEMS docker (see [below](#building-the-teems-docker)), and then run `docker/epc-probe`
 
-### Minimum hardware requirements to run TEEMS at all {#hardware-reqs-min}
+### Minimum hardware requirements to run TEEMS at all
 
 If your server does not meet the above specs, you may still be able to run TEEMS, to get a feel for it, but the results will of course not be directly comparable to those in the figures.
 
@@ -38,7 +50,7 @@ If you have fewer than 80 cores, you can set the environment variable `OVERLOAD_
 
 If you have less than 20 GiB of available RAM and/or less than 5 GiB of available EPC, you can set the environment variable `SHRINK_TO_MEM=1` to tell the experimentation scripts to run smaller experiments than those reported in the paper, but which will fit in your machine's configuration.  The sizes of the experiments to run will be autodetected based on your available RAM and EPC.  Even with that setting, however, you will _minimally_ require more than 0.9 GiB of EPC and 4.2 GiB of RAM.
 
-## OS requirements {#os-reqs}
+## OS requirements
 
 The recommended OS is Ubuntu 22.04, but any Linux with a kernel at least 5.11 should work.  If your BIOS is configured properly, and you have the required SGX2 support, the device files `/dev/sgx_enclave` and `/dev/sgx_provision` should both exist.
 
@@ -58,7 +70,7 @@ In addition, **if** you attempt to run TEEMS on your bare machine instead of in
 
 Again, setting `net.nf_conntrack_max` is not necessary if you run TEEMS in a docker, as outlined in the instructions below.
 
-## Building the TEEMS docker {#build-docker}
+## Building the TEEMS docker
 
 To build the TEEMS docker, just run:
 
@@ -66,13 +78,13 @@ To build the TEEMS docker, just run:
 
 This should take about half an hour, depending on your hardware and network speeds.
 
-## "Kick the tires" test {#short-test}
+## "Kick the tires" test
 
 To ensure everything is set up properly (hardware and software), run the short "kick the tires" test:
 
 `docker/short-test`
 
-This should take 1 to 2 minutes.  Set the `OVERLOAD_CORES` environment variable, as described [above](#hardware-reqs-min), if your server has fewer than 5 physical cores; for example:
+This should take 1 to 2 minutes.  Set the `OVERLOAD_CORES` environment variable, as described [above](#minimum-hardware-requirements-to-run-teems-at-all), if your server has fewer than 5 physical cores; for example:
 
 `OVERLOAD_CORES=1 docker/short-test`
 
@@ -96,13 +108,13 @@ The output fields are:
   - `wn_{mean,stddev,max}`: the mean, stddev, and max of the time to precompute the Waksman networks needed for the next epoch (in seconds)
   - `bytes_{mean,stddev,max}`: the mean, stddev, and max of the total number of bytes transmitted from a given server process to all other server processes
 
-## Running the full experiments {#repro}
+## Running the full experiments
 
 To run all the experiments needed to generate the data plotted in Figures 7 and 8, just run:
 
 `docker/repro`
 
-As [above](#hardware-reqs-min), if you need to set the environment variables `OVERLOAD_CORES` (if you have fewer than 80 physical cores) and/or `SHRINK_TO_MEM` (if you have less then 20 GiB of available RAM and/or less than 5 GiB of EPC), do it here.  For example:
+As [above](#minimum-hardware-requirements-to-run-teems-at-all), if you need to set the environment variables `OVERLOAD_CORES` (if you have fewer than 80 physical cores) and/or `SHRINK_TO_MEM` (if you have less then 20 GiB of available RAM and/or less than 5 GiB of EPC), do it here.  For example:
 
 `OVERLOAD_CORES=1 SHRINK_TO_MEM=1 docker/repro`
 
@@ -174,4 +186,4 @@ In addition, the files `id-channel.csv` and `token-channel.csv` will be left in
 
 **Note**: if you just want to regenerate the above output (with the network cost added to the epoch times, and sorted into figures and data lines) from existing `id-channel.csv` and `token-channel.csv` files, **without** re-running all of the experiments, you can pass the `-n` flag to `docker/repro`:
 
-`docker/repro -n`
+`docker/repro -n`