123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- Filename: 177-flag-abstention.txt
- Title: Abstaining from votes on individual flags
- Author: Nick Mathewson
- Created: 14 Feb 2011
- Status: Draft
- Overview:
- We should have a way for authorities to vote on flags in
- particular instances, without having to vote on that flag for all
- servers.
- Motivation:
- Suppose that the status of some router becomes controversial, and
- an authority wants to vote for or against the BadExit status of
- that router. Suppose also that the authority is not currently
- voting on the BadExit flag. If the authority wants to say that
- the router is or is not "BadExit", it cannot currently do so
- without voting yea or nay on the BadExit status of all other
- routers.
- Suppose that an authority wants to vote "Valid" or "Invalid" on a
- large number of routers, but does not have an opinion on some of
- them. Currently, it cannot do so: if it votes for the Valid flag
- anywhere, it votes for it everywhere.
- Design:
- We add a new line "extra-flags" in directory votes, to appear
- after "known-flags". It lists zero or more flags that an
- authority has occasional opinions on, but for which the authority
- will usually abstain. No flag may appear in both extra-flags and
- known-flags.
- In the router-status section for each directory vote, we allow an
- optional "s2" line to appear after the "s" line. It contains
- zero or more flag votes. A flag vote is of the form of one of
- "+", "-", or "/" followed by the name of a flag. "+" denotes a
- yea vote, and "-" denotes a nay vote, and "/" notes an
- abstention. Authorities may omit most abstentions, except as
- noted below. No flag may appear in an s2 line unless it appears
- in the known-flags or extra-flags line.We retain the rule that no
- flag may appear in an s line unless it appears in the known-flags
- line.
- When using an appropriate consensus method to vote, we use these
- new rules to determine flags:
- A flag is listed in the consensus if it is in the known-flags
- section of at least one voter, and in the known-flags or
- extra-flags section of at least three voters (or half the
- authorities, whichever set is smaller).
- A single authority's vote for a given flag on a given router is
- interpreted as follows:
- - If the authority votes +Flag or -Flag or /Flag in the s2 line for
- that router, the vote is "yea" or "nay" or "abstain" respectively.
- - Otherwise, if the flag is listed on the "s" line for the
- router, then the vote is "yea".
- - Otherwise, if the flag is listed in the known-flags line,
- then the vote is "nay".
- - Otherwise, the vote is "abstain".
- A router is assigned a flag in the consensus iff the total "yeas"
- outnumber the total "nays".
- As an exception, this proposal does not affect the behavior of
- the "Named" and "Unnamed" flags; these are still treated as
- before. (An authority can already abstain from a single naming
- decision by not voting Named on any router with a given name.)
- Examples:
- Suppose that it becomes important to know which Tor servers are
- operated by burrowing marsupials. Some authority operators
- diligently research this question; others want to vote about
- individual routers on an ad hoc basis when they learn about a
- particular router's being e.g. located underground in New South
- Wales.
- If an authority usually has no opinions on the RunByWombats flag,
- it should list it in the "extra-flags" of its votes. If it
- occasionally wants to vote that a router is (or is not) run by
- wombats, it should list "s2 +RunByWombats" or "s2 -RunByWombats"
- for the routers in question. Otherwise it can omit the flag from
- its s and s2 lines entirely.
- If an authority usually has an opinion on the RunByWombats flag,
- but wants to abstain in some cases, it should list "RunByWombats"
- in the "known-flags" part of its votes, and include
- "RunByWombats" in the s line for every router that it believes is
- run by wombats. When it wants to vote that a router is not run
- by wombats, it should list the RunByWombats flag in neither the s
- nor the s2 line. When it wants to abstain, it should list "s2
- /RunByWombats".
- In both cases, when the new consensus method is used, a router
- will get listed as "RunByWombats" if there are more authorities
- that say it is run by wombats than there are authorities saying
- it is not run by wombats. (As now, "no" votes win ties.)
|