|
@@ -14,7 +14,7 @@ In this repository, you will find:
|
|
|
* **README.md**: this file
|
|
|
* **client.py**, **dirauth.py**, **network.py**, **relay.py**, **simulator.py**: the source code for the simulator
|
|
|
* **build-docker**, **run-docker**, **attach-docker**: scripts to create and run the docker containing the simulator (see below)
|
|
|
- * **Dockerfile.in**, **run_small.in**: templates used by build-docker and run-docker
|
|
|
+ * **Dockerfile.in**, **run\_small.in**, **wo\_docker\_start.in**: templates used by build-docker and run-docker
|
|
|
* **analysis**: a directory containing scripts to analyze the log files produced by the simulator and generate graphs in PDF form. See [Analyzing the results](#analyzing-the-results) below for more information.
|
|
|
* **logs**: a directory containing the logs output by the simulator when _we_ ran it. These are the very logfiles that were processed by the [parselogs.py](analysis/parselogs.py) and [plotdats.py](analysis/plotdats.py) scripts to produce the graphs in the paper. (When you run the simulator yourself, your log files will end up in a directory called **logdir** that will be created by **run-docker**.)
|
|
|
|
|
@@ -40,13 +40,11 @@ The simulator is written in Python, so you don't strictly have to build it per s
|
|
|
|
|
|
The simulator running in the docker container will write its log files into a directory **logdir** on the host machine via a [bind mount](https://docs.docker.com/storage/bind-mounts/). In order that you (the person running the simulator) can read and analyze those log files outside of the docker, the log files should be owned by your user id (on the host machine).
|
|
|
|
|
|
-To accomplish this, when the docker image is built, the **build-docker** script will check what your user and group ids are on the host machine, and create the "walkingo" user in the docker with those same user and group ids. That way, when the walkingo user in the docker runs the simulator, it will write files to the **logdir** directory owned by you, and you will be able to easily read them.
|
|
|
-
|
|
|
-The downside is that each person running the simulator needs to build their own docker image, since the image is customized to their user and group ids. Luckily this is easy.
|
|
|
+To accomplish this, when the docker image is run, the **wo\_docker\_start** docker init script will check the user and group ids that own the **logdir** directory, and create the "walkingo" user in the docker with those same user and group ids. That way, when the walkingo user in the docker runs the simulator, it will write files to the **logdir** directory owned by you, and you will be able to easily read them.
|
|
|
|
|
|
### Building the docker image
|
|
|
|
|
|
-Run `./build-docker` to create a docker image called `walkingonions`. As above, this image is meant to be run only by the person that built it, and run from this same directory.
|
|
|
+Run `./build-docker` to create a docker image called `walkingonions`. This image is meant to be run from this same directory.
|
|
|
|
|
|
## Running the simulator
|
|
|
|