On Fri, 20 May 2016 12:03:35 +0200 Rob van der Hoeven robvanderhoeven@ziggo.nl wrote:
This worries me. If in the future the router list grows, my router (and many other routers running Tor) can run out of memory. For me, it looks a little bit strange to have an in-memory database of the router list. Is there a reason for having this data in memory? And, can something be done about it?
What's strange about it. The client does the path selection. To build a circuit, the client must know the public keys/ip/port for the entire path and the exit policy.
A few things could be done:
* Figure out the necessary crytographic trickery to allow client driven path selection without the full microdescriptor list a la TvdW's recent-ish blog post.
* Work off the microdescriptors saved to non-volatile storage.
Intuitively this seems like a bad idea due to:
* This is a lot of code, for a niche use-case.
* Similar concerns apply to "the absolute minimum amount of flash that the manufacturer thinks they can get away with" being too small to hold the microdescriptor list.
* Most embedded devices probably don't want to be writing out the microdescriptor list to non-volatile storage either, because flash is garbage.
* Carry on keeping the working set in RAM under the assumption that manufacturers will ship more RAM in their routers as time goes on.
Regards,