After reading how hidden services work it is not clear to me whether a hidden service database as shown in the figure bellow, is different from a directory server.
On which port does it provide the descriptors on?
After reading how hidden services work it is not clear to me whether a hidden service database as shown in the figure bellow, is different from a directory server.
On which port does it provide the descriptors on?
The "database" in the picture is an abstraction, it just represents some shared lookup mechanism.
Relays with certain properties can be assigned the HSDir flag.
Bob chooses 6 of these relays in the consensus as the HSDirs to publish his hidden service descriptor to. The 6 chosen are based on his hidden services address and the list of HSDirs in the current consensus.
Alice also knows Bob's hidden service address, this is a shared value that is distributed out-of-band. Since Alice has the same consensus as Bob and Alice knows Bob's hidden service address, she too can compute the same 6 HSDirs and retrieve the descriptor with the information of how to reach Bob's onion from one of them.
They are published and retrieved using Tor's directory protocol which uses HTTP as a transport.
So, in conclusion:
HSDir is a type of Directory Server that meets a specific set of criteria.Directory server enumerates Tor nodes, all of them. There are special separate subsets of them such as bridge relay directory, obfuscated bridge relay directory, hidden services directory e.t.c. all the records of these special service directories are tor nodes pulled out only by request. The overall directories are used for regular network connectivity rather than by request