aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2003-03-17 23:19:25 +0000
committerRoger Dingledine <arma@torproject.org>2003-03-17 23:19:25 +0000
commit0ff1d28faecf2508ec7609be4a163cdd96f0329b (patch)
treea8c9e634542a4d3b0fbab494c453b3bc41bef8cf
parent4ad74c2141db709ff3c59e0547999f25a68efeae (diff)
downloadtor-0ff1d28faecf2508ec7609be4a163cdd96f0329b.tar.gz
tor-0ff1d28faecf2508ec7609be4a163cdd96f0329b.zip
same todo file as before, just moving to doc/
svn:r189
-rw-r--r--doc/TODO117
1 files changed, 117 insertions, 0 deletions
diff --git a/doc/TODO b/doc/TODO
new file mode 100644
index 0000000000..5b11ee8398
--- /dev/null
+++ b/doc/TODO
@@ -0,0 +1,117 @@
+
+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
+