mod_bt 0.0.3

First release: May 20th, 2004.

THIS IS PRE-ALPHA SOFTWARE. USE AT YOUR OWN RISK.

mod_bt is an Apache2 module, written in C, that behaves like a BitTorrent tracker. As well as supporting the full BitTorrent tracker specification, it has several other useful options, most notable of which is seamless integration with the webserver.

Berkeley DB 4.2 is used for the underlying database. It is a fast, flexible, incredibly low-level embedded engine; no actual database "server" is neccessary for the tracker's operation, and depending on the request in question, mod_bt 0.0.3 has been benchmarked as running 25% - 1000% faster than the python tracker.

mod_bt has been constructed to be modular. There are two main parts: libbtt, the code library that has all of the BitTorrent Tracker-specific stuff in it, and mod_bt, which "glues" libbtt to apache2. libbtt uses the APR (Apache Portability Runtime) library for it's memory pools and shared memory, but it could just as easily be used in projects completely unrelated to apache so long as that library is available.

KNOWN BUG: "apachectl restart" does not work with mod_bt installed. You must instead do an "apachectl stop", wait for the server to cleanly shut down, then "apachectl start". If anyone has a perfect solution to fix this, please let me know.

Installation

Configuration

The "etc/httpd.conf" file provides a functioning example. At the very least, you will have to make a directory for mod_bt's data files to live and specify that to apache as "TrackerHome", as well as setting up your content-handlers at their appropriate URLs.

Apache Configuration Directives

Content Handlers

modbt-announce

Handler for BitTorrent peer announce requests.

Extensions:

modbt-scrape

Handler for BitTorrent scrape requests

Extensions:

Only one of "xml=1", "verbose=1", or "html=1" may be specified.

modbt-root

Return an HTML information page about the hashes. (Equivalent to calling the "modbt-scrape" handler with "html=1" appended to the URL arguments supplied by the user.)

modbt-register

Handler for Infohash registration.

When called with no arguments, a HTML page is displayed allowing the user to fill out the arguments required to register a hash.

This URL is more for use by administration scripts than actual users, but has an HTML interface to facilitate manual use as well.

Arguments:

To Do

Anyone wanna help? :-)

License

   mod_bt 0.0.3
   Copyright 2004 Tyler MacDonald <tyler@yi.org>
 
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
 
       http://www.apache.org/licenses/LICENSE-2.0
 
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
  

<tyler@yi.org> - $Id: mod_bt.html,v 1.1 2004/05/20 18:27:23 faraway Exp $