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>
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use