Docker works as expected, README updated
This commit is contained in:
parent
e814f739d0
commit
38b2bc255b
|
@ -6,8 +6,8 @@ ADD tests/ ./tests/
|
||||||
ADD run_tests_fast.sh .
|
ADD run_tests_fast.sh .
|
||||||
ADD Parsing-results ./Parsing-results
|
ADD Parsing-results ./Parsing-results
|
||||||
ADD README.md README.md
|
ADD README.md README.md
|
||||||
RUN apt-get update -y
|
RUN apt update -y
|
||||||
RUN apt-get install -y python3 python3-pip
|
RUN apt install -y python3 python3-pip
|
||||||
RUN pip3 install pandas
|
RUN pip3 install pandas
|
||||||
RUN pip3 install numpy
|
RUN pip3 install numpy
|
||||||
RUN pip3 install matplotlib
|
RUN pip3 install matplotlib
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Lox
|
# Lox
|
||||||
|
|
||||||
Lox is a reputation-based bridge distribution system that provides privacy protection to users and their social graph and is open to all users.
|
Lox is a reputation-based bridge distribution system that provides privacy protection to users and their social graph and is open to all users.
|
||||||
Lox is written in rust and requires `cargo` to test. [Install Rust](https://www.rust-lang.org/tools/install)
|
Lox is written in rust and requires `cargo` to test. [Install Rust](https://www.rust-lang.org/tools/install). We used Rust version 1.56.0.
|
||||||
|
|
||||||
### To use the docker environment to build the package:
|
### To use the docker environment to build the package:
|
||||||
|
|
||||||
|
@ -10,56 +10,57 @@ Lox is written in rust and requires `cargo` to test. [Install Rust](https://www.
|
||||||
./run-lox.sh
|
./run-lox.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
### To run the full tests used for our experimental results run:
|
### To run each of the tests used for our experimental results run:
|
||||||
|
|
||||||
```
|
```
|
||||||
cargo test --release -- --nocapture TESTNAME
|
cargo test --release -- --nocapture TESTNAME > LOGFILE
|
||||||
```
|
```
|
||||||
|
|
||||||
Where `TESTNAME` is one of:
|
Where `TESTNAME > LOGFILE` is one of:
|
||||||
|
|
||||||
```
|
```
|
||||||
stats_test_trust_levels
|
stats_test_trust_levels > trust_levels.log
|
||||||
stats_test_invitations
|
stats_test_invitations > invitations.log
|
||||||
stats_test_percent_blockage_migration_05
|
stats_test_percent_blockage_migration_05 > check_blockage05.log
|
||||||
stats_test_percent_blockage_migration_010
|
stats_test_percent_blockage_migration_010 > check_blockage010.log
|
||||||
stats_test_percent_blockage_migration_15
|
stats_test_percent_blockage_migration_20 > check_blockage20.log
|
||||||
stats_test_percent_blockage_migration_20
|
stats_test_percent_blockage_migration_25 > check_blockage25.log
|
||||||
stats_test_percent_blockage_migration_25
|
stats_test_percent_blockage_migration_35 > check_blockage35.log
|
||||||
stats_test_percent_blockage_migration_30
|
stats_test_percent_blockage_migration_40 > check_blockage40.log
|
||||||
stats_test_percent_blockage_migration_35
|
stats_test_percent_blockage_migration_45 > check_blockage45.log
|
||||||
stats_test_percent_blockage_migration_40
|
stats_test_percent_blockage_migration_50 > check_blockage50.log
|
||||||
stats_test_percent_blockage_migration_45
|
stats_test_percent_blockage_migration_55 > check_blockage55.log
|
||||||
stats_test_percent_blockage_migration_50
|
stats_test_percent_blockage_migration_60 > check_blockage60.log
|
||||||
stats_test_percent_blockage_migration_55
|
stats_test_percent_blockage_migration_65 > check_blockage65.log
|
||||||
stats_test_percent_blockage_migration_60
|
stats_test_percent_blockage_migration_70 > check_blockage70.log
|
||||||
stats_test_percent_blockage_migration_65
|
stats_test_percent_blockage_migration_75 > check_blockage75.log
|
||||||
stats_test_percent_blockage_migration_70
|
stats_test_percent_blockage_migration_80 > check_blockage80.log
|
||||||
stats_test_percent_blockage_migration_75
|
stats_test_percent_blockage_migration_85 > check_blockage85.log
|
||||||
stats_test_percent_blockage_migration_80
|
stats_test_percent_blockage_migration_90 > check_blockage90.log
|
||||||
stats_test_percent_blockage_migration_85
|
stats_test_percent_blockage_migration_95 > check_blockage95.log
|
||||||
stats_test_percent_blockage_migration_90
|
stats_test_percent_blockage_migration_100 > check_blockage100.log
|
||||||
stats_test_percent_blockage_migration_95
|
|
||||||
stats_test_percent_blockage_migration_100
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Each test takes approximately 20-30 hours to run. However, this can be improved
|
Each test outputs results to the specified log file and takes approximately 20-30 hours to run. However, this can be improved
|
||||||
by passing the `fast` feature. Using this feature, our tests are run for 100
|
by passing the `fast` feature. Using this feature, our tests are run for 100
|
||||||
users instead of 10000 users and will produce results comparable to our
|
users instead of 10000 users and will produce results comparable to our
|
||||||
reported results (with larger error margins). To run individual tests with this
|
reported results (with larger error margins). To run individual tests with this
|
||||||
flag run:
|
flag run:
|
||||||
|
|
||||||
```
|
```
|
||||||
cargo test --release --features=fast -- --nocapture TESTNAME
|
cargo test --release --features=fast -- --nocapture TESTNAME > LOGFILE
|
||||||
```
|
```
|
||||||
|
|
||||||
To run all tests in fast mode and output the results to the Parsing-results
|
We have also included the scripts we used to parse the output from each of the Lox tests in the `Parsing-results` directory. For convenience, copy all of the output log files to the `Parsing-results` directory and run `./parse_data.sh`. This is a python script that uses Python 3.8+ and depends on `numpy`, `matplotlib`, and `pandas` which can be installed with `pip3`.
|
||||||
directory, run:
|
|
||||||
|
To run all tests in fast mode, output the results to the `Parsing-results` directory, and generate the table (`performance_stats.csv`, our Table 4) and graphs (`StandardCheck.pdf` and `core-users.pdf`, our Figures 1 and 2) used in our paper, run:
|
||||||
|
|
||||||
```
|
```
|
||||||
./run_tests_fast
|
./run_tests_fast
|
||||||
```
|
```
|
||||||
|
|
||||||
|
This should take approximately 9 hours to complete.
|
||||||
|
|
||||||
Note that: our implementation is coded such that the reachability certificate expires at 00:00 UTC. A workaround has been included in each test to pause if it is too close to this time so the request won't fail. In reality, if the bucket is still reachable, a user could simply request a new reachability token if their request fails for this reason (a new certificate should be available prior to the outdated certificate expiring).
|
Note that: our implementation is coded such that the reachability certificate expires at 00:00 UTC. A workaround has been included in each test to pause if it is too close to this time so the request won't fail. In reality, if the bucket is still reachable, a user could simply request a new reachability token if their request fails for this reason (a new certificate should be available prior to the outdated certificate expiring).
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue