|  | @@ -1,117 +0,0 @@
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -Legend:
 | 
	
		
			
				|  |  | -SPEC!!  - Not specified
 | 
	
		
			
				|  |  | -SPEC    - Spec not finalized
 | 
	
		
			
				|  |  | -NICK    - nick claims
 | 
	
		
			
				|  |  | -ARMA    - arma claims
 | 
	
		
			
				|  |  | -        - Not done
 | 
	
		
			
				|  |  | -        * Top priority
 | 
	
		
			
				|  |  | -        . Partially done
 | 
	
		
			
				|  |  | -        o Done
 | 
	
		
			
				|  |  | -        D Deferred
 | 
	
		
			
				|  |  | -        X Abandoned
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        - Use a stronger cipher
 | 
	
		
			
				|  |  | -                - 3des for now
 | 
	
		
			
				|  |  | -                - aes when we everybody has openssl 0.9.7
 | 
	
		
			
				|  |  | -        . Topics / circuits
 | 
	
		
			
				|  |  | -                o Implement topics
 | 
	
		
			
				|  |  | -                - Rotate circuits after N minutes?
 | 
	
		
			
				|  |  | -                - Circuits should expire when circuit->expire triggers
 | 
	
		
			
				|  |  | -NICK            . Handle half-open connections
 | 
	
		
			
				|  |  | -NICK    . On the fly compression of each stream
 | 
	
		
			
				|  |  | -        o Clean up the event loop (optimize and sanitize)
 | 
	
		
			
				|  |  | -        - Exit policies
 | 
	
		
			
				|  |  | -                - Path selection algorithms
 | 
	
		
			
				|  |  | -                        - Let user request certain nodes
 | 
	
		
			
				|  |  | -                        - And disallow certain nodes
 | 
	
		
			
				|  |  | -                        - Choose path by jurisdiction, etc?
 | 
	
		
			
				|  |  | -        D Implement our own memory management, at least for common structs
 | 
	
		
			
				|  |  | -        . Appropriate logging
 | 
	
		
			
				|  |  | -                - Come up with convention for what log level means what
 | 
	
		
			
				|  |  | -                - Make code follow convention
 | 
	
		
			
				|  |  | -        . Terminology
 | 
	
		
			
				|  |  | -                o Circuits, topics, cells stay named that
 | 
	
		
			
				|  |  | -                - 'Connection' gets divided, or renamed, or something?
 | 
	
		
			
				|  |  | -        . DNS farm
 | 
	
		
			
				|  |  | -                o Distribute queries onto the farm, get answers
 | 
	
		
			
				|  |  | -                o Preemptively grow a new worker before he's needed
 | 
	
		
			
				|  |  | -                - Prune workers when too many are idle
 | 
	
		
			
				|  |  | -                o Keep track of which connections are in dns_wait
 | 
	
		
			
				|  |  | -                o Need to cache positives/negatives on the tor side
 | 
	
		
			
				|  |  | -                        o Keep track of which queries have been asked
 | 
	
		
			
				|  |  | -                . Better error handling when
 | 
	
		
			
				|  |  | -                        . An address doesn't resolve
 | 
	
		
			
				|  |  | -                        - We have max workers running
 | 
	
		
			
				|  |  | -                - Consider taking the master out of the loop?
 | 
	
		
			
				|  |  | -        . Directory servers
 | 
	
		
			
				|  |  | -                - Automated reputation management
 | 
	
		
			
				|  |  | -ARMA            - Include key in source; sign directories
 | 
	
		
			
				|  |  | -ARMA            - Have directories list recommended-versions
 | 
	
		
			
				|  |  | -                        - Quit if running the wrong version
 | 
	
		
			
				|  |  | -                        - Command-line option to override quit
 | 
	
		
			
				|  |  | -                . Add more information to directory server entries
 | 
	
		
			
				|  |  | -                        - Exit policies
 | 
	
		
			
				|  |  | -                        - jurisdiction? others?
 | 
	
		
			
				|  |  | -SPEC!!          - Figure out how to do threshold directory servers
 | 
	
		
			
				|  |  | -        . Scrubbing proxies
 | 
	
		
			
				|  |  | -                - Find an smtp proxy?
 | 
	
		
			
				|  |  | -                - Find an ftp proxy? Figure out how that would work?
 | 
	
		
			
				|  |  | -                - Wait until there are packet redirectors for Linux
 | 
	
		
			
				|  |  | -                . Get socks4a support into Mozilla
 | 
	
		
			
				|  |  | -        . Get tor to act like a socks server
 | 
	
		
			
				|  |  | -                o socks4, socks4a
 | 
	
		
			
				|  |  | -                - socks5
 | 
	
		
			
				|  |  | -SPEC!!          - Handle socks commands other than connect, eg, bind?
 | 
	
		
			
				|  |  | -        - Develop rendezvous points
 | 
	
		
			
				|  |  | -        D Implement reply onions
 | 
	
		
			
				|  |  | -        D Deploy and manage open source development site.
 | 
	
		
			
				|  |  | -        . Documentation
 | 
	
		
			
				|  |  | -                . Discussion of socks, tsocks, etc
 | 
	
		
			
				|  |  | -                - On-the-network protocol
 | 
	
		
			
				|  |  | -                        - Onions
 | 
	
		
			
				|  |  | -                        - Cells
 | 
	
		
			
				|  |  | -                . Better comments for functions!
 | 
	
		
			
				|  |  | -        - Tests
 | 
	
		
			
				|  |  | -                - Testing harness/infrastructure
 | 
	
		
			
				|  |  | -                - Unit tests
 | 
	
		
			
				|  |  | -                - System tests (how?)
 | 
	
		
			
				|  |  | -                - Performance tests, so we know when we've improved
 | 
	
		
			
				|  |  | -                        . webload infrastructure (Bruce)
 | 
	
		
			
				|  |  | -                        . 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
 | 
	
		
			
				|  |  | -                - Load balancing between twins
 | 
	
		
			
				|  |  | -                        - Keep track of load over links/nodes, to
 | 
	
		
			
				|  |  | -                          know who's hosed
 | 
	
		
			
				|  |  | -NICK    - Daemonize and package
 | 
	
		
			
				|  |  | -                o Teach it to fork and background
 | 
	
		
			
				|  |  | -                - Red Hat spec file
 | 
	
		
			
				|  |  | -                - Debian spec file equivalent
 | 
	
		
			
				|  |  | -                
 | 
	
		
			
				|  |  | -        . Autoconf
 | 
	
		
			
				|  |  | -                . Which .h files are we actually using? Port to:
 | 
	
		
			
				|  |  | -                        o Linux
 | 
	
		
			
				|  |  | -                        o BSD
 | 
	
		
			
				|  |  | -                        . Solaris
 | 
	
		
			
				|  |  | -                        . Windows
 | 
	
		
			
				|  |  | -NICK                    . OS X
 | 
	
		
			
				|  |  | -        . Move away from openssl
 | 
	
		
			
				|  |  | -                o Abstract out crypto calls
 | 
	
		
			
				|  |  | -                D Look at ndss, others? Just include code?
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        . transition addr to sin_addr (huh?)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        . Clean up the number of places that get to look at prkey
 | 
	
		
			
				|  |  | -SPEC!!  - Non-clique topologies, clearer bandwidth management
 | 
	
		
			
				|  |  | -        . Look at OR handshake in more detail
 | 
	
		
			
				|  |  | -                o Spec it
 | 
	
		
			
				|  |  | -                - Merge OR and OP handshakes?
 | 
	
		
			
				|  |  | -                - Periodic link key rotation. Spec?
 | 
	
		
			
				|  |  | -        - More flexibility in node addressing
 | 
	
		
			
				|  |  | -                - Support IPv6 rather than just 4
 | 
	
		
			
				|  |  | -                - Handle multihomed servers
 | 
	
		
			
				|  |  | -
 |