|
@@ -24,10 +24,10 @@ Things we'd like to do in 0.2.0.x:
|
|
|
o Support for preconfigured mirror lists
|
|
|
o Use a pre-shipped fallback consensus.
|
|
|
o Code to install a pre-defined fallback consensus
|
|
|
- . Download consensuses (et al) via if-modified-since
|
|
|
+ o Download consensuses (et al) via if-modified-since
|
|
|
o Implement backend support for sending if-modified-since
|
|
|
o Use it for consensuses.
|
|
|
- - Use it for certificates
|
|
|
+ D Use it for certificates
|
|
|
o base Guard flag on WFU rather than on MTBF.
|
|
|
o Change guard calculation
|
|
|
o Change dir-spec.txt
|
|
@@ -57,6 +57,7 @@ Things we'd like to do in 0.2.0.x:
|
|
|
and send netinfo and be "open".
|
|
|
o On netinfo, warn if there's skew from a server.
|
|
|
- Learn our outgoing IP address from netinfo cells?
|
|
|
+ - Earliest stages of 110 (infinite-length) in v2 protocol.
|
|
|
- TLS only
|
|
|
- Need to get a finished TLS normalization proposal
|
|
|
- Revised authentication.
|
|
@@ -108,16 +109,16 @@ Things we'd like to do in 0.2.0.x:
|
|
|
of their first test, and then never seeing use.
|
|
|
|
|
|
- Proposals:
|
|
|
- . 101: Voting on the Tor Directory System (plus 103)
|
|
|
- - Handle badly timed certificates properly.
|
|
|
- . Start caching consensus documents once authorities make them;
|
|
|
+ o 101: Voting on the Tor Directory System (plus 103)
|
|
|
+ o Handle badly timed certificates properly.
|
|
|
+ o Start caching consensus documents once authorities make them;
|
|
|
start downloading consensus documents once caches serve
|
|
|
them
|
|
|
o Code to delay next download while fetching certificates to verify
|
|
|
a consensus we already got.
|
|
|
o Code to retry consensus download if we got one we already have.
|
|
|
- - Use if-modified-since on consensus download
|
|
|
- - Use if-modified-since on certificate download
|
|
|
+ D Use if-modified-since on consensus download
|
|
|
+ o Use if-modified-since on certificate download
|
|
|
- Controller support
|
|
|
- GETINFO to get consensus
|
|
|
- Event when new consensus arrives
|
|
@@ -140,7 +141,7 @@ Things we'd like to do in 0.2.0.x:
|
|
|
o Do TLS rotation less often than "every 10 minutes" in the thrashy case.
|
|
|
D Do TLS connection rotation more often than "once a week" in the
|
|
|
extra-stable case.
|
|
|
- - Streamline how we pick entry nodes: Make choose_random_entry() have
|
|
|
+ D Streamline how we pick entry nodes: Make choose_random_entry() have
|
|
|
less magic and less control logic.
|
|
|
- Refactor networkstatus generation:
|
|
|
- Include "v" line in getinfo values.
|
|
@@ -185,28 +186,27 @@ R - drop 'authority' queries if they're to our own identity key; accept
|
|
|
- Make BEGIN_DIR mandatory for asking questions of bridge authorities?
|
|
|
|
|
|
- Features (other than bridges):
|
|
|
- - Blocking-resistance.
|
|
|
- - Write a proposal; make this part of 105.
|
|
|
- Audit how much RAM we're using for buffers and cell pools; try to
|
|
|
trim down a lot.
|
|
|
- Base relative control socket paths on datadir.
|
|
|
- - We should ship with a list of stable dir mirrors -- they're not
|
|
|
+ o We should ship with a list of stable dir mirrors -- they're not
|
|
|
trusted like the authorities, but they'll provide more robustness
|
|
|
and diversity for bootstrapping clients.
|
|
|
- - Implement this as a list of routerstatus, like fake_routerstatus in
|
|
|
+ X Implement this as a list of routerstatus, like fake_routerstatus in
|
|
|
trusted_dir_derver_t?
|
|
|
- - Better estimates in the directory of whether servers have good uptime
|
|
|
+ o Implemented as a fallback networkstatus consensus.
|
|
|
+ o Better estimates in the directory of whether servers have good uptime
|
|
|
(high expected time to failure) or good guard qualities (high
|
|
|
fractional uptime).
|
|
|
- - AKA Track uptime as %-of-time-up, as well as time-since-last-down
|
|
|
+ o AKA Track uptime as %-of-time-up, as well as time-since-last-down
|
|
|
o Implement tracking
|
|
|
- - Make uptime info persist too.
|
|
|
- - Base Guard on weighted fractional uptime.
|
|
|
+ o Make uptime info persist too.
|
|
|
+ o Base Guard on weighted fractional uptime.
|
|
|
- Make TrackHostExits expire TrackHostExitsExpire seconds after their
|
|
|
*last* use, not their *first* use.
|
|
|
- Limit to 2 dir, 2 OR, N SOCKS connections per IP.
|
|
|
- - Or maybe close connections from same IP when we get a lot from one.
|
|
|
- - Or maybe block IPs that connect too many times at once.
|
|
|
+ - Or maybe close connections from same IP when we get a lot from one.
|
|
|
+ - Or maybe block IPs that connect too many times at once.
|
|
|
- add an AuthDirBadexit torrc option if we decide we want one.
|
|
|
|
|
|
- Testing
|
|
@@ -241,11 +241,15 @@ P - create a "make win32-bundle" for vidalia-privoxy-tor-torbutton
|
|
|
bundle
|
|
|
|
|
|
Nice-to-have items for 0.2.0.x, time permitting:
|
|
|
+ - Low-priority bugs:
|
|
|
+ - we try to build 4 test circuits to break them over different
|
|
|
+ servers. but sometimes our entry node is the same for multiple
|
|
|
+ test circuits. this defeats the point.
|
|
|
+
|
|
|
+Deferred from 0.2.0.x:
|
|
|
- Proposals
|
|
|
- 113: Simplifying directory authority administration
|
|
|
- 110: prevent infinite-length circuits (phase one)
|
|
|
- . Robust decentralized storage for hidden service descriptors.
|
|
|
- (Karsten is working on this; proposal 114.)
|
|
|
- 118: Listen on and advertise multiple ports:
|
|
|
- Tor should be able to have a pool of outgoing IP addresses that it is
|
|
|
able to rotate through. (maybe. Possible overlap with proposal 118.)
|
|
@@ -258,7 +262,6 @@ Nice-to-have items for 0.2.0.x, time permitting:
|
|
|
- Most address variables need to become tor_addr_t
|
|
|
- Teach resolving code how to handle ipv6.
|
|
|
- Teach exit policies about ipv6 (consider ipv4/ipv6 interaction!)
|
|
|
-
|
|
|
- Features
|
|
|
- Let controller set router flags for authority to transmit, and for
|
|
|
client to use.
|
|
@@ -267,35 +270,16 @@ Nice-to-have items for 0.2.0.x, time permitting:
|
|
|
- Clients should estimate their skew as median of skew from servers
|
|
|
over last N seconds.
|
|
|
- More work on AvoidDiskWrites?
|
|
|
-
|
|
|
+ - Features
|
|
|
+ - Make a TCP DNSPort
|
|
|
- Protocol work
|
|
|
- MAYBE kill stalled circuits rather than stalled connections. This is
|
|
|
possible thanks to cell queues, but we need to consider the anonymity
|
|
|
implications.
|
|
|
- Implement TLS shutdown properly when possible.
|
|
|
-
|
|
|
- - Low-priority bugs:
|
|
|
- - we try to build 4 test circuits to break them over different
|
|
|
- servers. but sometimes our entry node is the same for multiple
|
|
|
- test circuits. this defeats the point.
|
|
|
+ - Bugs
|
|
|
- If the client's clock is too far in the past, it will drop (or just not
|
|
|
try to get) descriptors, so it'll never build circuits.
|
|
|
-
|
|
|
- - Refactoring:
|
|
|
- - Move all status info out of routerinfo into local_routerstatus. Make
|
|
|
- "who can change what" in local_routerstatus explicit. Make
|
|
|
- local_routerstatus (or equivalent) subsume all places to go for "what
|
|
|
- router is this?"
|
|
|
-
|
|
|
- - Build:
|
|
|
- - Detect correct version of libraries from autoconf script.
|
|
|
-
|
|
|
- - Documentation:
|
|
|
- - Review torrc.sample to make it more discursive.
|
|
|
-
|
|
|
-Deferred from 0.2.0.x:
|
|
|
- - Features
|
|
|
- - Make a TCP DNSPort
|
|
|
- Refactoring
|
|
|
- Make resolves no longer use edge_connection_t unless they are actually
|
|
|
_on_ a socks connection: have edge_connection_t and (say)
|
|
@@ -303,6 +287,10 @@ Deferred from 0.2.0.x:
|
|
|
n_streams both be linked lists of edge_stream_t.
|
|
|
- Generate torrc.{complete|sample}.in, tor.1.in, the HTML manual, and the
|
|
|
online config documentation from a single source.
|
|
|
+ - Move all status info out of routerinfo into local_routerstatus. Make
|
|
|
+ "who can change what" in local_routerstatus explicit. Make
|
|
|
+ local_routerstatus (or equivalent) subsume all places to go for "what
|
|
|
+ router is this?"
|
|
|
- Blocking/scanning-resistance
|
|
|
- It would be potentially helpful to https requests on the OR port by
|
|
|
acting like an HTTPS server.
|
|
@@ -313,6 +301,8 @@ Deferred from 0.2.0.x:
|
|
|
descriptors we have.
|
|
|
- Some mechanism for specifying that we want to stop using a cached
|
|
|
bridge.
|
|
|
+ - Build:
|
|
|
+ - Detect correct version of libraries from autoconf script.
|
|
|
|
|
|
|
|
|
Future versions:
|