mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Add proposal 177: Abstaining from votes on individual flags
This commit is contained in:
parent
6ce217731c
commit
c1c8f51d77
@ -97,6 +97,7 @@ Proposals by number:
|
|||||||
174 Optimistic Data for Tor: Server Side [OPEN]
|
174 Optimistic Data for Tor: Server Side [OPEN]
|
||||||
175 Automatically promoting Tor clients to nodes [DRAFT]
|
175 Automatically promoting Tor clients to nodes [DRAFT]
|
||||||
176 Proposed version-3 link handshake for Tor [DRAFT]
|
176 Proposed version-3 link handshake for Tor [DRAFT]
|
||||||
|
177 Abstaining from votes on individual flags [DRAFT]
|
||||||
|
|
||||||
|
|
||||||
Proposals by status:
|
Proposals by status:
|
||||||
@ -111,6 +112,7 @@ Proposals by status:
|
|||||||
170 Configuration options regarding circuit building
|
170 Configuration options regarding circuit building
|
||||||
175 Automatically promoting Tor clients to nodes
|
175 Automatically promoting Tor clients to nodes
|
||||||
176 Proposed version-3 link handshake for Tor [for 0.2.3]
|
176 Proposed version-3 link handshake for Tor [for 0.2.3]
|
||||||
|
177 Abstaining from votes on individual flags
|
||||||
NEEDS-REVISION:
|
NEEDS-REVISION:
|
||||||
131 Help users to verify they are using Tor
|
131 Help users to verify they are using Tor
|
||||||
OPEN:
|
OPEN:
|
||||||
|
104
doc/spec/proposals/177-flag-abstention.txt
Normal file
104
doc/spec/proposals/177-flag-abstention.txt
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
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.)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user