Initial draft changelog for 0.2.3.1-alpha

This commit is contained in:
Nick Mathewson 2011-05-03 21:33:10 -04:00
parent 993536e78e
commit 5ee5103f63
26 changed files with 132 additions and 133 deletions

132
ChangeLog
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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