Hi,
Can votes and consensuses have more than one "a" line? Prop 186 says, on one hand
[...] votes should include a single "a" line for every relay that has an IPv6 address, to include the first IPv6 line in its descriptor. [...] The remaining or-address lines will turn into "a" lines in the microdescriptor.
I interpret this to mean that there is at most one "a" line in a status vote or consensus.
On the other hand it also says
Clients that use microdescriptors should consider a node's addresses to be the address:port listed in the "r" line of a consensus, plus all "a" lines for that node in the consensus, [...]
and
the vote will include whichever set of "a" lines are given by the most authorities who voted for the descriptor digest that will be used for the router.
(Is "vote" a typo? Should it read "consensus"?)
This makes me think there can be more than one "a" line in both votes and consensuses.
On 2012-07-17 06:24, Linus Nordberg wrote:
Hi,
Can votes and consensuses have more than one "a" line? Prop 186 says, on one hand
[...] votes should include a single "a" line for every relay that has an IPv6 address, to include the first IPv6 line in its descriptor. [...] The remaining or-address lines will turn into "a" lines in the microdescriptor.
I interpret this to mean that there is at most one "a" line in a status vote or consensus.
I interpret this as: "a single "a" line for every relay that has an IPv6 address" and: "the remaining or-address lines will turn into "a" lines in the ..."
Thus multiple "a" lines, only one single one with IPv6, the rest with IPv4.
I think that one should allow an arbitrary number though, with a limit of course, eg that a relay is allowed to have max 8 "a" lines, be that either IPv4 or IPv6 addresses along with their ports.
As such the "single" above should be taken out of the text and/or rewritten to avoid the confusion that Linus notes here.
On the other hand it also says
Clients that use microdescriptors should consider a node's addresses to be the address:port listed in the "r" line of a consensus, plus all "a" lines for that node in the consensus, [...]
Multiples here too ;)
and
the vote will include whichever set of "a" lines are given by the most authorities who voted for the descriptor digest that will be used for the router.
(Is "vote" a typo? Should it read "consensus"?)
Nope, that is a single vote by that authority, the result of all the votes is the concensus.
This makes me think there can be more than one "a" line in both votes and consensuses.
Yes, and there should be IMHO.
Greets, Jeroen
On Tue, Jul 17, 2012 at 12:24 AM, Linus Nordberg linus@torproject.org wrote:
Hi,
Can votes and consensuses have more than one "a" line? Prop 186 says, on one hand
[...] votes should include a single "a" line for every relay that has an IPv6 address, to include the first IPv6 line in its descriptor. [...] The remaining or-address lines will turn into "a" lines in the microdescriptor.
I interpret this to mean that there is at most one "a" line in a status vote or consensus.
On the other hand it also says
Clients that use microdescriptors should consider a node's addresses to be the address:port listed in the "r" line of a consensus, plus all "a" lines for that node in the consensus, [...]
and
the vote will include whichever set of "a" lines are given by the most authorities who voted for the descriptor digest that will be used for the router.
(Is "vote" a typo? Should it read "consensus"?)
This makes me think there can be more than one "a" line in both votes and consensuses.
Ah; I should have made this point explicit. Here's my current intent:
Everything that describes how these documents are formatted describes them as containing multiple "a" lines. Thus, anybody parsing a consensus or microdescriptor MUST accept multiple "a" lines, even if they ignore all but the first.
But everything that describes how these documents are *generated* describes them as containing a single "a" line. Thus, there doesn't need a way to come up with a consensus containing multiple a lines.
In other words, I think that for now, one "a" line is fine. But we need to make sure that anything reading these documents can handle more than one, in case we generate them differently later.
Does that make sense?
yrs,
Nick Mathewson nickm@alum.mit.edu wrote Tue, 17 Jul 2012 09:31:48 -0400:
| Everything that describes how these documents are formatted describes | them as containing multiple "a" lines. Thus, anybody parsing a | consensus or microdescriptor MUST accept multiple "a" lines, even if | they ignore all but the first. | | But everything that describes how these documents are *generated* | describes them as containing a single "a" line. Thus, there doesn't | need a way to come up with a consensus containing multiple a lines. | | In other words, I think that for now, one "a" line is fine. But we | need to make sure that anything reading these documents can handle | more than one, in case we generate them differently later. | | Does that make sense?
Indeed. Thanks.