aboutsummaryrefslogtreecommitdiff
path: root/src/feature/dirauth/dirvote.h
AgeCommit message (Collapse)Author
2021-11-05Merge branch 'maint-0.4.5' into maint-0.4.6David Goulet
2021-11-05protover: Fix merge forward from 035David Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-03-12Update copyrights to 2021, using "make update-copyright"Nick Mathewson
2021-01-21Merge branch 'maint-0.4.5'David Goulet
2021-01-21log more during consensus voting processRoger Dingledine
Give more visibility to directory authority operators during the consensus voting process. Closes ticket 40245.
2021-01-13New consensus method to find bwweightscale & maxunmeasuredbw correctly.Nick Mathewson
Our original code for parsing these parameters out of our list of parameters pre-dated us having the dirvote_get_intermediate_param_value() function... and it was buggy. Specifically, it would reject any " ... K=V ..." value where there were additional unconverted characters after the V, and use the default value instead, We haven't run into this yet because we've never voted for bwweightscale to be anything besides the default 10000, or maxunmeasuredbw to be anything besides the default 20. This requires a new consensus method because it is a change in how consensuses are computed. Fixes bug 19011; bugfix on 0.2.2.10-alpha.
2020-10-27Merge branch 'tor-gitlab/mr/176'David Goulet
2020-10-23Update required/recommended protocol lists more systematicallyNick Mathewson
First I began with a set of candidates: The client's _required_ list starts with all the protocols supported by every release in 0.2.9-stable through current master. The client's _required_ list starts with all the protocols supported by every release in 0.3.5-stable through current master. Everybody's _recommended_ list starts with all the protocols supported by every release in 0.3.5-stable through current master. Then I removed the protocol versions that we do not actually want to require or recommend: DirCache=1 (deprecated) HSDir=1, HSIntro=1-3, HSRend=1 (deprecated) (All HS* protocol requirements for clients) Link=1-3 (deprecated) LinkAuth=1 (obsolete) Relay=1 (obsolete)
2020-10-18Update required/recommended protocol versions.Nick Mathewson
Cons=1 is the old format of consensuses, without ed25519 keys. It is no longer required or recommended. Cons=2 is the new format of consensuses, with ed25519 keys. It is now required. (Similarly for Desc=1,2 and Microdesc=1,2) No supported client or relay versions should be affected by this change, since these versions are supported by clients and relays running 0.2.9 and later. It will only take effect once enough authorities vote for it. Closes ticket 40162.
2020-10-18Split required/recommended protocol lists into multiple linesNick Mathewson
This should make diffs easier to read.
2020-09-23Implement IPv6 sybil protection.vnepveu
[This is a squashed patch for ticket 7193, based on taking a "git diff" for the original branch, then applying it with "git apply -3". I earlier attempted to squash the branch with "git rebase", but there were too many conflicts. --nickm]
2020-07-23Merge branch 'remove-padding-fix-7869-v2'Nick Mathewson
2020-07-23Remove padding from ntor-onion-key #7869Daniel Pinto
2020-06-17Update the list of recommended protocol versions to match >=0.3.5.Nick Mathewson
Since Tor 0.2.9 has been unsupported since January, 0.3.5 is the oldest supported version, and its features constitute the oldest recommended feature-set. This patch updates these recommendations: DirCache=2 Support for consensus diffs. New in 0.3.1.1-alpha. HSDir=2 Support for v3 onion service descriptors. New in 0.3.0.4-alpha. HSIntro=4 Support for Ed25519 intropoint authentication keys. New in 0.3.0-4-alpha. HSRend=2 Support for rendezvous cells longer than 20 bytes. New in 0.2.9.4-alpha. Link=5 Link padding and link padding negotiation. New in 0.3.3.2-alpha. LinkAuth=3 Ed25519 link authentication. New in 0.3.0.1-alpha.
2020-06-17Spelling fix: "RECCOMEND" => "RECOMMEND".Nick Mathewson
2020-03-20Merge branch 'maint-0.4.3'Nick Mathewson
2020-03-20relay/dirauth: Set some output arguments in stubsteor
And document how some functions set their output arguments. Fixes bug 33674; bugfix on 0.4.3.1-alpha.
2020-02-18dirauth: Update disabled dirvote_add_vote()teor
Update the function that handles directory authority votes when the dirauth module is disabled. Part of 4631.
2020-02-18Don't accept posted votes after :52:30Roger Dingledine
If we receive via 'post' a vote from a dir auth after the fetch_missing_votes cutoff, that means we didn't get it by the time we begin the "fetching missing votes from everybody else" phase, which means it is very likely to cause a consensus split if we count it. Instead, we reject it. But we still allow votes that we fetch ourselves after that cutoff. This is a demo branch for making progress on #4631. I've been running it on moria1 and it catches and handles real buggy behavior from directory authorities, e.g. Jan 28 15:59:50.804 [warn] Rejecting vote from 199.58.81.140 received at 2020-01-28 20:59:50; our cutoff for received votes is 2020-01-28 20:52:30 Jan 28 15:59:50.805 [warn] Rejected vote from 199.58.81.140 ("Vote received too late, would be dangerous to count it"). Jan 29 01:52:52.667 [warn] Rejecting vote from 204.13.164.118 received at 2020-01-29 06:52:52; our cutoff for received votes is 2020-01-29 06:52:30 Jan 29 01:52:52.669 [warn] Rejected vote from 204.13.164.118 ("Vote received too late, would be dangerous to count it"). Jan 29 04:53:26.323 [warn] Rejecting vote from 204.13.164.118 received at 2020-01-29 09:53:26; our cutoff for received votes is 2020-01-29 09:52:30 Jan 29 04:53:26.326 [warn] Rejected vote from 204.13.164.118 ("Vote received too late, would be dangerous to count it").
2020-02-14dirvote: Update the comments for required protocolsteor
Add doxygen comments to the new recommended and required subprotocol version strings. Add a warning to the required protocol documentation, because requiring the wrong protocols can break the tor network. Also reference proposal 303: When and how to remove support for protocol versions. Part of 33285.
2020-02-12dirvote: Reorder required protocol liststeor
Use a consistent order, because the current order is going to trip someone up eventually. Preparation for 33285.
2020-02-12dirvote: Move required protos into private headerteor
Move the recommended and required protocol version lists into the private section of the dirvote header, and turn them into macros. Preparation for 33285.
2020-01-16Remove routerstatus_format_entry() consensus_method argument as unusedNick Mathewson
2020-01-16Remove support for now-obsolete consensus methods before 28.Nick Mathewson
Closes ticket 32695.
2020-01-08It's 2020. Update the copyright dates with "make update-copyright"Nick Mathewson
2019-09-30Re-run "make autostyle" with improved annotate_ifdef_directivesNick Mathewson
2019-06-05Run "make autostyle."Nick Mathewson
2019-01-16Bump copyright date to 2019Nick Mathewson
2018-12-05Merge remote-tracking branch 'public/prop298'Nick Mathewson
2018-12-03Keep list of dirauth flags in sync between dirvote.c and fuzz_vrs.cNick Mathewson
Suggested by Teor on PR
2018-11-24Add a consensus method in which md families get canonicalized.Nick Mathewson
Implements prop298. Closes ticket 28266.
2018-09-20Split most of dirserv.c into several new modulesNick Mathewson
In dirauth: * bwauth.c reads and uses bandwidth files * guardfraction.c reads and uses the guardfraction file * reachability.c tests relay reachability * recommend_pkg.c handles the recommended-packages lines. * recv_descs.c handles fingerprint files and processing incoming routerinfos that relays upload to us * voteflag.c computes flag thresholds and sets those thresholds on routerstatuses when computing votes In control: * fmt_serverstatus.c generates the ancient "v1 server status" format that controllers expect. In nodelist: * routerstatus_fmt.c formats routerstatus entries for a consensus, a vote, or for the controller.
2018-07-16Ensure that bw_file_headers is not bigger than maxjuga0
2018-07-05Move literally everything out of src/orNick Mathewson
This commit won't build yet -- it just puts everything in a slightly more logical place. The reasoning here is that "src/core" will hold the stuff that every (or nearly every) tor instance will need in order to do onion routing. Other features (including some necessary ones) will live in "src/feature". The "src/app" directory will hold the stuff needed to have Tor be an application you can actually run. This commit DOES NOT refactor the former contents of src/or into a logical set of acyclic libraries, or change any code at all. That will have to come in the future. We will continue to move things around and split them in the future, but I hope this lays a reasonable groundwork for doing so.