Implementation of the Lox bridge authority system

onyinyang 2670bcb750 Added times to readme 2 vuotta sitten
src 02c19b6865 Fixed testing instructions and another substring issue 2 vuotta sitten
tests 0e5876a939 API for adding bridges and marking them as unreachable 3 vuotta sitten
Cargo.toml 634f8c9b35 Added timing 2 vuotta sitten
README.md 2670bcb750 Added times to readme 2 vuotta sitten

README.md

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 written in rust and requires cargo to test. Install Rust

To run the tests used for our experimental results run:

cargo test --release -- --nocapture TESTNAME

Where TESTNAME is one of:

| TESTNAME | Run Time (m)| |------|-------| | stats_test_trust_levels | 1716.15499 | | stats_test_invitations | 1379.40724 | | stats_test_percent_blockage_migration_05 | 1487.23794 | | stats_test_percent_blockage_migration_010 | 1489.58697 | | stats_test_percent_blockage_migration_15 | 1496.0887 | | stats_test_percent_blockage_migration_20 | 1506.3363 | | stats_test_percent_blockage_migration_25 | 1505.42065 | | stats_test_percent_blockage_migration_30 | 1517.29230 | | stats_test_percent_blockage_migration_35 | 1520.33539 | | stats_test_percent_blockage_migration_40 | 1530.58220 | | stats_test_percent_blockage_migration_45 | 1542.31211 | | stats_test_percent_blockage_migration_50 | 1556.33415 | | stats_test_percent_blockage_migration_55 | 1562.36914 | | stats_test_percent_blockage_migration_60 | 1575.24665 | | stats_test_percent_blockage_migration_65 | 1589.46323 | | stats_test_percent_blockage_migration_70 | 1604.29720 | | stats_test_percent_blockage_migration_75 | 1621.36433 | | stats_test_percent_blockage_migration_80 | 1634.56597 | | stats_test_percent_blockage_migration_85 | 1652.31102 | | stats_test_percent_blockage_migration_90 | 1670.11576 | | stats_test_percent_blockage_migration_95 | 1691.54106 | | stats_test_percent_blockage_migration_100 | 1709.28131 |

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).