teor wrote:
No-one is proposing we abolish ADD_ONION with v2 services straight away.
What we will do is make BEST mean v3, rather than v2. RSA1024 will continue to mean v2, as it always has.
ADD_ONION has always had an explicit BEST option, if clients don't want the BEST type of key, they should ask for a specific type they are prepared to handle.
Please read the appropriate control spec section: https://gitweb.torproject.org/torspec.git/tree/control-spec.txt#n1446
I don't think it's productive to ask users to already support a new feature upon our first release providing the said feature.
This isn't what is proposed.
(We are going to stop automatically creating v2 services via HiddenServiceDir in the first v3 release, but there will always be the ability to manually create a key. And that's a separate conversation.)
Hey, I apologize, my bad. I wasn't considering the options following ADD_ONION, I thought it's straight forward. Sorry for this, my mistake.
Based on your explanation I agree with you and Yawning that ADD_ONION:BEST should produce a v3 key, and ADD_ONION:RSA1024 v2.
To add some value on this point, I will bring into discussion a software that is widely used, produces significant rendezvous traffic and is important for some people:
Bitcoin Core - latest versions detect if you use Tor and automatically use ADD_ONION to create v2 services, and, important: it doesn't support yet the v3 address types because of their length.
Does it use ADD_ONION NEW:RSA1024 or ADD_ONION RSA1024:<String>?
Then it will be fine.
Does it use ADD_ONION NEW:BEST?
Then that's a client bug, and it should be fixed in the client.
Hey: // Finally - now create the service if (private_key.empty()) // No private key, generate one private_key = "NEW:BEST"; // Request hidden service, redirect port. // Note that the 'virtual' port doesn't have to be the same as our internal port, but this is just a convenient // choice. TODO; refactor the shutdown sequence some day. _conn.Command(strprintf("ADD_ONION %s Port=%i,127.0.0.1:%i", private_key, GetListenPort(), GetListenPort()), boost::bind(&TorController::add_onion_cb, this, _1, _2));
whooops ;) filing a ticket so everyone is on the same page with us.
Thanks.