update the TODO

svn:r423
This commit is contained in:
Roger Dingledine 2003-08-31 00:11:01 +00:00
parent e13d947986
commit 4fb92e5bf7

View file

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