On 26 Oct 2017, at 09:09, teor <teor2345@gmail.com> wrote:

But it did occur to me that other code may assume the "platform" line takes a certain form.

It shouldn't, that's what protocol lines are for.

But any alternate implementation will never be used as a v3 HSDir, because it
would need to claim to be Tor 0.3.0.8 or later for v3 onion services to use it. This
is a poor design decision on our part: just like consensus methods, when we break
a protocol version, we should allocate a new number, and check it.
(Or we should exclude broken versions from the consensus.)

I've opened this ticket to fix that:
https://trac.torproject.org/projects/tor/ticket/23998

For the record, I was wrong about this.

We ignore "Tor" implementations on 0.3.0.7 and below when checking
for the HSDir protover 2. (Which supports v3 onion services.)

So any non-Tor implementation that advertises support for protover 2
will be accepted as a v3 onion service HSDir.

T