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