3 This is yet another Tech. Preview release. The torrent client works
4 to the point where it can be used to download things, but it have
5 not seen much testing yet and there are numerous places it can be
6 improved still. Yet, there are so many changes, that it warrants a
9 The current regressions revolve around a high CPU usage at times. We
10 expect to tackle this problem next with some profiling. We also
11 expect to tackle fast resume support as the main "new thing". And
12 some 10 things in the issue tracker and the TODO lists for the
13 next release. I don't expect it to follow as fast as this one.
15 One development methodology change worth mentioning: the git
16 repository now uses several branches laid out as described in
17 doc/git.txt. Tracking the 'master' branch ought to provide you with
18 a system that is stable at all times, while tracking the 'next'
19 branch gives you the 'cooking pot' of new things that ought to be
20 tested. We'll try to keep 'next' stable, though it may have problems
25 - There is a set of new commands for viewing what is currently
26 cooking in the torrent client. etorrent:l/0, etorrent:s/1,
27 etorrent:h/0. Implemented with help from Tuncer Ayaz.
29 - Changed build infrastructure. No more autoconf. It simplifies the
30 build structure considerably. Introduce the use of EMakefile for
31 building the erlang parts of the system. Reinstate all make targets
32 and add a 'tags' target for building a TAGS file.
34 - etorrent now correctly handles the 'min_interval' tracker response
35 parameter. It is not strictly part of the spec, but everybody uses
38 - Add support for installing etorrent. A shell-script, etorrentctl,
39 is provided to control the etorrent daemon. The installer, while
40 overly simple, has not seen much testing as of yet and may not
41 work. It will be tested before v1.0.
43 - etorrent no longer pre-fills files it want to download with
44 junk. It uses the semantics of fseek() to make a file of the right
47 - several ETS restructurings has brought the memory use
48 down. Before, etorrent would take some 660 megabytes of memory
49 running 20 torrents. Now it is more like 50-80 megabytes for 20
50 torrents. More can be shaved but this is a good start. Also, memory
51 usage still occasionally spikes because we are doing nothing in certain
52 situations to limit it.
54 - New choking/unchoking algorithm, based on a combination of
55 BitTornado/BitTorrent/Transmission. This is not the smartest one can
56 do, but it follows the spec more or less precisely.
58 - Event Publisher. A gen_event OTP behaviour one can subscribe to and
59 get information about the system. A logfile subscriber is there by
62 - Rate calculation optimizations. etorrent now uses a running
63 average over a period of up to 20 seconds to measure the rate of a
64 peer. This yields a more fair measurement of individual peers so we
65 claim the best peers. While here, change the sockets to be passive
66 for now. It bumps the CPU-usage, but makes the rate calculation more
67 precise. There are several optimizations possible revolving around
68 passive/active sockets.
70 - Robustize the supervisor tree. etorrent is now less likely to die
71 due to a crash somewhere in the tree. It is not entirely safe yet,
72 but it will be during the next releases.
76 First Technology Preview.