Browse Source

Initial draft changelog for 0.2.3.1-alpha

Nick Mathewson 13 years ago
parent
commit
5ee5103f63

+ 132 - 0
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

+ 0 - 6
changes/automake_required

@@ -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.

+ 0 - 5
changes/autoreconf

@@ -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.
-

+ 0 - 12
changes/bufferevent-support

@@ -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.
-

+ 0 - 5
changes/bug1982

@@ -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.

+ 0 - 4
changes/bug2444

@@ -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.
-

+ 0 - 6
changes/bug2559

@@ -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.
-

+ 0 - 3
changes/bug2573

@@ -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.

+ 0 - 5
changes/bug2702

@@ -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.
-

+ 0 - 4
changes/bug507.event

@@ -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.

+ 0 - 3
changes/cpudetect

@@ -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.

+ 0 - 4
changes/dirreq-stats-default

@@ -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.
-

+ 0 - 4
changes/enhancement1668

@@ -1,4 +0,0 @@
-  o Minor features:
-    - Make logging resolution configurable and change default from 1
-      millisecond to 1 second. Implements enhancement 1668.
-

+ 0 - 4
changes/enhancement1819

@@ -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.
-

+ 0 - 4
changes/enhancement1883

@@ -1,4 +0,0 @@
-  o Minor features:
-    - Add GeoIP file digest to extra-info descriptor. Implements
-      enhancement 1883.
-

+ 0 - 4
changes/eventdns_routerinfo_key

@@ -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.

+ 0 - 4
changes/feature1955

@@ -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.

+ 0 - 4
changes/feature2345

@@ -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.
-

+ 0 - 3
changes/getinfo_process

@@ -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.

+ 0 - 7
changes/heartbeat

@@ -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.    
-

+ 0 - 3
changes/install-fix

@@ -1,3 +0,0 @@
-  o Minor bugfixes:
-    - Correct a broken faq link in the INSTALL file. Fixes bug 2307.
-

+ 0 - 4
changes/microdesc_dl

@@ -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.

+ 0 - 10
changes/nodelist

@@ -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.

+ 0 - 6
changes/prop174_server

@@ -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.)

+ 0 - 5
changes/tls-hash

@@ -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.
-
-

+ 0 - 14
changes/tor-fw-helper

@@ -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.
-