|
@@ -25,8 +25,6 @@ Items for 0.1.2.x, real soon now:
|
|
|
- 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.
|
|
|
- when we start, remove any entryguards that are listed in excludenodes.
|
|
|
- o start calling dev releases 0.1.2.1-alpha-dev, not -cvs. Do we need
|
|
|
- to change the code in any way for this? Appears to be "no".
|
|
|
- Remember the last time we saw one of our entry guards labelled with
|
|
|
the GUARD flag. If it's been too long, it is not suitable for use.
|
|
|
If it's been really too long, remove it from the list.
|
|
@@ -44,9 +42,10 @@ N - Clients stop dumping old descriptors if the network-statuses
|
|
|
- We need a separate list of "hidserv authorities" if we want to
|
|
|
retire moria1 from the main list.
|
|
|
|
|
|
-Items for 0.1.2.x, later on:
|
|
|
+Items for 0.1.2.x:
|
|
|
o re-enable blossom functionality: let tor servers decide if they
|
|
|
will use local search when resolving, or not.
|
|
|
+ - Document it.
|
|
|
- enumerate events of important things that occur in tor, so vidalia can
|
|
|
react.
|
|
|
- We should ship with a list of stable dir mirrors -- they're not
|
|
@@ -55,11 +54,6 @@ Items for 0.1.2.x, later on:
|
|
|
- Servers are easy to setup and run: being a relay is about as easy as
|
|
|
being a client.
|
|
|
- Reduce resource load
|
|
|
- - look into "uncounting" bytes spent on local connections. so
|
|
|
- we can bandwidthrate but still have fast downloads.
|
|
|
- - Write limiting; separate token bucket for write
|
|
|
- o dir answers include a your-ip-address-is header, so we can
|
|
|
- break our dependency on dyndns.
|
|
|
- Come up with good 'nicknames' automatically, or make no-nickname
|
|
|
routers workable.
|
|
|
- tolerate clock skew on bridge relays.
|
|
@@ -70,46 +64,19 @@ Items for 0.1.2.x, later on:
|
|
|
- option to dl directory info via tor
|
|
|
- is the __AllDirActionsPrivate config option sufficient?
|
|
|
D Count TLS bandwidth more accurately
|
|
|
- - Write-limit directory responses (need to research)
|
|
|
-N . Improve memory usage on tight-memory machines.
|
|
|
- . Directory-related fixes.
|
|
|
- . Mmap cache files where possible.
|
|
|
- o Mmap cached-routers file; when building it, go oldest-to-newest.
|
|
|
- - More unit tests and asserts for cached-routers file: ensure digest
|
|
|
- for the right router. Verify dl by digest, fp, etc.
|
|
|
- o Make sure cached-routers values and offsets are correct in the
|
|
|
- presence of windows FS insanity.
|
|
|
- D Save and mmap v1 directories, and networkstatus docs; store them
|
|
|
- zipped, not uncompressed.
|
|
|
- D Switch cached_router_t to use mmap.
|
|
|
- D What to do about reference counts on windows?
|
|
|
- (On Unix, this is easy: unlink works fine. (Right?) On
|
|
|
- Windows, I have doubts. Do we need to keep multiple files?)
|
|
|
- D What do we do about the fact that people can't read zlib-
|
|
|
- compressed files manually?
|
|
|
- - Look into pulling serverdescs off buffers as they arrive.
|
|
|
+ - Improvements to bandwidth counting
|
|
|
+ - look into "uncounting" bytes spent on local connections, so
|
|
|
+ we can bandwidthrate but still have fast downloads.
|
|
|
+ - "bandwidth classes", for incoming vs initiated-here conns.
|
|
|
+ - Write limiting; separate token bucket for write
|
|
|
+ - Write-limit directory responses (need to research)
|
|
|
|
|
|
- - "bandwidth classes", for incoming vs initiated-here conns.
|
|
|
- o Asynchronous DNS
|
|
|
- o And test it
|
|
|
- . Make it work on windows.
|
|
|
- o Implement
|
|
|
- . Enable
|
|
|
- - Test
|
|
|
- X Make the Nameservers option documented, and make it work right on
|
|
|
- reload.
|
|
|
- o Fail when we have no configured nameservers!
|
|
|
- o Make it the default on platforms where it works.
|
|
|
+ . Asynchronous DNS
|
|
|
- Document SearchDomains, ResolvConf options
|
|
|
- o Make resolv.conf (or local equivalent) get checked on reload,
|
|
|
- settable while running, etc.
|
|
|
- - Add ipv6 support; make API closer to getaddrinfo(). (i.e., allow a
|
|
|
- single AAAA/A query, return cname as well)
|
|
|
+ - Make API closer to getaddrinfo()
|
|
|
- Teach it to be able to listen for A and PTR requests to be processed.
|
|
|
Interface should be set_request_listener(sock, cb); [ cb(request) ]
|
|
|
send_reply(request, answer);.
|
|
|
- - Refactor exit side of resolve: do we need a connection_t?
|
|
|
- - Refactor entry side of resolve: do we need a connection_t?
|
|
|
|
|
|
- Directory guards
|
|
|
|
|
@@ -133,21 +100,7 @@ N . Improve memory usage on tight-memory machines.
|
|
|
|
|
|
- A more efficient dir protocol.
|
|
|
- Later, servers will stop generating new descriptors simply
|
|
|
- because 18 hours have passed.
|
|
|
- - Authorities should fetch the network-statuses amongst each
|
|
|
- other, consensus them, and advertise a communal network-status.
|
|
|
- This is not so much for safety/complexity as it is to reduce
|
|
|
- bandwidth requirements for Alice.
|
|
|
- - How does this interact with our goal of being able to choose
|
|
|
- your own dir authorities? I guess we're now assuming that all
|
|
|
- dir authorities know all the other authorities in their "group"?
|
|
|
- - Should we also look into a "delta since last network-status
|
|
|
- checkpoint" scheme, to reduce overhead further?
|
|
|
- D Extend the "r" line in network-status to give a set of buckets (say,
|
|
|
- comma-separated) for that router.
|
|
|
- - Buckets are deterministic based on IP address.
|
|
|
- - Then clients can choose a bucket (or set of buckets) to
|
|
|
- download and use.
|
|
|
+ because 18 hours have passed: we must start tolerating this now.
|
|
|
|
|
|
- Critical but minor bugs, backport candidates.
|
|
|
- Failed rend desc fetches sometimes don't get retried. True/false?
|
|
@@ -175,14 +128,6 @@ N . Improve memory usage on tight-memory machines.
|
|
|
M - rewrite how libevent does select() on win32 so it's not so very slow.
|
|
|
- Add overlapped IO
|
|
|
|
|
|
-N - When we connect to a Tor server, it sends back a cell listing
|
|
|
- the IP it believes it is using. Use this to block dvorak's attack.
|
|
|
- Also, this is a fine time to say what time you think it is.
|
|
|
- o Verify that a new cell type is okay with deployed codebase
|
|
|
- . Specify HELLO cells
|
|
|
- . Figure out v0 compatibility.
|
|
|
- - Implement
|
|
|
-
|
|
|
N - Exitlist should avoid outputting the same IP address twice.
|
|
|
|
|
|
N - Write path-spec.txt
|
|
@@ -190,6 +135,7 @@ N - Write path-spec.txt
|
|
|
- Packaging
|
|
|
- Tell people about OSX Uninstaller
|
|
|
- Quietly document NT Service options
|
|
|
+ - Switch canonical win32 compiler to mingw.
|
|
|
|
|
|
- Docs
|
|
|
- More prominently, we should have a recommended apps list.
|
|
@@ -204,15 +150,59 @@ Topics to think about during 0.1.2.x development:
|
|
|
* Figure out China.
|
|
|
- Figure out partial network knowledge.
|
|
|
- Figure out hidden services.
|
|
|
+ - Design next-version protocol for directories
|
|
|
+ - Design next-version protocol for connections
|
|
|
+
|
|
|
+Deferred from 0.1.2.x:
|
|
|
+ - Memory use improvements:
|
|
|
+ - Look into pulling serverdescs off buffers as they arrive.
|
|
|
+ - Save and mmap v1 directories, and networkstatus docs; store them
|
|
|
+ zipped, not uncompressed.
|
|
|
+ - Switch cached_router_t to use mmap.
|
|
|
+ - What to do about reference counts on windows? (On Unix, this is
|
|
|
+ easy: unlink works fine. (Right?) On Windows, I have doubts. Do we
|
|
|
+ need to keep multiple files?)
|
|
|
+ - What do we do about the fact that people can't read zlib-
|
|
|
+ compressed files manually?
|
|
|
+
|
|
|
+ - Add IPv6 support to eventdns.c
|
|
|
+
|
|
|
+ - Refactor DNS resolve implementation
|
|
|
+ - Refactor exit side of resolve: do we need a connection_t?
|
|
|
+ - Refactor entry side of resolve: do we need a connection_t?
|
|
|
+
|
|
|
+ - A more efficient dir protocol.
|
|
|
+ - Authorities should fetch the network-statuses amongst each
|
|
|
+ other, consensus them, and advertise a communal network-status.
|
|
|
+ This is not so much for safety/complexity as it is to reduce
|
|
|
+ bandwidth requirements for Alice.
|
|
|
+ - How does this interact with our goal of being able to choose
|
|
|
+ your own dir authorities? I guess we're now assuming that all
|
|
|
+ dir authorities know all the other authorities in their "group"?
|
|
|
+ - Should we also look into a "delta since last network-status
|
|
|
+ checkpoint" scheme, to reduce overhead further?
|
|
|
+ - Extend the "r" line in network-status to give a set of buckets (say,
|
|
|
+ comma-separated) for that router.
|
|
|
+ - Buckets are deterministic based on IP address.
|
|
|
+ - Then clients can choose a bucket (or set of buckets) to
|
|
|
+ download and use.
|
|
|
+
|
|
|
+ - Improvements to versioning.
|
|
|
+ - When we connect to a Tor server, it sends back a cell listing
|
|
|
+ the IP it believes it is using. Use this to block dvorak's attack.
|
|
|
+ Also, this is a fine time to say what time you think it is.
|
|
|
+ o Verify that a new cell type is okay with deployed codebase
|
|
|
+ . Specify HELLO cells
|
|
|
+ . Figure out v0 compatibility.
|
|
|
+ - Implement
|
|
|
|
|
|
-Minor items for 0.1.2.x as time permits.
|
|
|
+Minor items for 0.1.2.x as time permits:
|
|
|
- If we try to publish as a nickname that's already claimed, should
|
|
|
we append a number (or increment the number) and try again? This
|
|
|
way people who read their logs can fix it as before, but people
|
|
|
who don't read their logs will still offer Tor servers.
|
|
|
- Tor should bind its ports before dropping privs, so users don't
|
|
|
have to do the ipchains dance.
|
|
|
- o Make --verify-config return a useful error code.
|
|
|
- Rate limit exit connections to a given destination -- this helps
|
|
|
us play nice with websites when Tor users want to crawl them; it
|
|
|
also introduces DoS opportunities.
|
|
@@ -235,7 +225,7 @@ Minor items for 0.1.2.x as time permits.
|
|
|
people can notice too.
|
|
|
- cpu fixes:
|
|
|
- see if we should make use of truncate to retry
|
|
|
- - kill dns workers more slowly
|
|
|
+ X kill dns workers more slowly
|
|
|
. Directory changes
|
|
|
. Some back-out mechanism for auto-approval
|
|
|
- a way of rolling back approvals to before a timestamp
|