Coming back to the matter of speed: what do we need to increase the performance of the tor network? More tor (exit) nodes, right? (please correct me if I'm wrong)
More nodes is not the answer. You could add one million dialup speed nodes, and not improve the speed of Tor. More bandwidth is part of the answer. One exit node with 21 gigawatts, err, enough bandwidth might improve (possibly doubling) the speed of Tor -- IF it has enough CPU power to run things. I've seen circuits with only high-speed nodes (over 900 KB/s, as reported by Vidallia) operate slowly (and the web server is fast as soon as I switch Tor off). So bandwidth isn't the limit either. The best I can conclude, from limited observations, is that CPU overhead is critical. More connections are made to high bandwidth nodes than they can handle (there is no "I'm full, I'm rejecting your connection request" message in the Tor protocol that I know of). The second limit is node speed. There's no way to say "Only use nodes with at least <N> speed in my connections". As soon as I get a node with less than 150 KB/s in my paths, my speed will be lower with Tor, because that's my download speed. The third limit is number of active connections. If I'm downloading a file, I don't mind 20 KB/s paths *IF* I can use multiple paths. My download manager is happy to work with 10 parts at once. So, my suspicions: 1. An easy way to toggle between "At least speed X" (for single-threaded web browsing) and "Any speed, many connections" (for downloads). 2. A way to keep nodes from being CPU starved from the encryption processing (high bandwidth nodes) 3. A way to keep nodes from being bandwidth starved (the main limit on middle-speed nodes).

