Drupal: BitTorrent Tracker

Synopsis


I will develop a BitTorrent tracker module for Drupal. This module will extend the file handling capabilities currently in Drupal.

Project

This project will center around 3 tasks. The first task will be to implement an efficient BitTorrent tracker in PHP. This module will avoid Drupal as much as possible to keep it lean and efficient. However, configuration will remain through Drupal. Drupal will also provide user access control to provide tracker authentication. The existing XML-RPC functionality in Drupal will be examined as a sample.

The second task will be to implement front-end a module. This module will provide file listings, statistics, etc.  It will also provide an interface to upload torrents. Keeping this separate from the actual tracker will keep the code clean, keep the tracker lean, and allow custom front-ends.

The third task will be to implement a module to tie the tracker much more closely in to the existing file handling pipeline. The upload module allows files to be attached to nodes, and optionally listed. This module will extend that functionality to allow a torrent to automatically be created for uploaded files. Additionally, the option will exist to only expose the torrent, and not the original file, for high-bandwidth sites.

Benefits

Drupal has become an extremely popular CMS and development platform. PHP based trackers exist, but do not integrate easily in to Drupal. Providing a Drupal based tracker will give people much more freedom.

Success

  • Create the modules described above. A lean and fast tracker is key to provide a low-load, low-bandwidth system.
  • Integrate with existing file handling modules.

Roadmap

  1. Publish design goals the the Drupal developer list. The core developers will have good insights in to optimizations and examples from the XML-RPC implementation. (until mid-june)
  2. Implement features listed above. The base tracker module and simple front-end are core to success. (until early august)
  3. Optimize tracker and debug. (until end of SoC)

Biography

I am a computer science student at Humboldt State University, in California in the US. I started programming in Basic in DOS at the age of 5, taught myself C in Junior High, and taught myself C++ in High School. After high school, I attended Humboldt until I got picked up by a software firm in the Silicon Valley. After working as a software engineer for a few years, the poor US economy finally caught up with me. I've since returned to Humboldt to finish my degree.

Much of my work experience has involved web technologies. I've been programming PHP/LAMP for many years, and my SoC experience with Drupal last year taught me a lot. I believe that my work experience and strong develop skills will make me success in this project.