mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-19 04:57:54 +00:00
NEWS: quick list of everything changed since 1.11.0
will need lots of editing before release
This commit is contained in:
parent
b96122a8ff
commit
71c2b20507
167
NEWS.rst
167
NEWS.rst
@ -4,6 +4,173 @@
|
|||||||
User-Visible Changes in Tahoe-LAFS
|
User-Visible Changes in Tahoe-LAFS
|
||||||
==================================
|
==================================
|
||||||
|
|
||||||
|
Release 1.12.0 (?)
|
||||||
|
''''''''''''''''''
|
||||||
|
|
||||||
|
#1720
|
||||||
|
|
||||||
|
2367.removal:
|
||||||
|
|
||||||
|
The little-used "manhole" debugging feature has been removed. This allowed
|
||||||
|
you to SSH or Telnet "into" a Tahoe node, providing an interactive
|
||||||
|
Read-Eval-Print-Loop (REPL) that executed inside the context of the running
|
||||||
|
process. The SSH authentication code used a deprecated feature of Twisted,
|
||||||
|
this code had no unit-test coverage, and I haven't personally used it in at
|
||||||
|
least 6 years (despite writing it in the first place). Time to go.
|
||||||
|
|
||||||
|
2491.config:
|
||||||
|
* tub.port is now an Endpoint server specification string (which is pretty
|
||||||
|
much just like a strports string, but can be extended by plugins). It now
|
||||||
|
rejects "tcp:0" and "0". The tahoe.cfg value overrides anything stored on
|
||||||
|
disk (in client.port). This should have no effect on most nodes, which do
|
||||||
|
not set tub.port in tahoe.cfg, and wrote an allocated port number to
|
||||||
|
client.port the first time they launched. Folks who want to listen on a
|
||||||
|
specific port number typically set tub.port to "tcp:12345" or "12345", not
|
||||||
|
"0".
|
||||||
|
* The "portnumfile" (e.g. NODEDIR/client.port) is written as soon as the port
|
||||||
|
is allocated, before the tub is created, and only if "tub.port" was empty.
|
||||||
|
The old code wrote to it unconditionally, and after Tub startup. So if the
|
||||||
|
user allows NODEDIR/client.port to be written, then later modifies
|
||||||
|
tahoe.cfg to set "tub.port" to a different value, this difference will
|
||||||
|
persist (and the node will honor tahoe.cfg "tub.port" exclusively).
|
||||||
|
* We now encourage static allocation of tub.port, and pre-configuration of
|
||||||
|
the node's externally-reachable IP address or hostname (by setting
|
||||||
|
tub.location). Automatic IP-address detection is deprecated. Automatic port
|
||||||
|
allocation is merely discouraged. Eventually both will be managed by "tahoe
|
||||||
|
create-node", but for now we recommend users edit their tahoe.cfg after
|
||||||
|
node creation and before first launch.
|
||||||
|
* "tahoe start" now creates the Tub, and all primary software components,
|
||||||
|
before the child process daemonizes. Many configuration errors which would
|
||||||
|
previously have been reported in a logfile (after node startup), will now
|
||||||
|
be signalled immediately, via stderr. In these cases, the "tahoe start"
|
||||||
|
process will exit with a non-zero return code.
|
||||||
|
|
||||||
|
2759.docs:
|
||||||
|
Tahoe now uses a separate Foolscap tub for each outbound storage server
|
||||||
|
connection. This has two benefits:
|
||||||
|
|
||||||
|
* a slight privacy improvement: storage servers can no longer compare client
|
||||||
|
TubIDs to confirm/deny that two clients are the same (but note there are
|
||||||
|
other reliable signals: timing correlations, interest in the same shares,
|
||||||
|
future Accounting identifiers)
|
||||||
|
* this enables future per-server connection options, like using Tor for some
|
||||||
|
servers but direct TCP connections for others (#517).
|
||||||
|
|
||||||
|
and a few drawbacks:
|
||||||
|
|
||||||
|
* It causes a small performance hit to generate new TLS keys (2048-bit RSA)
|
||||||
|
for each connection. On a modern computer, this adds 75ms per server.
|
||||||
|
* It breaks a NAT-bypass trick which enabled storage servers to run behind
|
||||||
|
NAT boxes, which was only useful if all the *clients* of the storage server
|
||||||
|
had public IP addresses, and those clients were also configured as servers.
|
||||||
|
The trick was to configure the NAT-bound server as a client too: its
|
||||||
|
outbound connections to the "servers" would be used in the opposite
|
||||||
|
direction to provide storgae service to the clients (Foolscap doesn't care
|
||||||
|
who initiated the connection, as long as both ends have the right TLS
|
||||||
|
keys). We decided that this trick is not sufficiently general to preserve.
|
||||||
|
* Server logs that record a TubID are no longer so easy to use: until
|
||||||
|
Accounting (#666) lands and a client-id is used for log messages, it will
|
||||||
|
be difficult to identify exactly which client the log is referencing.
|
||||||
|
|
||||||
|
2773.docs:
|
||||||
|
The "stats-gatherer", an operation-helper service used to collect runtime
|
||||||
|
statistics from a fleet of Tahoe storage servers, must now be assigned a
|
||||||
|
hostname, or location+port pair, at creation time. The "tahoe
|
||||||
|
create-stats-gatherer" command now requires either "--hostname=", or both
|
||||||
|
"--location=" and "--port".
|
||||||
|
|
||||||
|
Previously, "tahoe create-stats-gatherer NODEDIR" would attempt to guess its
|
||||||
|
location by running something like /sbin/ifconfig to collect local IP
|
||||||
|
addresses. While this works if the host has a public IP address (or at least
|
||||||
|
lives in the same LAN as the storage servers it monitors), most sysadmins
|
||||||
|
would prefer the FURL be created with a real hostname.
|
||||||
|
|
||||||
|
To keep your old stats-gatherers working, with their original FURL, you must
|
||||||
|
determine a suitable --location and --port, and write their values into
|
||||||
|
NODEDIR/location and NODEDIR/port, respectively. Or you could simply rebuild
|
||||||
|
it by re-running "tahoe create-stats-gatherer" with the new arguments.
|
||||||
|
|
||||||
|
See docs/stats.rst for details.
|
||||||
|
|
||||||
|
2776.change:
|
||||||
|
Tahoe's testing-only dependencies can now be installed by asking for the
|
||||||
|
[test] extra, so if you want to set up a virtualenv for testing, use "pip
|
||||||
|
install -e .[test]" instead just of "pip install -e ." . At the moment this
|
||||||
|
only includes "coverage" and "pyflakes", but in the future it might include
|
||||||
|
"mock" and other utility libraries.
|
||||||
|
|
||||||
|
2781.packaging:
|
||||||
|
Tahoe now requires Twisted >= 16.1.0, so ensure that unit tests do not fail
|
||||||
|
because of uncancelled timers left running by HostnameEndpoint.
|
||||||
|
|
||||||
|
2783.docs:
|
||||||
|
The "key-generator" node type has been removed. This was a standalone process
|
||||||
|
that maintained a queue of RSA keys. Clients could offload the key-generation
|
||||||
|
work by adding "key_generator.furl=" in their tahoe.cfg files, to create
|
||||||
|
mutable files and directories faster. This seemed important back in 2006, but
|
||||||
|
these days computers are faster and RSA key generation only takes about 90ms.
|
||||||
|
|
||||||
|
This removes the "tahoe create-key-generator" command. Any
|
||||||
|
"key_generator.furl" settings in tahoe.cfg will log a warning and otherwise
|
||||||
|
ignored. Attempts to "tahoe start" a previously-generated key-generator node
|
||||||
|
will result in an error.
|
||||||
|
|
||||||
|
2794.change:
|
||||||
|
The little-used "control port" now uses a separate (ephemeral) Tub. This
|
||||||
|
means the FURL changes each time the node is restarted, and it only listens
|
||||||
|
on the loopback (127.0.0.1) interface, on a random port. As the control port
|
||||||
|
is only used by some automated tests (check_memory, check_speed), this
|
||||||
|
shouldn't affect anyone.
|
||||||
|
|
||||||
|
The slightly-more-used "log port" now also uses a separate (ephemeral) Tub,
|
||||||
|
with the same consequences. The lack of a stable (and externally-reachable)
|
||||||
|
logport.furl means it is no longer possible to use `flogtool tail FURL`
|
||||||
|
against a distant Tahoe server, however `flogtool tail
|
||||||
|
.../nodedir/private/logport.furl` still works just fine (and is the more
|
||||||
|
common use case anyways). We might bring back the ability to configure the
|
||||||
|
port and location of the logport in the future, if there is sufficient
|
||||||
|
demand, but for now it seems better to avoid the complexity.
|
||||||
|
|
||||||
|
PR242.docs:
|
||||||
|
The "stats gatherer" (created with 'tahoe create-stats-gatherer') now updates
|
||||||
|
a JSON file named "stats.json"; previously it used Pickle and "stats.pickle".
|
||||||
|
The munin plugins in misc/operations_helpers/munin/ have been updated to
|
||||||
|
match, and must be re-installed and re-configured if you use munin.
|
||||||
|
|
||||||
|
more:
|
||||||
|
|
||||||
|
* lots of tox environment cleanups, moving most tooling from Makefile to tox,
|
||||||
|
including code-checks, deprecation warnings, code-coverage
|
||||||
|
* 2774 add internal progress API (for magic-folder)
|
||||||
|
* 1903 document "/file/" as deprecated, replace with "/named/"
|
||||||
|
* 1449 don't start magic-folder until "connected enough"
|
||||||
|
* 2491 start Tub synchronously, improves error delivery at startup
|
||||||
|
* docs are now hosted at tahoe-lafs.readsthedocs.io (not .org)
|
||||||
|
* client uses separate Tub per storage server (privacy improvement)
|
||||||
|
* 2788 introducer cache, yaml file, loaded at startup until real introducer
|
||||||
|
arrives: tolerates introducer failure better. static servers can be
|
||||||
|
configured by adding a servers.yaml
|
||||||
|
* 2784 remove v1 introducer (sigs now required)
|
||||||
|
* BIG replace drop-upload with magic-folders
|
||||||
|
* 2754 remove _appname.py
|
||||||
|
* 1363 use pubkey as serverid, not tubid. affects new-helper vs old-uploader
|
||||||
|
* 517: connection handlers: socks/tor/i2p, tahoe.cfg [connections]
|
||||||
|
* 2810 disable foolscap gifts
|
||||||
|
* 2816 empty tub.port means don't listen at all
|
||||||
|
* 1010 tahoe.cfg reveal-ip-address = false, create-client --hide-ip
|
||||||
|
* 2818 show connection hints on welcome page
|
||||||
|
* 1942 remove google-based timing chart on mapupdate page (privacy)
|
||||||
|
* 2809 reject unrecognized tahoe.cfg options at startup
|
||||||
|
* 2735 CLI remove 'debug trial' and 'debug repl'
|
||||||
|
* 2773 create-node/create-introducer --location/--port --hostname --listen
|
||||||
|
* 68 introducers.yaml, multiple introducers, no introducers
|
||||||
|
* 2827 explain ipv6
|
||||||
|
* 867 tub.port takes multiple endpoints (comma-separated)
|
||||||
|
* 2490 --listen=tor
|
||||||
|
* fix IP-autodetect on RHEL (for tests)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Release 1.11.0 (30-Mar-2016)
|
Release 1.11.0 (30-Mar-2016)
|
||||||
''''''''''''''''''''''''''''
|
''''''''''''''''''''''''''''
|
||||||
|
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
The little-used "manhole" debugging feature has been removed. This allowed
|
|
||||||
you to SSH or Telnet "into" a Tahoe node, providing an interactive
|
|
||||||
Read-Eval-Print-Loop (REPL) that executed inside the context of the running
|
|
||||||
process. The SSH authentication code used a deprecated feature of Twisted,
|
|
||||||
this code had no unit-test coverage, and I haven't personally used it in at
|
|
||||||
least 6 years (despite writing it in the first place). Time to go.
|
|
@ -1,25 +0,0 @@
|
|||||||
* tub.port is now an Endpoint server specification string (which is pretty
|
|
||||||
much just like a strports string, but can be extended by plugins). It now
|
|
||||||
rejects "tcp:0" and "0". The tahoe.cfg value overrides anything stored on
|
|
||||||
disk (in client.port). This should have no effect on most nodes, which do
|
|
||||||
not set tub.port in tahoe.cfg, and wrote an allocated port number to
|
|
||||||
client.port the first time they launched. Folks who want to listen on a
|
|
||||||
specific port number typically set tub.port to "tcp:12345" or "12345", not
|
|
||||||
"0".
|
|
||||||
* The "portnumfile" (e.g. NODEDIR/client.port) is written as soon as the port
|
|
||||||
is allocated, before the tub is created, and only if "tub.port" was empty.
|
|
||||||
The old code wrote to it unconditionally, and after Tub startup. So if the
|
|
||||||
user allows NODEDIR/client.port to be written, then later modifies
|
|
||||||
tahoe.cfg to set "tub.port" to a different value, this difference will
|
|
||||||
persist (and the node will honor tahoe.cfg "tub.port" exclusively).
|
|
||||||
* We now encourage static allocation of tub.port, and pre-configuration of
|
|
||||||
the node's externally-reachable IP address or hostname (by setting
|
|
||||||
tub.location). Automatic IP-address detection is deprecated. Automatic port
|
|
||||||
allocation is merely discouraged. Eventually both will be managed by "tahoe
|
|
||||||
create-node", but for now we recommend users edit their tahoe.cfg after
|
|
||||||
node creation and before first launch.
|
|
||||||
* "tahoe start" now creates the Tub, and all primary software components,
|
|
||||||
before the child process daemonizes. Many configuration errors which would
|
|
||||||
previously have been reported in a logfile (after node startup), will now
|
|
||||||
be signalled immediately, via stderr. In these cases, the "tahoe start"
|
|
||||||
process will exit with a non-zero return code.
|
|
@ -1,25 +0,0 @@
|
|||||||
Tahoe now uses a separate Foolscap tub for each outbound storage server
|
|
||||||
connection. This has two benefits:
|
|
||||||
|
|
||||||
* a slight privacy improvement: storage servers can no longer compare client
|
|
||||||
TubIDs to confirm/deny that two clients are the same (but note there are
|
|
||||||
other reliable signals: timing correlations, interest in the same shares,
|
|
||||||
future Accounting identifiers)
|
|
||||||
* this enables future per-server connection options, like using Tor for some
|
|
||||||
servers but direct TCP connections for others (#517).
|
|
||||||
|
|
||||||
and a few drawbacks:
|
|
||||||
|
|
||||||
* It causes a small performance hit to generate new TLS keys (2048-bit RSA)
|
|
||||||
for each connection. On a modern computer, this adds 75ms per server.
|
|
||||||
* It breaks a NAT-bypass trick which enabled storage servers to run behind
|
|
||||||
NAT boxes, which was only useful if all the *clients* of the storage server
|
|
||||||
had public IP addresses, and those clients were also configured as servers.
|
|
||||||
The trick was to configure the NAT-bound server as a client too: its
|
|
||||||
outbound connections to the "servers" would be used in the opposite
|
|
||||||
direction to provide storgae service to the clients (Foolscap doesn't care
|
|
||||||
who initiated the connection, as long as both ends have the right TLS
|
|
||||||
keys). We decided that this trick is not sufficiently general to preserve.
|
|
||||||
* Server logs that record a TubID are no longer so easy to use: until
|
|
||||||
Accounting (#666) lands and a client-id is used for log messages, it will
|
|
||||||
be difficult to identify exactly which client the log is referencing.
|
|
@ -1,18 +0,0 @@
|
|||||||
The "stats-gatherer", an operation-helper service used to collect runtime
|
|
||||||
statistics from a fleet of Tahoe storage servers, must now be assigned a
|
|
||||||
hostname, or location+port pair, at creation time. The "tahoe
|
|
||||||
create-stats-gatherer" command now requires either "--hostname=", or both
|
|
||||||
"--location=" and "--port".
|
|
||||||
|
|
||||||
Previously, "tahoe create-stats-gatherer NODEDIR" would attempt to guess its
|
|
||||||
location by running something like /sbin/ifconfig to collect local IP
|
|
||||||
addresses. While this works if the host has a public IP address (or at least
|
|
||||||
lives in the same LAN as the storage servers it monitors), most sysadmins
|
|
||||||
would prefer the FURL be created with a real hostname.
|
|
||||||
|
|
||||||
To keep your old stats-gatherers working, with their original FURL, you must
|
|
||||||
determine a suitable --location and --port, and write their values into
|
|
||||||
NODEDIR/location and NODEDIR/port, respectively. Or you could simply rebuild
|
|
||||||
it by re-running "tahoe create-stats-gatherer" with the new arguments.
|
|
||||||
|
|
||||||
See docs/stats.rst for details.
|
|
@ -1,5 +0,0 @@
|
|||||||
Tahoe's testing-only dependencies can now be installed by asking for the
|
|
||||||
[test] extra, so if you want to set up a virtualenv for testing, use "pip
|
|
||||||
install -e .[test]" instead just of "pip install -e ." . At the moment this
|
|
||||||
only includes "coverage" and "pyflakes", but in the future it might include
|
|
||||||
"mock" and other utility libraries.
|
|
@ -1,2 +0,0 @@
|
|||||||
Tahoe now requires Twisted >= 16.1.0, so ensure that unit tests do not fail
|
|
||||||
because of uncancelled timers left running by HostnameEndpoint.
|
|
@ -1,10 +0,0 @@
|
|||||||
The "key-generator" node type has been removed. This was a standalone process
|
|
||||||
that maintained a queue of RSA keys. Clients could offload the key-generation
|
|
||||||
work by adding "key_generator.furl=" in their tahoe.cfg files, to create
|
|
||||||
mutable files and directories faster. This seemed important back in 2006, but
|
|
||||||
these days computers are faster and RSA key generation only takes about 90ms.
|
|
||||||
|
|
||||||
This removes the "tahoe create-key-generator" command. Any
|
|
||||||
"key_generator.furl" settings in tahoe.cfg will log a warning and otherwise
|
|
||||||
ignored. Attempts to "tahoe start" a previously-generated key-generator node
|
|
||||||
will result in an error.
|
|
@ -1,14 +0,0 @@
|
|||||||
The little-used "control port" now uses a separate (ephemeral) Tub. This
|
|
||||||
means the FURL changes each time the node is restarted, and it only listens
|
|
||||||
on the loopback (127.0.0.1) interface, on a random port. As the control port
|
|
||||||
is only used by some automated tests (check_memory, check_speed), this
|
|
||||||
shouldn't affect anyone.
|
|
||||||
|
|
||||||
The slightly-more-used "log port" now also uses a separate (ephemeral) Tub,
|
|
||||||
with the same consequences. The lack of a stable (and externally-reachable)
|
|
||||||
logport.furl means it is no longer possible to use `flogtool tail FURL`
|
|
||||||
against a distant Tahoe server, however `flogtool tail
|
|
||||||
.../nodedir/private/logport.furl` still works just fine (and is the more
|
|
||||||
common use case anyways). We might bring back the ability to configure the
|
|
||||||
port and location of the logport in the future, if there is sufficient
|
|
||||||
demand, but for now it seems better to avoid the complexity.
|
|
@ -1,4 +0,0 @@
|
|||||||
The "stats gatherer" (created with 'tahoe create-stats-gatherer') now updates
|
|
||||||
a JSON file named "stats.json"; previously it used Pickle and "stats.pickle".
|
|
||||||
The munin plugins in misc/operations_helpers/munin/ have been updated to
|
|
||||||
match, and must be re-installed and re-configured if you use munin.
|
|
Loading…
Reference in New Issue
Block a user