Browse Source

r16323@catbus: nickm | 2007-11-01 00:32:12 -0400
Mark some finished items finished, some deferred items deferred, and move some "nice to haves" into "deferred-land."


svn:r12307

Nick Mathewson 17 years ago
parent
commit
90ce047aae
1 changed files with 33 additions and 43 deletions
  1. 33 43
      doc/TODO

+ 33 - 43
doc/TODO

@@ -24,10 +24,10 @@ Things we'd like to do in 0.2.0.x:
     o Support for preconfigured mirror lists
     o Support for preconfigured mirror lists
       o Use a pre-shipped fallback consensus.
       o Use a pre-shipped fallback consensus.
       o Code to install a pre-defined fallback consensus
       o Code to install a pre-defined fallback consensus
-    . Download consensuses (et al) via if-modified-since
+    o Download consensuses (et al) via if-modified-since
       o Implement backend support for sending if-modified-since
       o Implement backend support for sending if-modified-since
       o Use it for consensuses.
       o Use it for consensuses.
-      - Use it for certificates
+      D Use it for certificates
     o base Guard flag on WFU rather than on MTBF.
     o base Guard flag on WFU rather than on MTBF.
       o Change guard calculation
       o Change guard calculation
       o Change dir-spec.txt
       o Change dir-spec.txt
@@ -57,6 +57,7 @@ Things we'd like to do in 0.2.0.x:
           and send netinfo and be "open".
           and send netinfo and be "open".
         o On netinfo, warn if there's skew from a server.
         o On netinfo, warn if there's skew from a server.
         - Learn our outgoing IP address from netinfo cells?
         - Learn our outgoing IP address from netinfo cells?
+        - Earliest stages of 110 (infinite-length) in v2 protocol.
       - TLS only
       - TLS only
         - Need to get a finished TLS normalization proposal
         - Need to get a finished TLS normalization proposal
         - Revised authentication.
         - Revised authentication.
@@ -108,16 +109,16 @@ Things we'd like to do in 0.2.0.x:
         of their first test, and then never seeing use.
         of their first test, and then never seeing use.
 
 
   - Proposals:
   - Proposals:
-    . 101: Voting on the Tor Directory System (plus 103)
+    o 101: Voting on the Tor Directory System (plus 103)
-      - Handle badly timed certificates properly.
+      o Handle badly timed certificates properly.
-      . Start caching consensus documents once authorities make them;
+      o Start caching consensus documents once authorities make them;
         start downloading consensus documents once caches serve
         start downloading consensus documents once caches serve
         them
         them
         o Code to delay next download while fetching certificates to verify
         o Code to delay next download while fetching certificates to verify
           a consensus we already got.
           a consensus we already got.
         o Code to retry consensus download if we got one we already have.
         o Code to retry consensus download if we got one we already have.
-        - Use if-modified-since on consensus download
+        D Use if-modified-since on consensus download
-        - Use if-modified-since on certificate download
+        o Use if-modified-since on certificate download
       - Controller support
       - Controller support
         - GETINFO to get consensus
         - GETINFO to get consensus
         - Event when new consensus arrives
         - Event when new consensus arrives
@@ -140,7 +141,7 @@ Things we'd like to do in 0.2.0.x:
     o Do TLS rotation less often than "every 10 minutes" in the thrashy case.
     o Do TLS rotation less often than "every 10 minutes" in the thrashy case.
     D Do TLS connection rotation more often than "once a week" in the
     D Do TLS connection rotation more often than "once a week" in the
       extra-stable case.
       extra-stable case.
-    - Streamline how we pick entry nodes: Make choose_random_entry() have
+    D Streamline how we pick entry nodes: Make choose_random_entry() have
       less magic and less control logic.
       less magic and less control logic.
     - Refactor networkstatus generation:
     - Refactor networkstatus generation:
       - Include "v" line in getinfo values.
       - Include "v" line in getinfo values.
@@ -185,28 +186,27 @@ R     - drop 'authority' queries if they're to our own identity key; accept
       - Make BEGIN_DIR mandatory for asking questions of bridge authorities?
       - Make BEGIN_DIR mandatory for asking questions of bridge authorities?
 
 
   - Features (other than bridges):
   - Features (other than bridges):
-    - Blocking-resistance.
-      - Write a proposal; make this part of 105.
     - Audit how much RAM we're using for buffers and cell pools; try to
     - Audit how much RAM we're using for buffers and cell pools; try to
       trim down a lot.
       trim down a lot.
     - Base relative control socket paths on datadir.
     - Base relative control socket paths on datadir.
-    - We should ship with a list of stable dir mirrors -- they're not
+    o We should ship with a list of stable dir mirrors -- they're not
       trusted like the authorities, but they'll provide more robustness
       trusted like the authorities, but they'll provide more robustness
       and diversity for bootstrapping clients.
       and diversity for bootstrapping clients.
-      - Implement this as a list of routerstatus, like fake_routerstatus in
+      X Implement this as a list of routerstatus, like fake_routerstatus in
         trusted_dir_derver_t?
         trusted_dir_derver_t?
-    - Better estimates in the directory of whether servers have good uptime
+      o Implemented as a fallback networkstatus consensus.
+    o Better estimates in the directory of whether servers have good uptime
        (high expected time to failure) or good guard qualities (high
        (high expected time to failure) or good guard qualities (high
        fractional uptime).
        fractional uptime).
-     - AKA Track uptime as %-of-time-up, as well as time-since-last-down
+      o AKA Track uptime as %-of-time-up, as well as time-since-last-down
        o Implement tracking
        o Implement tracking
-       - Make uptime info persist too.
+       o Make uptime info persist too.
-       - Base Guard on weighted fractional uptime.
+       o Base Guard on weighted fractional uptime.
     - Make TrackHostExits expire TrackHostExitsExpire seconds after their
     - Make TrackHostExits expire TrackHostExitsExpire seconds after their
        *last* use, not their *first* use.
        *last* use, not their *first* use.
     - Limit to 2 dir, 2 OR, N SOCKS connections per IP.
     - Limit to 2 dir, 2 OR, N SOCKS connections per IP.
-     - Or maybe close connections from same IP when we get a lot from one.
+      - Or maybe close connections from same IP when we get a lot from one.
-     - Or maybe block IPs that connect too many times at once.
+      - Or maybe block IPs that connect too many times at once.
     - add an AuthDirBadexit torrc option if we decide we want one.
     - add an AuthDirBadexit torrc option if we decide we want one.
 
 
   - Testing
   - Testing
@@ -241,11 +241,15 @@ P - create a "make win32-bundle" for vidalia-privoxy-tor-torbutton
   bundle
   bundle
 
 
 Nice-to-have items for 0.2.0.x, time permitting:
 Nice-to-have items for 0.2.0.x, time permitting:
+  - Low-priority bugs:
+    - we try to build 4 test circuits to break them over different
+      servers. but sometimes our entry node is the same for multiple
+      test circuits. this defeats the point.
+
+Deferred from 0.2.0.x:
   - Proposals
   - Proposals
     - 113: Simplifying directory authority administration
     - 113: Simplifying directory authority administration
     - 110: prevent infinite-length circuits (phase one)
     - 110: prevent infinite-length circuits (phase one)
-    . Robust decentralized storage for hidden service descriptors.
-      (Karsten is working on this; proposal 114.)
     - 118: Listen on and advertise multiple ports:
     - 118: Listen on and advertise multiple ports:
       - Tor should be able to have a pool of outgoing IP addresses that it is
       - Tor should be able to have a pool of outgoing IP addresses that it is
         able to rotate through. (maybe.  Possible overlap with proposal 118.)
         able to rotate through. (maybe.  Possible overlap with proposal 118.)
@@ -258,7 +262,6 @@ Nice-to-have items for 0.2.0.x, time permitting:
         - Most address variables need to become tor_addr_t
         - Most address variables need to become tor_addr_t
         - Teach resolving code how to handle ipv6.
         - Teach resolving code how to handle ipv6.
         - Teach exit policies about ipv6 (consider ipv4/ipv6 interaction!)
         - Teach exit policies about ipv6 (consider ipv4/ipv6 interaction!)
-
   - Features
   - Features
     - Let controller set router flags for authority to transmit, and for
     - Let controller set router flags for authority to transmit, and for
       client to use.
       client to use.
@@ -267,35 +270,16 @@ Nice-to-have items for 0.2.0.x, time permitting:
     - Clients should estimate their skew as median of skew from servers
     - Clients should estimate their skew as median of skew from servers
       over last N seconds.
       over last N seconds.
     - More work on AvoidDiskWrites?
     - More work on AvoidDiskWrites?
-
+  - Features
+    - Make a TCP DNSPort
   - Protocol work
   - Protocol work
     - MAYBE kill stalled circuits rather than stalled connections.  This is
     - MAYBE kill stalled circuits rather than stalled connections.  This is
       possible thanks to cell queues, but we need to consider the anonymity
       possible thanks to cell queues, but we need to consider the anonymity
       implications.
       implications.
     - Implement TLS shutdown properly when possible.
     - Implement TLS shutdown properly when possible.
-
+  - Bugs
-  - Low-priority bugs:
-    - we try to build 4 test circuits to break them over different
-      servers. but sometimes our entry node is the same for multiple
-      test circuits. this defeats the point.
     - If the client's clock is too far in the past, it will drop (or just not
     - If the client's clock is too far in the past, it will drop (or just not
       try to get) descriptors, so it'll never build circuits.
       try to get) descriptors, so it'll never build circuits.
-
-  - Refactoring:
-    - Move all status info out of routerinfo into local_routerstatus.  Make
-      "who can change what" in local_routerstatus explicit.  Make
-      local_routerstatus (or equivalent) subsume all places to go for "what
-      router is this?"
-
-  - Build:
-    - Detect correct version of libraries from autoconf script.
-
-  - Documentation:
-    - Review torrc.sample to make it more discursive.
-
-Deferred from 0.2.0.x:
-  - Features
-    - Make a TCP DNSPort
   - Refactoring
   - Refactoring
     - Make resolves no longer use edge_connection_t unless they are actually
     - Make resolves no longer use edge_connection_t unless they are actually
       _on_ a socks connection: have edge_connection_t and (say)
       _on_ a socks connection: have edge_connection_t and (say)
@@ -303,6 +287,10 @@ Deferred from 0.2.0.x:
       n_streams both be linked lists of edge_stream_t.
       n_streams both be linked lists of edge_stream_t.
     - Generate torrc.{complete|sample}.in, tor.1.in, the HTML manual, and the
     - Generate torrc.{complete|sample}.in, tor.1.in, the HTML manual, and the
       online config documentation from a single source.
       online config documentation from a single source.
+    - Move all status info out of routerinfo into local_routerstatus.  Make
+      "who can change what" in local_routerstatus explicit.  Make
+      local_routerstatus (or equivalent) subsume all places to go for "what
+      router is this?"
   - Blocking/scanning-resistance
   - Blocking/scanning-resistance
     - It would be potentially helpful to https requests on the OR port by
     - It would be potentially helpful to https requests on the OR port by
       acting like an HTTPS server.
       acting like an HTTPS server.
@@ -313,6 +301,8 @@ Deferred from 0.2.0.x:
       descriptors we have.
       descriptors we have.
     - Some mechanism for specifying that we want to stop using a cached
     - Some mechanism for specifying that we want to stop using a cached
       bridge.
       bridge.
+  - Build:
+    - Detect correct version of libraries from autoconf script.
 
 
 
 
 Future versions:
 Future versions: