diff options
author | Roger Dingledine <arma@torproject.org> | 2003-08-22 03:17:14 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2003-08-22 03:17:14 +0000 |
commit | b800859239b8ec42aaf0be85e461ee3e9b3a7ac8 (patch) | |
tree | 2a4876fcc95f20322330dc70bbb29d47b8b1d9d0 /doc | |
parent | fdc0389ca09ae5d05f3554e564b51f083e3352de (diff) | |
download | tor-b800859239b8ec42aaf0be85e461ee3e9b3a7ac8.tar.gz tor-b800859239b8ec42aaf0be85e461ee3e9b3a7ac8.zip |
update TODO to reflect current reality
svn:r404
Diffstat (limited to 'doc')
-rw-r--r-- | doc/TODO | 54 |
1 files changed, 37 insertions, 17 deletions
@@ -12,17 +12,26 @@ ARMA - arma claims X Abandoned - . Use a stronger cipher - o 3des for now - - aes now, by including the code ourselves - . Topics / circuits - o Implement topics + o Use a stronger cipher + o aes now, by including the code ourselves + . streams / circuits + o Implement streams o Rotate circuits after N minutes? X Circuits should expire when circuit->expire triggers 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 + - Reduce streamid footprint from 7 bytes to 3 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 + - 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 + - Spec the stream_id stuff. Clarify that nobody on the backward + stream should look at stream_id. X On the fly compression of each stream o Clean up the event loop (optimize and sanitize) ARMA o Remove that awful concept of 'roles' @@ -32,7 +41,10 @@ ARMA . Exit policies - Let user request certain nodes - And disallow certain nodes D Choose path by jurisdiction, etc? - - Rewrite how the AP works + - Make relay end cells have failure status and payload attached + - Streams that fail due to exit policy must reextend to new node + - Add extend_wait state to edge connections, thumb through them + when the AP get an extended cell. SPEC!! D Non-clique topologies D Implement our own memory management, at least for common structs . Appropriate logging @@ -56,6 +68,13 @@ SPEC!! D Non-clique topologies o An address doesn't resolve o We have max workers running o Consider taking the master out of the loop? + . Put CPU workers in separate processes + 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 + - Handle cpuworkers dying + D Support later handshake parts . Directory servers D Automated reputation management o Include key in source; sign directories @@ -80,7 +99,7 @@ SPEC!! D Figure out how to do threshold directory servers . Get socks4a support into Mozilla . Get tor to act like a socks server o socks4, socks4a - - socks5 + D socks5 SPEC!! - Handle socks commands other than connect, eg, bind? . Develop rendezvous points . Spec (still needs step-by-step instructions) @@ -100,7 +119,7 @@ NICK . Unit tests - Performance tests, so we know when we've improved . webload infrastructure (Bruce) . httperf infrastructure (easy to set up) - . oprofile (installed in RH 8.0) + . oprofile (installed in RH >8.0) D Deploy a widespread network . Router twins o Choose twin if primary is down, when laying circuit @@ -112,29 +131,30 @@ NICK . Daemonize and package - Red Hat spec file - Debian spec file equivalent . Autoconf - . Which .h files are we actually using? Port to: + . Which .h files are we actually using? + . Port to: o Linux o BSD . Solaris - . Windows + o Cygwin + . Win32 o OS X o openssl randomness o inet_ntoa - - stdint.h + . stdint.h - Make a script to set up a local network on your machine D Move away from openssl o Abstract out crypto calls D Look at nss, others? Just include code? - - . transition addr to sin_addr (huh?) - o Clean up the number of places that get to look at prkey . Clearer bandwidth management - - Total rate limiting - . Look at OR handshake in more detail + - Do we want to remove bandwidth from OR handshakes? + - What about OP handshakes? + o Total rate limiting + o Look at OR handshake in more detail o Spec it o Merge OR and OP handshakes - . rearrange connection_or so it doesn't suck so much to read + o rearrange connection_or so it doesn't suck so much to read D Periodic link key rotation. Spec? - More flexibility in node addressing D Support IPv6 rather than just 4 |