diff options
-rw-r--r-- | changes/ticket12690 | 9 | ||||
-rw-r--r-- | src/or/config.c | 2 | ||||
-rw-r--r-- | src/or/dirserv.c | 5 |
3 files changed, 13 insertions, 3 deletions
diff --git a/changes/ticket12690 b/changes/ticket12690 new file mode 100644 index 0000000000..5091883602 --- /dev/null +++ b/changes/ticket12690 @@ -0,0 +1,9 @@ + o Minor features: + - Authorities now assign the Guard flag to the fastest 25% of the + network (it used to be the fastest 50%). Also raise the consensus + weight that guarantees the Guard flag from 250 to 2000. For the + current network, this results in about 1100 guards, down from 2500. + This step paves the way for moving the number of entry guards + down to 1 (proposal 236) while still providing reasonable expected + performance for most users. Implements ticket 12690. + diff --git a/src/or/config.c b/src/or/config.c index 6718f895a8..bff3e40b8c 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -147,7 +147,7 @@ static config_var_t option_vars_[] = { V(AuthDirInvalid, LINELIST, NULL), V(AuthDirInvalidCCs, CSV, ""), V(AuthDirFastGuarantee, MEMUNIT, "100 KB"), - V(AuthDirGuardBWGuarantee, MEMUNIT, "250 KB"), + V(AuthDirGuardBWGuarantee, MEMUNIT, "2 MB"), V(AuthDirReject, LINELIST, NULL), V(AuthDirRejectCCs, CSV, ""), V(AuthDirRejectUnlisted, BOOL, "0"), diff --git a/src/or/dirserv.c b/src/or/dirserv.c index a033f8be6d..f72f19f025 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -1588,7 +1588,7 @@ dirserv_compute_performance_thresholds(routerlist_t *rl, /* (Now bandwidths is sorted.) */ if (fast_bandwidth_kb < ROUTER_REQUIRED_MIN_BANDWIDTH/(2 * 1000)) fast_bandwidth_kb = bandwidths_kb[n_active/4]; - guard_bandwidth_including_exits_kb = bandwidths_kb[(n_active-1)/2]; + guard_bandwidth_including_exits_kb = bandwidths_kb[n_active*3/4]; guard_tk = find_nth_long(tks, n_active, n_active/8); } @@ -1646,7 +1646,8 @@ dirserv_compute_performance_thresholds(routerlist_t *rl, if (n_active_nonexit) { guard_bandwidth_excluding_exits_kb = - median_uint32(bandwidths_excluding_exits_kb, n_active_nonexit); + find_nth_uint32(bandwidths_excluding_exits_kb, + n_active_nonexit, n_active_nonexit*3/4); } log_info(LD_DIRSERV, |