TODO.022 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. [multiple weeks, ongoing. Need to do a draft early.]
  12. - Performance, mostly protocol-neutral.
  13. - Work with Libevent 2.0's bufferevent interface
  14. - Identify any performance stuff we need to push back into
  15. libevent to make it as fast as we want.
  16. - Revise how we do bandwidth limiting and round-robining between
  17. circuits on a connection.
  18. - Revise how we do bandwidth limiting and round-robining between
  19. connections.
  20. - Better flow-control to avoid filling buffers on routers.
  21. - Split AES across cores if possible.
  22. - Split SSL across cores (reach; may require Libevent 2.1).
  23. - Figure out good ways to instrument Tor internals so we can tell
  24. how well our bandwidth and flow-control stuff is actually working.
  25. - What ports eat the bandwidth?
  26. - How full do queues get?
  27. - How much latency do queues get?
  28. - Rate limit at clients:
  29. - Give clients an upper bound on how much they're willing to use
  30. the network if they're not relaying?
  31. - ... or group client circuits by IP at the server and rate-limit
  32. like that.
  33. - Other features
  34. - Proposals to implement:
  35. - 146: reflect long-term stability in consensuses
  36. - 147: Stop using v2 directories to generate v3 votes.
  37. - Start pinging as soon as we learn about a relay, not on a
  38. 22-minute cycle. Prioritize new and volatile relays for
  39. testing.
  40. - Proposals to improve and implement
  41. - 158: microdescriptors
  42. N - Revise proposal
  43. - 160: list bandwidth in consensus
  44. RNM? - Finish proposal
  45. - and actually set it reasonably
  46. - and actually use it.
  47. - Proposals to improve and implement if not broken
  48. - IPv6 support. (Parts of 117, but figure out how to handle DNS
  49. requests.)
  50. - 140: Directory diffs
  51. - 149: learn info from netinfo cells.
  52. - 134: handle authority fragmentation (Needs more analysis)
  53. - Needs a proposal, or at least some design
  54. - Detect client-status better
  55. N - Write proposal
  56. - Have authorities report relay and voting status better: make it
  57. easy to answer, "Why is my server not listed/not Guard/not
  58. Running/etc"
  59. N - Write proposal
  60. - Have consensuses come in multiple "flavours".
  61. N - Write proposal
  62. - Weaken the requirements for being a Guard, based on K's
  63. measurements.
  64. K - Finish measurements
  65. K? - Write proposal
  66. - Adaptive timeouts for giving up on circuits and streams.
  67. M/N - Revise proposal 151
  68. - Downweight guards more sensibly: be more forgiving about using
  69. Guard nodes as non-first-hop.
  70. - Write proposal.
  71. - Lagged weight updates in consensuses: don't just move abruptly.
  72. M? - Write proposal
  73. d Don't kill a circuit on the first failed extend.
  74. - Installers
  75. - Switch to MSI on win32
  76. - Use Thandy, perhaps?
  77. - Deprecations
  78. - Make .exit safe, or make it off-by-default.