Implementation of the Lox bridge authority system
Ian Goldberg acffd9a0d5 Add MIT licence | 2 anni fa | |
---|---|---|
Parsing-results | 2 anni fa | |
src | 2 anni fa | |
tests | 3 anni fa | |
Cargo.toml | 2 anni fa | |
Dockerfile | 2 anni fa | |
LICENSE | 2 anni fa | |
README.md | 2 anni fa | |
build-lox.sh | 2 anni fa | |
run-lox.sh | 2 anni fa | |
run_tests_fast.sh | 2 anni fa |
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
./build-lox.sh
./run-lox.sh
cargo test --release -- --nocapture TESTNAME
Where TESTNAME
is one of:
stats_test_trust_levels
stats_test_invitations
stats_test_percent_blockage_migration_05
stats_test_percent_blockage_migration_010
stats_test_percent_blockage_migration_15
stats_test_percent_blockage_migration_20
stats_test_percent_blockage_migration_25
stats_test_percent_blockage_migration_30
stats_test_percent_blockage_migration_35
stats_test_percent_blockage_migration_40
stats_test_percent_blockage_migration_45
stats_test_percent_blockage_migration_50
stats_test_percent_blockage_migration_55
stats_test_percent_blockage_migration_60
stats_test_percent_blockage_migration_65
stats_test_percent_blockage_migration_70
stats_test_percent_blockage_migration_75
stats_test_percent_blockage_migration_80
stats_test_percent_blockage_migration_85
stats_test_percent_blockage_migration_90
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
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
reported results (with larger error margins). To run individual tests with this
flag run:
cargo test --release --features=fast -- --nocapture TESTNAME
To run all tests in fast mode and output the results to the Parsing-results directory, run:
./run_tests_fast
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).