TODO.022 3.9 KB

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