|
@@ -1,13 +1,25 @@
|
|
|
Changes in version 0.2.0.8-alpha - 2007-10-12
|
|
|
+ o Major features (router descriptor cache):
|
|
|
+ - Store routers in a file called cached-descriptors instead of in
|
|
|
+ cached-routers. Initialize cached-descriptors from cached-routers
|
|
|
+ if the old format is around. The new format allows us to store
|
|
|
+ annotations along with descriptors.
|
|
|
+ - Use annotations to record the time we received each descriptor.
|
|
|
+ - Use annotations to record the source for each descriptor.
|
|
|
+ - Use annotations to record the purpose of each descriptor.
|
|
|
+ - Bridge authorities now write bridge descriptors to disk, meaning
|
|
|
+ we can export them to other programs and begin distributing them
|
|
|
+ to blocked users.
|
|
|
+
|
|
|
o Major features (directory authorities):
|
|
|
- - When an authority is missing votes or signatures, it now tries to fetch
|
|
|
- them.
|
|
|
+ - When a v3 authority is missing votes or signatures, it now tries
|
|
|
+ to fetch them.
|
|
|
- Directory authorities track weighted fractional uptime as well as
|
|
|
weighted mean-time-between failures. WFU is suitable for deciding
|
|
|
whether a node is "usually up", while MTBF is suitable for deciding
|
|
|
- whether a node is "likely to stay up." We need both, because "usually
|
|
|
- up" is a good requirement for guards, while "likely to stay up" is
|
|
|
- a good requirement for long-lived connections.
|
|
|
+ whether a node is "likely to stay up." We need both, because
|
|
|
+ "usually up" is a good requirement for guards, while "likely to
|
|
|
+ stay up" is a good requirement for long-lived connections.
|
|
|
|
|
|
o Major features (v3 directory system):
|
|
|
- Caches now download v3 network status documents as needed.
|
|
@@ -16,51 +28,43 @@ Changes in version 0.2.0.8-alpha - 2007-10-12
|
|
|
- All hosts now attempt to download and keep fresh v3 authority
|
|
|
certificates, and re-attempt after failures.
|
|
|
|
|
|
- o Minor features (router descriptor cache):
|
|
|
- - Store routers in a file called cached-descriptors instead of in
|
|
|
- cached-routers. Initialize cached-descriptors from cached-routers
|
|
|
- if the old format is around. The new format allows us to store
|
|
|
- annotations along with descriptors.
|
|
|
- - Use annotations to record the time we received each descriptor.
|
|
|
- - Use annotations to record the source for each descriptor.
|
|
|
- - Use annotations to record the purpose of each descriptor.
|
|
|
+ o Major bugfixes (performance):
|
|
|
+ - Fix really bad O(n^2) performance when parsing a long list of
|
|
|
+ routers: Instead of searching the entire list for an "extra-info "
|
|
|
+ string which usually wasn't there, once for every routerinfo
|
|
|
+ we read, just scan lines forward until we find one we like.
|
|
|
+ Bugfix on 0.2.0.1.
|
|
|
|
|
|
o Minor features (v3 authority system):
|
|
|
- - Add more ways for tools to download the votes that lead to the current
|
|
|
- consensus.
|
|
|
- - Caches now download v3 network status documents as needed.
|
|
|
- - Send a 503 when low on bandwidth and a vote, consensus, or certificate
|
|
|
- is requested.
|
|
|
+ - Add more ways for tools to download the votes that lead to the
|
|
|
+ current consensus.
|
|
|
+ - Send a 503 when low on bandwidth and a vote, consensus, or
|
|
|
+ certificate is requested.
|
|
|
- If-modified-since is now implemented properly for all kinds of
|
|
|
certificate requests.
|
|
|
|
|
|
- o Minor features (network statuses):
|
|
|
+ o Minor bugfixes (network statuses):
|
|
|
- Tweak the implementation of proposal 109 slightly: allow at most
|
|
|
two Tor servers on the same IP address, except if it's the location
|
|
|
- of a directory authority, in which case allow five.
|
|
|
-
|
|
|
- o Major bugfixes (performance):
|
|
|
- - Fix really bad O(n^2) performance when parsing a long list of routers:
|
|
|
- Instead of searching the entire list for an "extra-info " string which
|
|
|
- usually wasn't there, once for every routerinfo we read, just scan
|
|
|
- lines forward until we find one we like. Bugfix on 0.2.0.1.
|
|
|
+ of a directory authority, in which case allow five. Bugfix on
|
|
|
+ 0.2.0.3-alpha.
|
|
|
|
|
|
o Minor bugfixes (controller):
|
|
|
- When sending a status event to the controller telling it that an
|
|
|
- OR address is readable, set the port correctly. (Previously we
|
|
|
- were reporting the dir port.) Bugfix on 0.1.2.x.
|
|
|
+ OR address is readable, set the port correctly. (Previously we
|
|
|
+ were reporting the dir port.) Bugfix on 0.1.2.x.
|
|
|
|
|
|
o Minor bugfixes (v3 directory code):
|
|
|
- - Fix logic to look up a cert by its signing key digest. Bugfix on
|
|
|
+ - Fix logic to look up a cert by its signing key digest. Bugfix on
|
|
|
0.2.0.7-alpha.
|
|
|
- - Only change the reply to a vote to "OK" if it's not already set. This
|
|
|
- gets rid of annoying "400 OK" log messages, which may have been masking
|
|
|
- some deeper issue. Bugfix on 0.2.0.7-alpha.
|
|
|
+ - Only change the reply to a vote to "OK" if it's not already
|
|
|
+ set. This gets rid of annoying "400 OK" log messages, which may
|
|
|
+ have been masking some deeper issue. Bugfix on 0.2.0.7-alpha.
|
|
|
- When we get a valid consensus, recompute the voting schedule.
|
|
|
- - Base the valid-after time of a vote on the consensus voting schedule,
|
|
|
- not on our preferred schedule.
|
|
|
- - Make the return values and messages from signature uploads and downloads
|
|
|
- more sensible.
|
|
|
+ - Base the valid-after time of a vote on the consensus voting
|
|
|
+ schedule, not on our preferred schedule.
|
|
|
+ - Make the return values and messages from signature uploads and
|
|
|
+ downloads more sensible.
|
|
|
- Fix a memory leak when serving votes and consensus documents, and
|
|
|
another when serving certificates.
|
|
|
|
|
@@ -81,8 +85,8 @@ Changes in version 0.2.0.8-alpha - 2007-10-12
|
|
|
|
|
|
o Minor bugfixes (Security):
|
|
|
- Never report that we've used more bandwidth than we're willing to
|
|
|
- relay: it leaks how much non-relay traffic we're using. Resolves bug
|
|
|
- 516.
|
|
|
+ relay: it leaks how much non-relay traffic we're using. Resolves
|
|
|
+ bug 516.
|
|
|
|
|
|
o Code simplifications and refactoring:
|
|
|
- Make a bunch of functions static. Remove some dead code.
|
|
@@ -91,13 +95,15 @@ Changes in version 0.2.0.8-alpha - 2007-10-12
|
|
|
- Merge the extra fields in local_routerstatus_t back into
|
|
|
routerstatus_t: we used to need one routerstatus_t for each
|
|
|
authority's opinion, plus a local_routerstatus_t for the locally
|
|
|
- computed consensus opinion. To save space, we put the locally
|
|
|
- modified fields into local_routerstatus_t, and only the common stuff
|
|
|
- into routerstatus_t. But once v3 directories are in use, clients and
|
|
|
- caches will no longer need to hold authority opinions; thus, the
|
|
|
- rationale for keeping the types separate is now gone.
|
|
|
- - Make the code used to reschedule and reattempt downloads more uniform.
|
|
|
- - Turn all 'Are we a directory?' logic into a call to dirserver_mode().
|
|
|
+ computed consensus opinion. To save space, we put the locally
|
|
|
+ modified fields into local_routerstatus_t, and only the common
|
|
|
+ stuff into routerstatus_t. But once v3 directories are in use,
|
|
|
+ clients and caches will no longer need to hold authority opinions;
|
|
|
+ thus, the rationale for keeping the types separate is now gone.
|
|
|
+ - Make the code used to reschedule and reattempt downloads more
|
|
|
+ uniform.
|
|
|
+ - Turn all 'Are we a directory server/mirror?' logic into a call to
|
|
|
+ dirserver_mode().
|
|
|
|
|
|
|
|
|
Changes in version 0.2.0.7-alpha - 2007-09-21
|