I have been writing a tor implementation (using v3 addresses) and have gotten stuck on how the client is supposed to retrieve the introduction point(s) of the hidden service from the EdDSA public key. So how exactly is the HSDir selected based on the public key, and what data does the client send to that HSDir (or whatever place stores the introduction points) to retrieve the introduction points, and what data does the node send back? If possible, could you also link the tor reference section...