Ensure that API can handle atomic-ish RENDEZVOUS1 behavior from onion services
When an onion service gets an INTRODUCE2
message it likes, it does some cryptography, it builds an N
-hop rendezvous circuit with the rendezvous point listed in that message as the N
'th hop, and then does all of the following more or less simultaneously:
- Extend the circuit to an
N+1
th virtual hop. - Send a
RENDEZVOUS1
message to theN
th hop. - Begin accepting
BEGIN
messages from theN+1
th virtual hop. (See #864 (closed))
We need to be sure that the circuit is set up for handling messages from the virtual hop as soon as the RENDEZVOUS1
message has been sent. In practice this may mean that we need to configure the N+1
th hop first, and only then send the RENDEZVOUS1
message.
There is no RENDEZVOUS_ACK
as far as I can recall; on failure the service gets a DESTROY
.