[tor-bugs] #16943 [Tor]: Implement prop250 (Random Number Generation During Tor Voting)

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Feb 15 11:45:44 UTC 2016


#16943: Implement prop250 (Random Number Generation During Tor Voting)
-------------------------+------------------------------------
 Reporter:  asn          |          Owner:
     Type:  enhancement  |         Status:  needs_review
 Priority:  High         |      Milestone:  Tor: 0.2.8.x-final
Component:  Tor          |        Version:
 Severity:  Normal       |     Resolution:
 Keywords:  tor-hs       |  Actual Points:
Parent ID:  #8244        |         Points:  large
  Sponsor:  SponsorR     |
-------------------------+------------------------------------

Comment (by asn):

 Replying to [comment:26 teor]:
 > Replying to [comment:24 asn]:
 > > Replying to [comment:22 teor]:
 > > > Replying to [comment:21 dgoulet]:
 > > > > After proposal review that happened few days ago on #tor-dev, we
 made some adjustments to the specification and code.
 > > > >
 > > > > Please find the latest code here: `prop250_final_v3`
 > > > >
 > > > > Proposal 250 has been updated with the latest in torspec.git
 > > >
 > > > Code review:
 > > >
 > > > <snip>
 > > >
 > > > get_next_valid_after_time() duplicates code in
 dirvote_recalculate_timing().
 > > > Why not use `voting_schedule.interval_starts`?
 > > > (You'd need to make sure dirvote_recalculate_timing() had been
 called before either of these functions used
 `voting_schedule.interval_starts`.)
 > > >
 > > <snip>
 >
 > Can we refactor the relevant calculations out of
 dirvote_recalculate_timing(), and call them from
 dirvote_recalculate_timing() and get_next_valid_after_time() and
 get_start_time_of_current_round()?
 >
 > My concern is that we'll break test networks that use
 TestingV3AuthVotingStartOffset by ignoring it during shared random
 calculations. And that these 3 functions should produce the same results.
 >
 > Do get_next_valid_after_time() and get_start_time_of_current_round()
 belong in the core dirserv file instead? They don't seem to be specific to
 shared random.

 OK, I implemented the above logic in my branch `prop250_final_v4`:
 https://gitweb.torproject.org/user/asn/tor.git/log/?h=prop250_final_v4

 The refactoring was a bit more messy than I expected, but the branch seems
 to work in chutney. The tests still pass without any changes, so that's
 good.

 I also moved `get_next_valid_after_time()` in `dirvote.c` as you
 suggested.

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


More information about the tor-bugs mailing list