Hi David (and others interested in IPv6),

We want to add better IPv6 support to Tor relays, clients, and v3 onion services.

But if we do IPv6 v3 onion services first, the hop before intro and rend points
will know that the circuit is a v3 onion service circuit, because its EXTEND2
cells will have an IPv6 address.

So I suggest that we implement IPv6 support in this order:
I've added this to an "Overview" section in: 
https://trac.torproject.org/projects/tor/wiki/org/roadmaps/Tor/IPv6Features

I also like the idea of testing and deploying our IPv6 code on relays first.
It's less risky than experimenting on clients or onion services.
And our relay operators give us some excellent bug reports.

And we can re-use some of the common code from the relay implementation
in the client and onion service implementations. (For example, we'll write
code that handles link specifiers.)

Also, if we get IPv6 relay reachability checks working, that makes it easier
to automatically configure IPv6 on relays. More IPv6 relays will make the
anonymity set larger for IPv6 clients.

What do you think?

T