|  | @@ -42,49 +42,17 @@ For 0.1.0.x:
 | 
	
		
			
				|  |  |        apply the results. (all platforms?)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  for 0.1.1.x:
 | 
	
		
			
				|  |  | -  o Controller improvements
 | 
	
		
			
				|  |  | -    o new controller protocol
 | 
	
		
			
				|  |  | -      o Specify
 | 
	
		
			
				|  |  | -      o Implement
 | 
	
		
			
				|  |  | -      o Test, debug
 | 
	
		
			
				|  |  | -    o add new getinfo options to enumerate things we only find out about
 | 
	
		
			
				|  |  | -      currently via events.
 | 
	
		
			
				|  |  | -    o controller should have an event to learn about new addressmappings,
 | 
	
		
			
				|  |  | -      e.g. when we learn a hostname to IP mapping ?
 | 
	
		
			
				|  |  | -    o make sure err-level log events get flushed to the controller
 | 
	
		
			
				|  |  | -      immediately, since tor will exit right after.
 | 
	
		
			
				|  |  | -      o Implement
 | 
	
		
			
				|  |  | -      o Test, debug
 | 
	
		
			
				|  |  | -    o Switch example controllers to use new protocol
 | 
	
		
			
				|  |  | -      o Python
 | 
	
		
			
				|  |  | -        o Implement main controller interface
 | 
	
		
			
				|  |  | -        o Glue code
 | 
	
		
			
				|  |  | -        o Testing
 | 
	
		
			
				|  |  | -      o Java
 | 
	
		
			
				|  |  | -        o Implement main controller interface
 | 
	
		
			
				|  |  | -        o Glue code
 | 
	
		
			
				|  |  | -        o Testing
 | 
	
		
			
				|  |  |  N . Additional controller features
 | 
	
		
			
				|  |  | +      - change circuit status events to give more details, like purpose,
 | 
	
		
			
				|  |  | +        whether they're internal, etc.
 | 
	
		
			
				|  |  |        . Expose more information via getinfo:
 | 
	
		
			
				|  |  | -        o Accounting status
 | 
	
		
			
				|  |  | -        o Helper node status
 | 
	
		
			
				|  |  | -          o Document
 | 
	
		
			
				|  |  | -          o Implement
 | 
	
		
			
				|  |  | -        o List of available getinfo/getconf fields.
 | 
	
		
			
				|  |  | -          o Document
 | 
	
		
			
				|  |  | -          o Implement
 | 
	
		
			
				|  |  | +        - import and export rendezvous descriptors
 | 
	
		
			
				|  |  |          - Review all static fields for additional candidates
 | 
	
		
			
				|  |  |        - Allow EXTENDCIRCUIT to unknown server.
 | 
	
		
			
				|  |  |        - We need some way to adjust server status, and to tell tor not to
 | 
	
		
			
				|  |  |          download directories/network-status, and a way to force a download.
 | 
	
		
			
				|  |  |        - It would be nice to request address lookups from the controller
 | 
	
		
			
				|  |  |          without using SOCKS.
 | 
	
		
			
				|  |  | -  o Make configuration parsing code switchable to different sets of
 | 
	
		
			
				|  |  | -    variables so we can use it for persistence.
 | 
	
		
			
				|  |  | -    o Implement
 | 
	
		
			
				|  |  | -    o Add simple type-checking
 | 
	
		
			
				|  |  | -    o Rename functions to distinguish configuration-only functions from
 | 
	
		
			
				|  |  | -      cross-format functions
 | 
	
		
			
				|  |  |  N . helper nodes (Choose N nodes randomly; if a node dies (goes down for a
 | 
	
		
			
				|  |  |      long time), replace it.  Store nodes on disk.
 | 
	
		
			
				|  |  |      o Implement (basic case)
 | 
	
	
		
			
				|  | @@ -92,10 +60,6 @@ N . helper nodes (Choose N nodes randomly; if a node dies (goes down for a
 | 
	
		
			
				|  |  |      o Document
 | 
	
		
			
				|  |  |      . Test, debug
 | 
	
		
			
				|  |  |      - On sighup, if usehelpernodes changed to 1, use new circs.
 | 
	
		
			
				|  |  | -  o Make a FirewallIPs to correspond to firewallPorts so I can use Tor at
 | 
	
		
			
				|  |  | -    MIT when my directory is out of date.
 | 
	
		
			
				|  |  | -    o Document, rename, deprecate fascistfirewall, and make it use
 | 
	
		
			
				|  |  | -      addr_policy_t logic.
 | 
	
		
			
				|  |  |    - switch accountingmax to count total in+out, not either in or
 | 
	
		
			
				|  |  |      out. it's easy to move in this direction (not risky), but hard to
 | 
	
		
			
				|  |  |      back, out if we decide we prefer it the way it already is. hm.
 | 
	
	
		
			
				|  | @@ -123,9 +87,6 @@ N . helper nodes (Choose N nodes randomly; if a node dies (goes down for a
 | 
	
		
			
				|  |  |          o Use new INTRODUCE protocol if allowed.
 | 
	
		
			
				|  |  |  N   . Verify that new code works.
 | 
	
		
			
				|  |  |      - Enable the new code
 | 
	
		
			
				|  |  | -  X It looks like tor_assert writes to stderr. This isn't a problem, because
 | 
	
		
			
				|  |  | -    start_daemon doesn't close fd 2; it uses dup2 to replace it with
 | 
	
		
			
				|  |  | -    a file open to /dev/null.
 | 
	
		
			
				|  |  |    - christian grothoff's attack of infinite-length circuit.
 | 
	
		
			
				|  |  |      the solution is to have a separate 'extend-data' cell type
 | 
	
		
			
				|  |  |      which is used for the first N data cells, and only
 | 
	
	
		
			
				|  | @@ -138,18 +99,17 @@ N - Add private:* alias in exit policies to make it easier to ban all the
 | 
	
		
			
				|  |  |      (AGL had a patch; consider applying it.)
 | 
	
		
			
				|  |  |    - recommended-versions for client / server ?
 | 
	
		
			
				|  |  |  N - warn if listening for SOCKS on public IP.
 | 
	
		
			
				|  |  | -  o Forward-compatibility: add "needclientversion" option or "opt critical"
 | 
	
		
			
				|  |  | -    prefix?  No, just make unknown keywords less critical.
 | 
	
		
			
				|  |  |    - cpu fixes:
 | 
	
		
			
				|  |  |      - see if we should make use of truncate to retry
 | 
	
		
			
				|  |  |      o hardware accelerator support (configure engines.)
 | 
	
		
			
				|  |  |      - hardware accelerator support (use instead of aes.c when reasonable)
 | 
	
		
			
				|  |  | -r   - kill dns workers more slowly
 | 
	
		
			
				|  |  | +R   - kill dns workers more slowly
 | 
	
		
			
				|  |  | +R - remove the warnings from rendezvous stuff that shouldn't be warnings.
 | 
	
		
			
				|  |  |    - continue decentralizing the directory
 | 
	
		
			
				|  |  |      o Specify and design all of the below before implementing any.
 | 
	
		
			
				|  |  |      - Figure out what to do about hidden service descriptors.
 | 
	
		
			
				|  |  | -    M have two router descriptor formats
 | 
	
		
			
				|  |  | -    - dirservers verify reachability claims
 | 
	
		
			
				|  |  | +    X have two router descriptor formats
 | 
	
		
			
				|  |  | +R   - dirservers verify reachability claims
 | 
	
		
			
				|  |  |      - find 10 dirservers. (what are criteria to be a dirserver?)
 | 
	
		
			
				|  |  |      - some back-out mechanism?
 | 
	
		
			
				|  |  |        - dirservers have blacklist of IPs they hate
 | 
	
	
		
			
				|  | @@ -186,29 +146,28 @@ r   - kill dns workers more slowly
 | 
	
		
			
				|  |  |      - if the binding changes keys, the entry in her datadir will silently
 | 
	
		
			
				|  |  |        get corrected.
 | 
	
		
			
				|  |  |    - packaging and ui stuff:
 | 
	
		
			
				|  |  | -    - multiple sample torrc files (tyranix?)
 | 
	
		
			
				|  |  | +    . multiple sample torrc files
 | 
	
		
			
				|  |  |      - uninstallers
 | 
	
		
			
				|  |  |        . for os x
 | 
	
		
			
				|  |  | -    - something, anything, for sys tray on Windows.
 | 
	
		
			
				|  |  | -    - figure out how to make nt service stuff work?
 | 
	
		
			
				|  |  | +    . something, anything, for sys tray on Windows.
 | 
	
		
			
				|  |  | +    . figure out how to make nt service stuff work?
 | 
	
		
			
				|  |  |        . Document it.
 | 
	
		
			
				|  |  | -    - Simple logic to estimate number of active/total users
 | 
	
		
			
				|  |  | -    - Add version number to directory.
 | 
	
		
			
				|  |  | +    . Add version number to directory.
 | 
	
		
			
				|  |  |  N   - Vet all pending installer patches
 | 
	
		
			
				|  |  |        - Win32 installer plus privoxy, sockscap/freecap, etc.
 | 
	
		
			
				|  |  |        - Vet win32 systray helper code
 | 
	
		
			
				|  |  | -N  . Make logs go into platform default locations.
 | 
	
		
			
				|  |  | -     o OSX
 | 
	
		
			
				|  |  | -     - Windows. (?)
 | 
	
		
			
				|  |  | +  o Make logs go into platform default locations.
 | 
	
		
			
				|  |  | +    o OSX
 | 
	
		
			
				|  |  | +    X Windows. (?)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Reach (deferrable) items for 0.1.1.x:
 | 
	
		
			
				|  |  |    - Start using create-fast cells as clients
 | 
	
		
			
				|  |  | -  - Let more config options (e.g. ORPort) change dynamically.
 | 
	
		
			
				|  |  | +  o Let more config options (e.g. ORPort) change dynamically.
 | 
	
		
			
				|  |  |    - start handling server descriptors without a socksport?
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  For 0.1.1.x, if we can figure out how:
 | 
	
		
			
				|  |  |    - rewrite how libevent does select() on win32 so it's not so very slow.
 | 
	
		
			
				|  |  | -  - enclaves (at least preliminary)
 | 
	
		
			
				|  |  | +  o enclaves (at least preliminary)
 | 
	
		
			
				|  |  |    - Write limiting; separate token bucket for write
 | 
	
		
			
				|  |  |    - Audit everything to make sure rend and intro points are just as likely to
 | 
	
		
			
				|  |  |      be us as not.
 | 
	
	
		
			
				|  | @@ -223,7 +182,7 @@ Future version:
 | 
	
		
			
				|  |  |    - Hold-open-until-flushed now works by accident; it should work by
 | 
	
		
			
				|  |  |      design.
 | 
	
		
			
				|  |  |    - DoS protection: TLS puzzles, public key ops, bandwidth exhaustion.
 | 
	
		
			
				|  |  | -   - Specify?
 | 
	
		
			
				|  |  | +    - Specify?
 | 
	
		
			
				|  |  |    - tor-resolve script should use socks5 to get better error messages.
 | 
	
		
			
				|  |  |    - make min uptime a function of the available choices (say, choose 60th
 | 
	
		
			
				|  |  |      percentile, not 1 day.)
 |