[tor-bugs] #12690 [Tor]: Raise the bandwidth threshold for being a guard

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Jul 24 00:44:28 UTC 2014


#12690: Raise the bandwidth threshold for being a guard
------------------------+--------------------------------
     Reporter:  asn     |      Owner:
         Type:  defect  |     Status:  new
     Priority:  normal  |  Milestone:  Tor: 0.2.5.x-final
    Component:  Tor     |    Version:
   Resolution:          |   Keywords:  tor-guard tor-auth
Actual Points:          |  Parent ID:  #11480
       Points:          |
------------------------+--------------------------------

Comment (by asn):

 Some notes:

 Here is the relevant torspec entry:
 {{{
    "Guard" -- A router is a possible 'Guard' if its Weighted Fractionall
    Uptime is at least the median for "familiar" active routers, and if
    its bandwidth is at least median or at least 250KB/s.

         To calculate weighted fractional uptime, compute the fraction
         of time that the router is up in any given day, weighting so that
         downtime and uptime in the past counts less.

         A node is 'familiar' if 1/8 of all active nodes have appeared more
         recently than it, OR it has been around for a few weeks.
 }}}

 And here is the corresponding piece of code from `dirserv.c`:
 {{{

   if (node->is_fast &&
       ((options->AuthDirGuardBWGuarantee &&
         routerbw_kb >= options->AuthDirGuardBWGuarantee/1000) ||
        routerbw_kb >= MIN(guard_bandwidth_including_exits_kb,
                        guard_bandwidth_excluding_exits_kb)) &&
       is_router_version_good_for_possible_guard(ri->platform)) {
     long tk = rep_hist_get_weighted_time_known(
                                       node->identity, now);
     double wfu = rep_hist_get_weighted_fractional_uptime(
                                       node->identity, now);
     rs->is_possible_guard = (wfu >= guard_wfu && tk >= guard_tk) ? 1 : 0;
   } else {
     rs->is_possible_guard = 0;
   }
 }}}

 We note that the requirement for `Fast` in the implementation does not
 match the spec.

 I'm wondering what should happen about the `if its bandwidth is at least
 the median or at least 250KB/s" (or 2000KB/s as it will soon be). Do we
 still like the `at least the median`? We should probably see what the
 median is on the real network, to see how far it is from 2000KB/s.

 Also, Roger, here is the part about the testing network you worried about:
 {{{
   if (options->TestingTorNetwork &&
       routerset_contains_routerstatus(options->TestingDirAuthVoteGuard,
                                       rs, 0)) {
     rs->is_possible_guard = 1;
 }}}

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/12690#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list