The Importance of BitTorrent in Free Software

Howdy folks. So now I’m going to open my mouth and stick my foot into it with respect to Free Software, and seeding Free Software over bittorrent. Enjoy.

So, just a show of hands: how many of you were frustrated when the new version of $YOUR_FAVORITE_DISTRO came out, and the download sites and mirrors were all inundated with massive amounts of traffic, resulting in slow download speeds and HTTP timeouts? Most of you, that’s what I thought.

Well, lucky for us there’s this glorious technology called “BitTorrent.” For those in the class who have seen this around for a while, be patient while I explain briefly for the rest of the class what I’m talking about.

BitTorrent is a technology where everybody downloads a relatively small .torrent file. This file has information such as a “tracker”, the number of “pieces”, a description of the file(s) being downloaded, the size of the file, and a bunch of binary data which I’m assuming is being used to break it up into chunks. I’m sure there’s more detail online somewhere. Using all of this information, a BitTorrent client can contact the tracker and find other peers who are “seeding” the file(s). So essentially, if you open ktorrent (my favorite bittorrent program, there are several out there) with a .torrent file for the latest version of $PROGRAM, it’ll contact the tracker using HTTP to retrieve information on peers, and what chunks are available from the peers. Then it will download different chunks from potentially different peers.

What’s the benefit you ask? Well, it has the potential of faster downloads (not always the case), but it takes some serious load off of the servers. This way you can get your copy of $DISTRO, everybody else can get their copy of $DISTRO, and we can all get our copies of $DISTRO faster without making the lives of sysops harder.

Why is BitTorrent so well qualified for Free Software? Glad you asked.

Free Software has always had interesting means of distribution. There are so many different ways to obtain a copy of GNU Emacs it’s crazy. There’s mail order, there’s FTP, HTTP, CVS, rsync, copying from a friend, and now there’s bittorrent. The problem is that all of those means of distribution tend to have a single point of failure. If GNU released a new version of Emacs it is likely that you would get slower download speeds from GNU and their mirrors due to the volume of users wanting to upgrade, and new users wanting to try it out.

BitTorrent allows us to share the load. I download a copy of Emacs using BitTorrent, and once it’s done downloading, I can “seed” the file to the tracker and other people can download pieces from me. So I have a little mini server on my machine. This enables better sharing, greater availability, and it makes me feel good because I’m participating in the distribution of a great piece of Free Software.

There are also music sites (such as jamendo.com) that let you download music with listener-friendly licenses using BitTorrent clients as well. Once you’re done downloading, you can listen to your music and seed it back to their trackers. This allows them to reduce the costs of distribution so that they can use their money to support artists and promote their listener-friendly licensed content.

I recommend that all of you lovely readers consider seeding your favorite distro(s), and consider checking out a listener-friendly music site. Here are the distributions I’m currently seeding and links to where you can download the torrents:

kubuntu desktop 7.04 (i386 and amd64) CDROM
ubuntu desktop and server7.04 (i386 and amd64) CDROM
gNewSense desktop with GNOME (i386) CDROM
gNewSense desktop with KDE (i386) CDROM

I encourage you to put your favorite distro’s torrent links in comments.

Please note, however, that all links to non-free software (except for device drivers) will be removed.