aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2007-08-13 18:47:17 +0000
committerNick Mathewson <nickm@torproject.org>2007-08-13 18:47:17 +0000
commitf3e9dceaa97ad361db708dcbb4f91771d0adf0dc (patch)
tree1ac9f68eff1ec8f193699fd4ed9063d8cc5920f7 /doc
parent629478db6844ecb698409e4abd27c2083b25259d (diff)
downloadtor-f3e9dceaa97ad361db708dcbb4f91771d0adf0dc.tar
tor-f3e9dceaa97ad361db708dcbb4f91771d0adf0dc.tar.gz
r14530@catbus: nickm | 2007-08-13 14:32:37 -0400
Prune some completed items from the TODO svn:r11085
Diffstat (limited to 'doc')
-rw-r--r--doc/TODO100
1 files changed, 7 insertions, 93 deletions
diff --git a/doc/TODO b/doc/TODO
index ace1a8bcc..238946f3d 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -82,71 +82,31 @@ Things we'd like to do in 0.2.0.x:
the existing one into dir-spec-v2.txt.
* Describe schedule in copious detail.
- Get authorities voting
- o Implement parsing for new document formats
- o Parse key certificates
- o Parse votes and consensuses
- o Unit tests for above
. Code to manage key certificates
- o Generate certificates
- o Authorities load certificates
- o Clients cache certificates on disk
- o Learn new ones when they show up in votes.
- o Forget ones that are very old.
- Download as needed.
- o Actually invoke trusted_dirs_flush_certs_to_disk()
- Serve list as needed.
o Avoid double-checking signatures every time we get a vote.
- Warn about expired stuff.
- Fix all XXXX020s in vote code
- o Code to generate votes
- o Code to generate consensus from a list of votes
+ . Code to generate consensus from a list of votes
* Detect whether votes are really all for the same period.
- o Add a signature to a consensus.
- * Unit tests for detached signatures and signature manipulation.
- o Code to check signatures on a consensus
- Push/pull documents as appropriate.
- o Push vote on voting
- o Push vote
- o Process vote when received
- o Even if we get it before we start voting ourself.
- o Push signature on forming consensus.
- o Push signature
- o Add signatures when received
- o Queue received signatures before consensus is ready
- o When consensus is ready, use queued signatures.
- Pull votes and signatures if we don't get them.
- o Serve consensuses.
- Store consensuses
- Cache votes and signatures on disk.
- o Discard votes in advance of next voting period.
o Have clients know which authorities are v3 authorities, and what
their keys are.
- While we're at it, let v3 authorities have fqdns lines.
- Start caching consensus documents once authorities make them
- Start downloading and using consensus documents once caches serve them
. 104: Long and Short Router Descriptors
- . Finalize proposal
- o Implement parsing for extra-info documents
- o Have routers generate extra-info documents.
- o Have have authorities accept them and serve them from specified URLs
- o Implement directory-protocol side.
- o Implement storage in memory
- o Implement cache on disk.
- o Have routers upload extra-info documents to authorities running
- version 0.2.0.0-alpha-dev (r10070) or later.
- o Implement, but make it option-controlled.
- o Make it always-on once it seems to work.
- o Implement option to download and cache extra-info documents.
- o Improve the 'retry' logic on extra-info documents.
+ . Merge proposal
- Drop bandwidth history from router-descriptors
- 105: Version negotiation for the Tor protocol
- 108: Base "Stable" Flag on Mean Time Between Failures
- Track mtbf in rephist.c
- Record mtbf between invocations
- Base stable on mtbf.
- o 109: No more than one server per IP address
- o 103: Splitting identity key from regularly used signing key
- o Merge with 101 into a new dir-spec.txt
- 113: Simplifying directory authority administration
- 110: prevent infinite-length circuits (phase one)
- servers should recognize relay_extend cells and pass them
@@ -157,30 +117,10 @@ Things we'd like to do in 0.2.0.x:
dns_request_t both extend an edge_stream_t, and have p_streams and
n_streams both be linked lists of edge_stream_t.
. Make cells get buffered on circuit, not on the or_conn.
- o Implement cell queues
- o Keep doubly-linked list of active circuits on each or_conn.
- o Put all relay data on the circuit cell queue, not on the outbuf.
- o Don't move them into the target conn until there is space on the
- target conn's outbuf.
- o When making a circuit active on a connection with an empty buf,
- we need to "prime" the buffer, so that we can trigger the "I flushed
- some" test.
- X Change how directory-bridge-choking works: choke when circuit queue
- is full, not when the orconn is "too full".
- [No need to do this: the edge-connection choking will already take
- care of this a bit, and rewriting the 'bridged connection' code
- to not use socketpairs will give us even more control.]
- . Do we switch to pool-allocation for cells?
- o Implement pool-allocation
- o Have Tor use it for packed cells.
- o Document it.
- o Do something smart with freeing unused chunks.
+ . Switch to pool-allocation for cells?
- Benchmark pool-allocation vs straightforward malloc.
- Adjust memory allocation logic in pools to favor a little less
slack memory.
- D Can we stop doing so many memcpys on cells?
- o Also, only package data from exitconns when there is space on the
- target OR conn's outbuf? or when the circuit is not too full.
- MAYBE kill stalled circuits rather than stalled connections; consider
anonymity implications.
- Move all status info out of routerinfo into local_routerstatus. Make
@@ -189,29 +129,9 @@ Things we'd like to do in 0.2.0.x:
router is this?"
. Remove socketpair-based bridges conns, and the word "bridge". (Use
shared (or connected) buffers for communication, rather than sockets.)
- o Design
- o Pick a term. The term is now "linked connection."
- o Figure out how to ensure that handle_read is always called.
- (Use event_active; keep active events in a list; use event_once
- to make sure that we call the event base dispatch function enough.)
. Implement
- o Count connections and sockets separately
- . Allow connections with s == -1
- o Add a linked_conn field; it should get marked when we're marked.
- o Add a function to move bytes from buffer to buffer.
- o Have read_to_buf dtrt for linked connections
- o Have handle_read dtrt for linked connections
- o Have an activate/deactivate_linked_connection function.
- o Have activated connections added to a list on first activation, and
- that list made active before calls to event_loop.
- o Have connections get deactivated when no more data to write on
- linked conn outbuf.
- o Handle closing connections properly.
- o Actually create and use linked connections.
- Handle rate-limiting on directory writes to linked directory
connections in a more sensible manner.
- o Rename want_to_read and want_to_write; they're actually about
- being blocked, not about wanting to read/write.
- Find more ways to test this.
D Generate torrc.{complete|sample}.in, tor.1.in, the HTML manual, and the
online config documentation from a single source.
@@ -236,15 +156,8 @@ Things we'd like to do in 0.2.0.x:
- Features:
- Traffic priorities
- Ability to prioritize own traffic over relayed traffic.
- o Implement a DNS proxy
- o Make a listener type.
- o Hook into connection_edge logic.
- o Hook into evdns_server_* logic
- o Actually send back a useful answer.
- o Make it handle .onion and .exit correctly.
- - Document.
- - Handle TCP DNS requests too?
- o Add a way to request DNS resolves from the controller.
+ - DNS Proxy
+ - Document it
- A better UI for authority ops.
- Follow weasel's proposal, crossed with mixminion dir config format
- Write a proposal
@@ -316,7 +229,6 @@ N - Design/implement the "local-status" or something like it, from the
- Accept \n as end of lines in the control protocol in addition to \r\n.
- Base relative control socket paths in datadir.
o Deprecations:
- o Remove v0 control protocol.
- can we deprecate 'getinfo network-status'?
- can we deprecate the FastFirstHopPK config option?
P - Packaging:
@@ -515,6 +427,8 @@ R - add d64 and fp64 along-side d and fp so people can paste status
download directories/network-status, and a way to force a download.
- Make everything work with hidden services
+Deferred from 0.2.0:
+ - Make a TCP DNSPort
Future version:
- servers might check certs for known-good ssl websites, and if they