commit 5ee5103f63324d7cf5f4ff8bd0fc822f1d6507d2 Author: Nick Mathewson nickm@torproject.org Date: Tue May 3 21:33:10 2011 -0400
Initial draft changelog for 0.2.3.1-alpha --- ChangeLog | 132 +++++++++++++++++++++++++++++++++++++++ changes/automake_required | 6 -- changes/autoreconf | 5 -- changes/bufferevent-support | 12 ---- changes/bug1982 | 5 -- changes/bug2444 | 4 - changes/bug2559 | 6 -- changes/bug2573 | 3 - changes/bug2702 | 5 -- changes/bug507.event | 4 - changes/cpudetect | 3 - changes/dirreq-stats-default | 4 - changes/enhancement1668 | 4 - changes/enhancement1819 | 4 - changes/enhancement1883 | 4 - changes/eventdns_routerinfo_key | 4 - changes/feature1955 | 4 - changes/feature2345 | 4 - changes/getinfo_process | 3 - changes/heartbeat | 7 -- changes/install-fix | 3 - changes/microdesc_dl | 4 - changes/nodelist | 10 --- changes/prop174_server | 6 -- changes/tls-hash | 5 -- changes/tor-fw-helper | 14 ---- 26 files changed, 132 insertions(+), 133 deletions(-)
diff --git a/ChangeLog b/ChangeLog index 7e95671..3d779c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,135 @@ +Changes in version 0.2.3.1-alpha - 2011-05-0? + + Tor 0.2.3.1-alpha adds some new experimental features, including support + for an improved network IO backend, IOCP networking on Windows, + microdescriptor caching, "fast-start" support for streams, and automatic + home router configuration. There are also numerous internal improvements + to try to make the code easier for developers to work with. + + o Major features + - Tor can now optionally build with the "bufferevents" buffered IO + backend provided by Libevent 2. To use this feature, make sure you + have the latest possible version of Libevent, and pass the + --enable-bufferevents flag to configure when building Tor from source. + Using this feature will make our networking code more flexible, let us + stack layers on each other, and let us use more efficient zero-copy + transports where available. + - As an experimental feature, Tor can use IOCP for networking on Windows. + Once this code is tuned and optimized, it promises much better + performance than the select-based backend we've used in the past. To + try this feature, you must build Tor with Libevent 2, configure Tor + with the "bufferevents" buffered IO backend, and add "DisableIOCP 0" to + your torrc. There are known bugs here: only try this if you can help + debug it as it breaks. + - The EntryNodes option can now include country codes like {de} or IP + addresses or network masks. Previously we had disallowed these options + because we didn't have an efficient way to keep the list up to + date. Fixes bug 1982. + - Exit nodes now accept and queue data on not-yet-connected streams. + Previously, the client wasn't allowed to send data until the stream was + connected, which slowed down all connections. This change will enable + clients to perform a "fast-start" on streams and send data without + having to wait for a confirmation that the stream has opened. (Patch + from Ian Goldberg; implements the server side of Proposal 174.) + - Tor now has initial support for automatic port mapping on on the many + home routers that support NAT-PMP or UPnP. (Not yet supported on + Windows). To build the support code, you'll need to have libnatpnp + library and/or the libminiupnpc library, and you'll need to enable the + feature specifically by passing "--enable-upnp" and/or + "--enable-natpnp" to configure. To turn it on, use the new + PortForwarding option. + - Caches now download, cache, and sever multiple "flavors" of the + consensus, including a flavor that describes microdescriptors. + - Caches now download, cache, and serve microdescriptors -- small + summaries of router descriptors that are authenticated by all of the + directory authorities. Once enough caches are running this code, + clients will be able to save significant amounts of directory bandwidth + by downloading microdescriptors instead of router descriptors. + + o Minor features: + - Make logging resolution configurable and change default from 1 + millisecond to 1 second. Implements enhancement 1668. + - We log which torrc file we're using on startup. Implements ticket 2444. + - Ordinarily, Tor does not count traffic from private addresses (like + 127.0.0.1 or 10.0.0.1) when calculating rate limits or accounting. + There is now a new option, CountPrivateBandwidth, to disable this + behavior. Patch from Daniel Cagara. + - New --enable-static-tor configure option for building Tor as statically + as possible. Idea, general hackery and thoughts from Alexei Czeskis, + John Gilmore, Jacob Appelbaum. Implements ticket 2702. + - If you set the NumCPUs option to 0, Tor will now try to detect how many + CPUs you have. This is the new default behavior. + - Turn on directory request statistics by default and include them in + extra-info descriptors. Don't break if we have no GeoIP database. + - Relays that set "ConnDirectionStatistics 1" write statistics on the + bidirectional use of connections to disk every 24 hours. + - Add a GeoIP file digest to the extra-info descriptor. Implements + enhancement 1883. + - Add a new 'Heartbeat' log message type to periodically log a message + describing Tor's status at level Notice. This feature is meant for + operators who log at notice, adn want to make sure that their Tor + server is still working. Implementation by George Kadianakis. + + o Minor bugfixes (on 0.2.2.25-alpha): + - When loading the microdesc journal, remember its current size. + In 0.2.2, this helps prevent the microdesc journal from growing + without limit on authorities (who are the only ones to use it in + 0.2.2). Fixes a part of bug 2230; bugfix on 0.2.2.6-alpha. + Fix posted by "cypherpunks." + - The microdesc journal is supposed to get rebuilt only if it is + at least _half_ the length of the store, not _twice_ the length + of the store. Bugfix on 0.2.2.6-alpha; fixes part of bug 2230. + - Authorities now clean their microdesc cache periodically and when + reading from disk initially, not only when adding new descriptors. + This prevents a bug where we could lose microdescriptors. Bugfix + on 0.2.2.6-alpha. + + o Minor features (controller) + - Add a new SIGNAL event to the controller interface so that + controllers can be notified when Tor handles a signal. Resolves + issue 1955. Patch by John Brooks. + - Add a new GETINFO option to get total bytes read and written. Patch + from pipe, revised by atagar. Resolves ticket 2345. + - Implement some GETINFO controller fields to provide information about + the Tor process's pid, euid, username, and resource limits. + + o Build changes + - Our build system requires automake 1.6 or later to create the + Makefile.in files. Previously, you could have used 1.4. + This only affects developers and people building Tor from git; + people who build Tor from the source distribution without changing + the Makefile.am files should be fine. + - Our autogen.sh script uses autoreconf to launch autoconf, automake, and + so on. This is more robust against some of the failure modes + associated with running the autotools pieces on their own. + + o Minor packaging issues: + - On OpenSUSE, create the /var/run/tor directory on startup if it is not + already created. Patch from Andreas Stieger. Fixes bug 2573. + + o Code simplifications and refactoring: + - A major revision to our internal node-selecting and listing logic. + Tor already had at least two major ways to look at the question of + "which Tor servers do we know about": a list of router descriptors, + and a list of entries in the current consensus. With + microdescriptors, we're adding a third. Having so many systems + without an abstraction layer over them was hurting the codebase. + Now, we have a new "node_t" abstraction that presents a consistent + interface to a client's view of a Tor node, and holds (nearly) all + of the mutable state formerly in routerinfo_t and routerstatus_t. + - The helper programs tor-gencert, tor-resolve, and tor-checkkey + no longer link against Libevent: they never used it, but + our library structure used to force them to link it. + + o Removed features: + - Removed some old code to work around even older versions of Tor that + used forked processes to handle DNS requests. Such versions of Tor + are no longer in use as servers. + + o Documentation fixes: + - Correct a broken faq link in the INSTALL file. Fixes bug 2307. + + Changes in version 0.2.2.25-alpha - 2011-04-29 Tor 0.2.2.25-alpha fixes many bugs: hidden service clients are more robust, routers no longer overreport their bandwidth, Win7 should crash diff --git a/changes/automake_required b/changes/automake_required deleted file mode 100644 index bb50355..0000000 --- a/changes/automake_required +++ /dev/null @@ -1,6 +0,0 @@ - o Build changes - - Our build system requires automake 1.6 or later to create the - Makefile.in files. Previously, you could have used 1.4. - This only affects developers and people building Tor from git; - people who build Tor from the source distribution without changing - the Makefile.am files should be fine. diff --git a/changes/autoreconf b/changes/autoreconf deleted file mode 100644 index c08cc7a..0000000 --- a/changes/autoreconf +++ /dev/null @@ -1,5 +0,0 @@ - o Minor build changes: - - Use autoreconf to launch autoconf, automake, etc from autogen.sh. - This is more robust against some of the failure modes associated - with running the autotools chain on its own. - diff --git a/changes/bufferevent-support b/changes/bufferevent-support deleted file mode 100644 index e39c36f..0000000 --- a/changes/bufferevent-support +++ /dev/null @@ -1,12 +0,0 @@ - o Major features - - Tor can now optionally build with the "bufferevents" buffered IO - backend provided by Libevent, when building with Libevent 2.0.7-rc - or later. To use this feature, make sure you have the latest possible - version of Libevent, and run autoconf with the --enable-bufferevents - flag. Using this feature will make our networking code more flexible, - lets us stack layers on each other, and let us use more efficient - zero-copy transports where available. - - As an experimental feature, when using the "bufferevents" buffered - IO backend, Tor can try to use Windows's IOCP networking API. This - is off by default. To turn it on, add "DisableIOCP 0" to your torrc. - diff --git a/changes/bug1982 b/changes/bug1982 deleted file mode 100644 index 30ce2df..0000000 --- a/changes/bug1982 +++ /dev/null @@ -1,5 +0,0 @@ - o Major features: - - Allow EntryNodes to include country codes like {de} or IP addresses - or network masks. Previously we had disallowed these options - because we didn't have an efficient way to keep the list up to - date. Resolves bug 1982. diff --git a/changes/bug2444 b/changes/bug2444 deleted file mode 100644 index 405e8dc..0000000 --- a/changes/bug2444 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features: - - If we did find a configuration file, log a message saying where we found - it during startup. Implements ticket 2444. - diff --git a/changes/bug2559 b/changes/bug2559 deleted file mode 100644 index 9715eaf..0000000 --- a/changes/bug2559 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor features: - - Ordinarily, Tor does not count traffic from private addresses - (like 127.0.0.1 or 10.0.0.1) when calculating rate limits or - accounting. There is now a new option, CountPrivateBandwidth, to - disable this behavior. Patch from Daniel Cagara. - diff --git a/changes/bug2573 b/changes/bug2573 deleted file mode 100644 index 7a2a802..0000000 --- a/changes/bug2573 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor packaging issues - - Create the /var/run/tor directory on startup on OpenSUSE if it is - not already created. Patch from Andreas Stieger. Fixes bug 2573. diff --git a/changes/bug2702 b/changes/bug2702 deleted file mode 100644 index b119f69..0000000 --- a/changes/bug2702 +++ /dev/null @@ -1,5 +0,0 @@ - o Minor features: - - Implements --enable-static-tor for configure time. Implements ticket - 2702. Idea, general hackery and thoughts from Alexei Czeskis, John - Gilmore, Jacob Appelbaum. - diff --git a/changes/bug507.event b/changes/bug507.event deleted file mode 100644 index 68ef4b1..0000000 --- a/changes/bug507.event +++ /dev/null @@ -1,4 +0,0 @@ - o Code simplifications - - We no longer need link tor-gencert, tor-resolve, or tor-checkkey - against libevent; they don't use them, and our code was already - refactored not to force them to use them. diff --git a/changes/cpudetect b/changes/cpudetect deleted file mode 100644 index eeaa492..0000000 --- a/changes/cpudetect +++ /dev/null @@ -1,3 +0,0 @@ - o Minor features - - If you set the NumCPUs option to 0, Tor will try to detect how many - CPUs you have. This is the new default behavior. diff --git a/changes/dirreq-stats-default b/changes/dirreq-stats-default deleted file mode 100644 index 673be6a..0000000 --- a/changes/dirreq-stats-default +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features: - - Turn on directory request statistics by default and include them in - extra-info descriptors. Don't break if we have no GeoIP database. - diff --git a/changes/enhancement1668 b/changes/enhancement1668 deleted file mode 100644 index 0d9f88f..0000000 --- a/changes/enhancement1668 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features: - - Make logging resolution configurable and change default from 1 - millisecond to 1 second. Implements enhancement 1668. - diff --git a/changes/enhancement1819 b/changes/enhancement1819 deleted file mode 100644 index 9a3f2af..0000000 --- a/changes/enhancement1819 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features: - - Relays that set "ConnDirectionStatistics 1" write statistics on the - birectional use of connections to disk every 24 hours. - diff --git a/changes/enhancement1883 b/changes/enhancement1883 deleted file mode 100644 index fe6bc1a..0000000 --- a/changes/enhancement1883 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features: - - Add GeoIP file digest to extra-info descriptor. Implements - enhancement 1883. - diff --git a/changes/eventdns_routerinfo_key b/changes/eventdns_routerinfo_key deleted file mode 100644 index 46dcb52..0000000 --- a/changes/eventdns_routerinfo_key +++ /dev/null @@ -1,4 +0,0 @@ - o Minor feature removals - - Removed old code to work around versions of Tor so old that they - used multiple forked processes to handle DNS requests. Such - versions of Tor are no longer in use as servers. diff --git a/changes/feature1955 b/changes/feature1955 deleted file mode 100644 index 169b7fd..0000000 --- a/changes/feature1955 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features (controller) - - Add a new SIGNAL event to the controller interface so that - controllers can be notified when Tor handles a signal. Resolves - issue 1955. Patch by John Brooks. diff --git a/changes/feature2345 b/changes/feature2345 deleted file mode 100644 index 5ab6a0f..0000000 --- a/changes/feature2345 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor features (controller) - - Add GETINFO options to get total bytes read and written. Patch - from pipe, revised by atagar. Resolves ticket 2345. - diff --git a/changes/getinfo_process b/changes/getinfo_process deleted file mode 100644 index c6eb6c0..0000000 --- a/changes/getinfo_process +++ /dev/null @@ -1,3 +0,0 @@ - o Minor features - - Implement some GETINFO controller fields to provide information about - the Tor process's pid, euid, username, and resource limits. diff --git a/changes/heartbeat b/changes/heartbeat deleted file mode 100644 index 008d915..0000000 --- a/changes/heartbeat +++ /dev/null @@ -1,7 +0,0 @@ - o Minor features - - Add a new 'Heartbeat' log message type to periodically log a - message describing Tor's status at level Notice. This feature - is meant for operators who log at notice, adn want to make sure - that their Tor server is still working. Implementation by - George Kadianakis. - diff --git a/changes/install-fix b/changes/install-fix deleted file mode 100644 index fb921eb..0000000 --- a/changes/install-fix +++ /dev/null @@ -1,3 +0,0 @@ - o Minor bugfixes: - - Correct a broken faq link in the INSTALL file. Fixes bug 2307. - diff --git a/changes/microdesc_dl b/changes/microdesc_dl deleted file mode 100644 index aca634c..0000000 --- a/changes/microdesc_dl +++ /dev/null @@ -1,4 +0,0 @@ - o Major features: - - Caches now download and cache all the consensus flavors that - they know about. This allows them to assess which microdescriptors - they need to fetch. diff --git a/changes/nodelist b/changes/nodelist deleted file mode 100644 index 033a6c1..0000000 --- a/changes/nodelist +++ /dev/null @@ -1,10 +0,0 @@ - o Code refactorings - - Unified our node-listing and selecting logic. We had at least - two major ways to look at the question of "which Tor servers do - we know about": our list of router descriptors, and the current - consensus. We're adding a third in microdescriptors. Having - so many systems without an abstraction layer over them was - hurting the codebase. Now, we have a new "node_t" abstraction - that presents a consistent interface to a client's view of - a Tor node, and holds (nearly) all of the mutable state - formerly in routerinfo_t and routerstatus_t. diff --git a/changes/prop174_server b/changes/prop174_server deleted file mode 100644 index a2fb39f..0000000 --- a/changes/prop174_server +++ /dev/null @@ -1,6 +0,0 @@ - o Features: - - Servers now accept and queue data on not-yet-connected - streams. Previously, such data wasn't allowed. This forced - clients to wait for a CONNECTED cell before sending their - data, thus adding a round trip to stream setup. (Patch from - Ian Goldberg; implements the server side of Proposal 174.) diff --git a/changes/tls-hash b/changes/tls-hash deleted file mode 100644 index 884ff91..0000000 --- a/changes/tls-hash +++ /dev/null @@ -1,5 +0,0 @@ - o Code simplifications and refactoring: - - Use SSL_get_ex_data to map SSL objects to tor_tls_t objects: there's - no need for a hash table. - - diff --git a/changes/tor-fw-helper b/changes/tor-fw-helper deleted file mode 100644 index f87d828..0000000 --- a/changes/tor-fw-helper +++ /dev/null @@ -1,14 +0,0 @@ - o Major features: - - Tor now has the ability to wrangle NAT devices like a good network cowbot - with the tor-fw-helper tool. The tor-fw-helper tool supports Apple's - NAT-PMP protocol and the UPnP standard for TCP port mapping. This - optional tool may be enabled at compile time by configuring with - '--enable-upnp' or '--enable-natpmp' or with both. This tool may be - called by hand or by Tor. By configuring the PortForwarding option, Tor - will launch the helper on a regular basis to ensure that the NAT mapping - is regularly updated. Additionally, a user may also specify an - alternative helper by using the PortForwardingHelper option. The helper - may be specified by name or with the full path to the helper. The default - helper is named 'tor-fw-helper' and any alternative helper must take the - tor-fw-helper-spec.txt into account. -