[tor-bugs] #4862 [Tor Hidden Services]: Tor Hidden Service IP replacing numerology

Tor Bug Tracker & Wiki torproject-admin at torproject.org
Sat Jan 7 20:49:10 UTC 2012


#4862: Tor Hidden Service IP replacing numerology
---------------------------------+------------------------------------------
 Reporter:  hellais              |          Owner:     
     Type:  enhancement          |         Status:  new
 Priority:  normal               |      Milestone:     
Component:  Tor Hidden Services  |        Version:     
 Keywords:                       |         Parent:     
   Points:                       |   Actualpoints:     
---------------------------------+------------------------------------------
 In #3825 rransom proposed to tune the number of IP to rebuilt once one
 expires based on the history of the Tor HS usage. I believe these numbers
 are not optimal and there should be a better way to do this.

 These are the first numbers that I will try to estimate:
 I = number of intro points
 C = Connections made to an IP in it's lifetime
 T = Total number of connections made to the HS in 24 hours

 What we are interested in estimating is the value of NUM_INTRO_POINTS_MAX
 and this is based on the estimation of C. To determine this we will
 consider this equation:

 {{{
 I = T/C
 }}}

 I believe it is reasonable to suppose that a very busy HS will at most
 have 1M connections in 24 hours. This means that:

 {{{
 I = 1'000'000/C
 }}}

 Currently C is set to 16384. I am not sure why this number was chosen, but
 if this number is good we would need to set the value of I to 61.

 Lets take for granted that 61 is a good value for NUM_INTRO_POINTS_MAX,
 this means that the number of active IP at a given time should be in the
 range of 3-61.

 For this reason I believe it would be good to have the number of IP to
 recreate to be in the range of 1-20 dependent on the history of a Tor HS.

 The basic thing we can do is use a linear function to determine this
 number x. We want a linear function that has these properties:

 {{{
 f(0) = 1

 f(4/3) = NUM_INTRO_POINTS_MAX
              (supposing that for lifetime of IP tends to end the fraction
 (time_since_publishing/IP_MIN_LT)*(accepted_ip_connection)/(IP_CON_LT) ->
 4/3)
 }}}

 This leads us to this:
 {{{
 x = (1 -
 NUM_INTRO_POINTS_MAX)*((time_since_publishing/IP_MIN_LT)*(accepted_ip_connection)/(IP_CON_LT))
 + 1
 }}}

 in the case of NUM_INTRO_POINTS_MAX = 20 this means:

 {{{
 x = 25.3333333 *
 (time_since_publishing/IP_MIN_LT)*(accepted_ip_connection)/(IP_CON_LT) + 1
 }}}

 A better way to do this is have an exponential function that converges
 asymptotically to 20.

 Does this seem sane?

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


More information about the tor-bugs mailing list