Share

BitTorrent C Library

File Release Notes and Changelog

Release Name: 1.02

Notes:
LibBT 1.02

Description:

LibBT is a C reimplementation of the BitTorrent core protocols.  Our
goal for the project is to develop a low overhead library version of 
the protocols so that BitTorrent transfers can easily be built in to 
any existing application.

The sample applications included with LibBT currently run in between 
2Mb and 3.5Mb of memory (RSS), depending on the number of peers that 
are attached.

LibBT is currently targeted at the Linux Operating System.

Prerequisites:

The following libraries should already be installed on your
system:

* OpenSSL (http://www.openssl.org/)
* LibCURL (http://curl.haxx.se/libcurl/)
* e2fsprogs-devel

All of these are on the distribution disks for Redhat 7.3 and later.  The
version of LibCURL distributed with Redhat 7.1 is broken, so you should
download current sources for LibCURL if you are using Redhat 7.1 or 
earlier.

If you are prerequisite libraries from source then don't forget to add
the library install directory to /etc/ld.so.conf, and run ldconfig, or
add the library directory to your LD_LIBRARY_PATH environment variable.

Build instructions:

After unpacking the source tree you will find that the project has been
set up to build with autoconf.  The sources have only been tested on 
various Redhat distributions of Linux.  Please let me know if you complete
a port to another distribution or operating system.

To build the sources you must first run configure, and then make as shown
in the example below.  


    $ ./configure
    $ make


In this early release there is only a static library available, together
with three sample applications; btlist, btget, and btcheck.  There is 
currently no 'make install' target, but the sample applications can be
copied anywhere that you find convenient, and should still run.

If changing the autoconf scripts then the following commands will rebuild
the configure and config.h.in files:

    $ autoconf
    $ configure
    $ autoheader
    $ configure




Changes: -- 1.02 Removed core dump on missing .torrent Implemented suggested security changes from James Antill: Removed some unused functions Cleanup vsnprintf() calls Changed assert()'s to DIE_UNLESS() Error checking malloc's Fixed bugs with very large torrents (55G tested) -- 1.01 Queue a larger number of requests with fast peers for better throughput Use fixed size requests (16k) Bug fix for snub handling & detection code Added new option (-b) to disable snubbing altogether Choke peer when they request an invalid block Implemented cancels for overlapping requests Added key= & compact= for the tracker protocol New peers are accepted from the tracker mid transfer (used to only accept incoming connections post startup - this is needed for clients behind firewalls) -- 1.0 Multi-torrent downloads Fixes for >2G torrents malloc()/free() cleanup; configurable to build with dmalloc New options: -q<timeout> quit when all peers are complete -u download torrent from URL -s seed mode (assume that file is ok) -e<multiplier> exaggerate upload speed when talking to the tracker -- 0.03 <prehistory>