Take the 2-minute tour ×
Tor Stack Exchange is a question and answer site for researchers, developers, and users of Tor. It's 100% free, no registration required.

Is it possible for multiple Tor clients, running on different machines or even networks, to publish the same Tor hidden service using the same private key to load balance requests between them?

share|improve this question

4 Answers 4

up vote 16 down vote accepted

Yes, but it may not provide the sort of load balancing you have in mind.

See http://archives.seul.org/tor/relays/Apr-2011/msg00022.html

The answer if two different Tors have the same hidden service private key is that they will each publish a hidden service descriptor. Whichever one published more recently is the one that a user accessing the hidden service will probably find and use.

This approach can provide a very crude load balancing. More interesting, it can also provide a very crude failover, where if one of them disappears, an hour or so later the other will publish and the hidden service will become reachable again.

share|improve this answer
1  
Multiple hidden-service instances can synchronize through side channels, such as openvpn through Tor. Alternatively, multiple hidden-service instances can serve merely as reverse proxies for the true hidden service. –  mirimir Sep 29 '13 at 5:51

If your goal is load balancing, and the concern is the CPU usage of your machine, another option is to run the Tor Hidden Service on a machine with a load balancer like HAProxy installed. HAProxy will transfer the requests to one of several beefy webservers to handle the request, leaving the load balancer running (only) Tor and HAProxy.

Another thing to note that hidden services have authentication built into the hidden service address, and the link is encrypted end-to-end, so running SSL over hidden services is unnecessary.

share|improve this answer

If you wanted to host a hidden service on multiple servers each with different introduction points then couldn't you have each hidden-service instance publish their own set of hidden-service descriptors? You could distinguish between them by assigning each instance a different set of replica numbers to use when generating hidden service descriptor-ids.

Although now that I think of it there would probably be problems with the clients not knowing how many replicas there are (think it's currently hardcoded to 2).

share|improve this answer

File hosting could in theory be done distributedly by using Tahoe-LAFS: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2144

share|improve this answer
    
Please provide some detail on how one might actually set this up. –  Andrew Lott Dec 29 '13 at 7:17

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.