Commit 4fb92e5b authored by Roger Dingledine's avatar Roger Dingledine
Browse files

update the TODO


svn:r423
parent e13d9479
Loading
Loading
Loading
Loading
+35 −26
Original line number Diff line number Diff line
@@ -20,14 +20,13 @@ NICK . Handle half-open connections
                        o Figure out what causes connections to close, standardize
                          when we mark a connection vs when we tear it down
                o Look at what ssl does to keep from mutating data streams
ARMA            - Reduce streamid footprint from 7 bytes to 3 bytes
ARMA    - Reduce streamid footprint from 7 bytes to 2 bytes
                - Check for collisions in streamid (now possible with
                          just 3 bytes), and back up & replace with padding if so
                - Use the 3 saved bytes to put pseudorandomness in each cell
                  just 2 bytes), and back up & replace with padding if so
                - Use the 3 saved bytes to put pseudorandomness in each relay cell
                - Use the 4 reserved bytes in each cell header to keep 1/5
                  of a sha1 of the payload
                        - (Move these 4 bytes into the stream header)
                - Consider moving length into the stream header too
                  of a sha1 of the relay payload (move into stream header)
                - Move length into the stream header too
                - Spec the stream_id stuff. Clarify that nobody on the backward
                  stream should look at stream_id.
ARMA    . Exit policies
@@ -49,25 +48,36 @@ SPEC!! D Non-clique topologies
                o Handle multiple cpu workers (one for each cpu, plus one)
                o Queue for pending tasks if all workers full
                o Support the 'process this onion' task
                - Support the 'decrypt this RSA blob' handshake1 task
NICK            - Support the 'decrypt this RSA blob' handshake1 task
                        - Merge dnsworkers and cpuworkers to some extent
                - Handle cpuworkers dying
                D Support later handshake parts
        . Directory servers
                D Automated reputation management
        o Simple directory servers
                o Include key in source; sign directories
                        o Signed directory backend
                        o Document
                        o Integrate
                - Add versions to code
                . Have directories list recommended-versions
                o Add versions to code
                o Have directories list recommended-versions
                        o Include (unused) line in directories
                        o Check for presence of line.
                        - Quit if running the wrong version
                        - Command-line option to override quit
                . Add more information to directory server entries
                        o Quit if running the wrong version
                        o Command-line option to override quit
                o Add more information to directory server entries
                        o Exit policies
                        D jurisdiction? others?
        - More directory servers
                - Add in long-term nicknames
                - Give normal routers signing keys
                - Let dirservers keep only {nickname, signingkey} in routers.or
                        - dirport needs to accept 'post' requests
                          for routers submitting (signed) new entries
                        - routers submit new entries periodically
                        - dirserver checks signature
                        D client checks signature?
        D Advanced directory servers
                D Automated reputation management
SPEC!!          D Figure out how to do threshold directory servers
                D jurisdiction info in dirserver entries? other info?
        . Scrubbing proxies
                - Find an smtp proxy?
                        - Check the old smtp proxy code
@@ -79,7 +89,8 @@ SPEC!! D Figure out how to do threshold directory servers
                D socks5
SPEC!!          - Handle socks commands other than connect, eg, bind?
        . Develop rendezvous points
                . Spec (still needs step-by-step instructions)
                o Design
                - Spec
                - Implement
        D Deploy and manage open source development site.
        . Documentation
@@ -97,10 +108,8 @@ NICK . Unit tests
                        . httperf infrastructure (easy to set up)
                        . oprofile (installed in RH >8.0)
        D Deploy a widespread network
        . Router twins
                o Choose twin if primary is down, when laying circuit
                D Load balancing between twins
                        - Keep track of load over links/nodes, to
        D Load balancing between router twins
                D Keep track of load over links/nodes, to
                  know who's hosed
NICK    . Daemonize and package
                o Teach it to fork and background
@@ -113,7 +122,7 @@ NICK . Daemonize and package
                        o BSD
                        . Solaris
                        o Cygwin
                        . Win32
                        o Win32
                        o OS X
                o openssl randomness
                o inet_ntoa
@@ -122,9 +131,9 @@ NICK . Daemonize and package
        D Move away from openssl
                o Abstract out crypto calls
                D Look at nss, others? Just include code?
        . Clearer bandwidth management 
                - Do we want to remove bandwidth from OR handshakes?
                - What about OP handshakes?
        o Clearer bandwidth management 
                o Do we want to remove bandwidth from OR handshakes?
                o What about OP handshakes?
        - More flexibility in node addressing
                D Support IPv6 rather than just 4
                - Handle multihomed servers (config variable to set IP)