TODO.022 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. Nick's initial priorities for Tor 0.2.2:
  2. NOTE 1: I'm not looking at fiddly little stuff from TODO.021 yet. We
  3. can do a step where we triage the nice-to-have issues.
  4. NOTE 2: It's easy to list stuff like this with no time estimates and
  5. no target dates. I think we should pick a target date for
  6. 0.2.2, figure out how long the stuff we want will take, and
  7. triage accordingly, or vice versa.
  8. - Design only
  9. - Begin design work for UDP transition; identify areas where we need to
  10. make changes or instrument stuff early.
  11. - Performance, mostly protocol-neutral.
  12. - Work with Libevent 2.0's bufferevent interface
  13. - Identify any performance stuff we need to push back into
  14. libevent to make it as fast as we want.
  15. - Revise how we do bandwidth limiting and round-robining between
  16. circuits on a connection.
  17. - Revise how we do bandwidth limiting and round-robining between
  18. connections.
  19. - Better flow-control to avoid filling buffers on routers.
  20. - Split AES across cores if possible.
  21. - Split SSL across cores (reach; may require Libevent 2.1).
  22. - Figure out good ways to instrument Tor internals so we can tell
  23. how well our bandwidth and flow-control stuff is actually working.
  24. - What ports eat the bandwidth?
  25. - How full do queues get?
  26. - How much latency do queues get?
  27. - Rate limit at clients:
  28. - Give clients an upper bound on how much they're willing to use
  29. the network if they're not relaying?
  30. - ... or group client circuits by IP at the server and rate-limit
  31. like that.
  32. - Other features
  33. - Proposals to implement:
  34. - 146: reflect long-term stability
  35. - 147: Stop using v2 directories to generate v3 votes.
  36. - Start pinging as soon as we learn about a relay, not on a
  37. 22-minute cycle. Prioritize new and volatile relays for
  38. testing.
  39. - Proposals to improve and implement
  40. - 158: microdescriptors
  41. - 160: list bandwidth in consensus
  42. - and actually set it reasonably
  43. - and actually use it.
  44. - Proposals to improve and implement if not broken
  45. - IPv6 support. (Parts of 117, but figure out how to handle DNS
  46. requests.)
  47. - 140: Directory diffs
  48. - 149: learn info from netinfo cells.
  49. - 134: handle authority fragmentation (Needs more analysis)
  50. - Needs a proposal, or at least some design
  51. - Detect client-status better
  52. - Have authorities report relay and voting status better: make it
  53. easy to answer, "Why is my server not listed/not Guard/not
  54. Running/etc"
  55. - Have consensuses come in multiple "flavours".
  56. - Weaken the requirements for being a Guard, based on K's
  57. measurements.
  58. - Adaptive timeouts for giving up on circuits and streams.
  59. - Have weight for picking new nodes as guards be less stupid
  60. - Lagged weight updates in consensuses: don't just move abruptly.
  61. d Don't kill a circuit on the first failed extend.
  62. - Installers
  63. - Switch to MSI on win32
  64. - Use Thandy, perhaps?
  65. - Deprecations
  66. - Make .exit safe, or make it off-by-default.