There are several choices here, because unlike some peer to peer applications (such as Kazaa), the BitTorrent implementation is open source. This means that programmers are free to take the source code to the program and modify it, if they feel there is something they'd like to change. Here are the various clients of which I am aware:
Microsoft Windows
· The Shad0w's experimental client - Recommended! This client incorporates the codebase of the official version as well as all the improvements of the experimental version, below. Additionally, there are some misc. bug fixes, improvements from the latest development CVS sources, a user preferences feature that remembers its settings, and more. I highly recommend this version! (alternate) (alternate 2)
· burst! - Recommended! This client features a smaller memory footprint compared to the others, due to replacing the wxPython GUI with one written in Delphi. The GUI lets you control multiple transfers from a single window, in addition to many other handy features such as a built-in TorrentSpy-like capability. It uses the same Python back-end as The Shad0w's client so you also get all of the recent developments included therein.
· burst plus! - A client which is based on the burst base and includes Spanish language support, as well as some other additions.
· SimpleBT - Another fork of the burst code base that features Chinese language support.
· ABC ("Another BitTorrent Client") - This is a relatively new client that includes many of the most recent changes in the experimental versions, as well as other added features such as controling multiple downloads from a single window, queueing, automatic seeding, etc. See also: Sourceforge page.
· Official client - This is the "official" client in that it is the latest supported version from Bram Cohen, architect of BitTorrent. It has the fewest features of all the clients, and releases are much more conservative than the experimental versions. Use this if you want stability but don't need any of the common features of the other clients, such as upload rate limiting. See also: (CVS view), Sourceforge page.
· Eike Frost's Experimental client - This is based on the official version, with patches to allow upload rate control and show statistics about the number of peers and seeds, among other things. New in the "-2" revision is support for displaying additional details about the peers that are connected, as well as some annoyance and bug fixes.
· Azureus - A very nice Java client that incorporates a full-featured GUI with extensive visualizations/statistics about the transfer. You will need the 1.4 JRE installed to run this, which can be obtained from this link. See also: Screen shots.
· Personal Torrent Collector (PTC) - This is an alternative GUI interface to the Python BitTorrent client. It has support for a number of interesting features, such as the ability to control the total bandwidth usage of a group of BitTorrent transfers, and RSS syndication for organizing torrent files. See also: SourceForge page.
· Shareaza - Newer public beta versions of this program now include BitTorrent support, in addition to the eDonkey2k and Gnutella protocols. However, the BitTorrent support may still have bugs, and some things (such as seeding a file) may not be as straightforward as with dedicated BitTorrent clients.
· NovaTorrent - I welcome reviews of this client. :-) I have not personally evaluated it yet.
· BitTorrent++ - This is an alternative to the official client. It supports extra functionality such as multiple downloads from a single GUI. Some people (myself included) have experienced major bugs with this program, so consider it unstable and use a different client unless you want to experiment. It appears to be abandoned and has not had any bug fixes in a long time. Therefore, since these bugs have the ability to adversely affect the performance of the BitTorrent swarm, so pleae do not use this client.
2.9.50
Where can I download the BitTorrent program?
What other BitTorrent-related utilities are out there?
· TorrentSpy - Recommended! An MS Windows tool which allows you to query a tracker about a specific torrent, view metadata info, check a file's hashes, etc. A new feature is the "create" tab for making torrent files to upload.
· maketorrent - A utility for creating torrent files, by the author of the burst! client. Version 1.x of MakeTorrent was a modified version of the Python 'completedir' program with extra features. Version 2.x is a complete rewrite in Delphi. Highly recommended!
· completedir 1.0.1 - A utility for creating new .torrent files, part of the official BitTorrent client package. This is packaged as a Windows installer, get the source code for use with other platforms.
· BNBT - This is a C++ implementation of a BitTorrent tracker. It should compile under most any Unix with GCC available, as well as MS Windows with MSVC (binaries included.) It includes all of the functionality of the reference Python tracker, but it also includes many enhancements: user accounts, improved web interface, statistics, etc. See also the TrackPak for a bundled BNBT and installer that's easy to use.
· Java BitTorrent Tools - A metafile viewer/editor, availability checker, and a basic tracker.
· BTChange 0.94a - For modifying tracker info in an existing .torrent file. Use this if the tracker changes, so that you don't have to recreate the file. See also: Sourceforge page.
· PHPBTTracker - a free (GPL) tracker implementation in PHP with a MySQL back-end, includes built-in statistics collection and reporting. See also: sample output.
· DumpTorrentCGI - Use this handy web page to parse and output the contents of a .torrent file (from either your local system or a link URL.) Use this to quickly determine a torrent's hash ID or which tracker is hosting it.
· trackerlyze.pl 1.11 - A free (GPL) Perl script that analyzes the logfile of a tracker and creates graphs and reports of the bandwidth used and number of peers/seeds. See also: Home page.
· libbt - A library implementation of the BitTorrent protocol in C. This project is still under development, and is not suitable to end-users at this point.
How do I uninstall BitTorrent?
MS Windows
Go to Add/Remove Programs in the Control Panel. There should exist an entry for BitTorrent. If it's not there, suspect an incorrect install. You can always reinstall the latest version and then uninstall it.
If you know what you are doing, you can manually remove BitTorrent by deleting the directory C:\Program Files\BitTorrent\ (substituting the actual location of your Program Files dir) and removing the following registry keys:
· HKEY_CLASSES_ROOT\.torrent
· HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/x-bittorrent
· HKEY_CLASSES_ROOT\bittorrent HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\BitTorrent
What do all these words mean? (seeding, uploading, share rating, etc.)
Here is a brief list of words associated with BitTorrent and their meanings.
torrent
Usually this refers to the small metadata file you receive from the web server (the one that ends in .torrent.) Metadata here means that the file contains information about the data you want to download, not the data itself. This is what is sent to your computer when you click on a download link on a website. You can also save the torrent file to your local system, and then click on it to open the BitTorrent download. This is useful if you want to be able to re-open the torrent later on without having to find the link again.
In some uses, it can also refer to everything associated with a certain file available with BitTorrent. For example, someone might say "I downloaded that torrent" or "that server has a lot of good torrents", meaning there are lots of good files available via BitTorrent on that server.
peer
A peer is another computer on the internet that you connect to and transfer data. Generally a peer does not have the complete file, otherwise it would be called a seed. Some people also refer to peers as leeches, to distinguish them from those generous folks who have completed their download and continue to leave the client running and act as a seed.
seed
A computer that has a complete copy of a certain torrent. Once your client finishes downloading, it will remain open until you click the Finish button (or otherwise close it.) This is known as being a seed or seeding. You can also start a BT client with a complete file, and once BT has checked the file it will connect and seed the file to others. Generally, it's considered good manners to continue seeding a file after you have finished downloading, to help out others. Also, when a new torrent is posted to a tracker, someone must seed it in order for it to be available to others. Remember, the tracker doesn't know anything of the actual contents of a file, so it's important to follow through and seed a file if you upload the torrent to a tracker.
reseed
When there are zero seeds for a given torrent (and not enough peers to have a distributed copy), then eventually all the peers will get stuck with an incomplete file, since no one in the swarm has the missing pieces. When this happens, someone with a complete file (a seed) must connect to the swarm so that those missing pieces can be transferred. This is called reseeding. Usually a request for a reseed comes with an implicit promise that the requester will leave his or her client open for some time period after finishing (to add longevity to the torrent) in return for the kind soul reseeding the file.
swarm
The group of machines that are collectively connected for a particular file. For example, if you start a BitTorrent client and it tells you that you're connected to 10 peers and 3 seeds, then the swarm consists of you and those 13 other people.
tracker
A server on the Internet that acts to coordinate the action of BitTorrent clients. When you open a torrent, your machine contacts the tracker and asks for a list of peers to contact. Periodically throughout the transfer, your machine will check in with the tracker, telling it how much you've downloaded and uploaded, how much you have left before finishing, and the state you're in (starting, finished download, stopping.) If a tracker is down and you try to open a torrent, you will be unable to connect. If a tracker goes down during a torrent (i.e., you have already connected at some point and are already talking to peers), you will be able to continue transferring with those peers, but no new peers will be able to contact you. Often tracker errors are temporary, so the best thing to do is just wait and leave the client open to continue trying.
downloading
Receiving data FROM another computer.
uploading
Sending data TO another computer.
share rating
If you are using the experimental client with the stats-patch, you will see a share rating displayed on the GUI panel. This is simply the ratio of your amount uploaded divided by your amount downloaded. The amounts used are for the current session only, not over the history of the file. If you achieve a share ratio of 1.0, that would mean you've uploaded as much as you've downloaded. The higher the number, the more you have contributed. If you see a share ratio of "oo", this means infinity, which will happen if you open a BT client with a complete file (i.e., you seed the file.) In this case you download nothing since you have the full file, and so anything you send will cause the ratio to reach infinity. Note: The share rating is just a number that is displayed for your convenience. It does not directly affect any aspect of the client at all. In general, out of courtesy to others you should strive to keep this ratio as high as possible, of course.
distributed copies
In some versions of the client, you will see the text "Connected to n seeds; also seeing n.nnn distributed copies." A seed is a machine with the complete file. However, the swarm can collectively have a complete copy (or copies) of the file, and that is what this is telling you. Referring again to the "people at a table" analogy, consider the case where the book has 10 pages, and person A has pp.1-5 and B has pp.6-10. Collectively, A and B have a complete copy of the book, even though no one person has the whole thing. In other words, even if there are no seeds, as long as there is at least one distributed copy of the file everyone can eventually get a complete file. Meditate on this, the Zen of BitTorrent, grasshopper.
choked
This is a term used in the description of the BitTorrent protocol. It refers to the state of an uploader, i.e. the thread that sends data to another peer. When a connection is choked, it means that the transmitter doesn't currently want to send anything on that link. A BT client signals that it's choked to other clients for a number of reasons, but the most common is that by default a client will only maintain --max_uploads active simultaneous uploads, the rest will be marked choked. (The default value is 4 and this is the same setting that experimental client GUI lets you adjust.) A connection can also be choked for other reasons, for example a peer downloading from a seed will mark his connection as choked since the seed is not interested in receiving anything. Note that since each connection is bidirectional and symmetrical, there are two choked flags for each connection, one for each Tx endpoint.
interested
Another term used in the protocol specification. This is the corollary to the choked flag, in that interested refers to the state of a downloader with respect to a connection. A downloader is marked as interested if the other end of the link has any pieces that the client wants, otherwise the connection is marked as not interested.
snubbed
If the client has not received anything after a certain period (default: 60 seconds), it marks a connection as snubbed, in that the peer on the other end has chosen not to send in a while. See the definition of choked for reasons why an uploader might mark a connection as choked. The real function of keeping track of this variable is to improve download speeds. Occasionally the client will find itself in a state where even though it is connected to many peers, it is choked by all of them. The client uses the snubbed flag in an attempt to prevent this situation. It notes that a peer with whom it would like to trade pieces with has not sent anything in a while, and rather than leaving it up to the optimistic choking to eventuall select that peer, it instead reserves one of its upload slots for sending to that peer. (Reference)
optimistic unchoking Periodically, the client shakes up the list of uploaders and tries sending on different connections that were previously choked, and choking the connections it was just using. You can observe this action every 10 or 20 seconds or so, by watching the "Advanced" panel of one of the experimental clients.
1.9.50
Useful BitTorrent Resources
BitTorrent sites come and go often. In the past I had attempted to keep a set of links in this section, but this requires constant maintenance. Therefore, I will simply point you to the three main BT link sites out there:
link2u.tk (or use the direct link without popup)
Section31's Torrent Links
BitTorrentSites
btsites.tk (or use the direct link without popup)
LickMyTaint (select BitTorrent in the left-hand frame)
Most every BitTorrent site out there is bound to be listed on one or more of the above sites, so if you're looking for interesting things try those links. If you're looking for a particular thing and want to search for it, you can try one of the following: NovaSearch, watchen.tv, and torrent-episodes.cjb.net. But be aware that things offered with BitTorrent tend to be short-lived and so take all search results with a grain of salt. Any listing that's older than a few weeks is likely to be useless.
Another good source for torrents are the various Forums, such as: Filesoup.com, Digital Update, Bytemonsoon.net (completely unrelated to the old bytemonsoon.com), p2pforums.com, btrocks.com, and probably many others.
Finally, there are a number of web sites that offering 100% legitimate BitTorrent files: BitTorrent Files for Slashdot Effect Victims, TradeFriendly torrents at etree.org, Colorado Tapers community site, Phishhook, Musicfreaks
More BitTorrent Help
Official BitTorrent site - Author Bram Cohen's site
FileSoup's FAQ - Quite comprehensive guide, a bit site-specific
Smiler's BitTorrent links - Many relevant sites
BitTorrentFAQ Wiki - A Wiki for BT information
BitTorrent FAQ - a html version of the (brief) FAQ at bitconjurer.org.
Evil Timmy's BitTorrent FAQ - General BitTorrent information, as well as help opening some of the common file formats out there.
The (somewhat outdated) official protocol specification.
Unofficial extensions/additions to the protocol: multitracker (backup tracker) spec, super-seed mode explained, web-seeding.
Mailing Lists
There are a handful of BitTorrent-related mailing lists maintained on Yahoo Groups. There are surely many more BitTorrent related YahooGroups than what I've listed below, so you may want to search for "torrent" or "bittorrent" at the yahoogroups.com site and see what's out there. To join these lists, either click on the link and use the web interface, or send an email message to group-subscribe@yahoogroups.com where group is the name of the group. Please ensure that your post is on-topic and sent to the correct list.
BitTorrentTalk - A general list for anything related to BitTorrent, such as finding sites or help with converting/viewing/burning downloaded files, etc.
torrent-talk - General discussion area for users of BitTorrent software. Post here if you are looking for links, specific files, reseed requests, help opening/converting a file, etc.
Bittorrentfiles - For exchanging links to files, etc.
BitTorrent - This list is strictly for development of the BitTorrent software. Post bug reports and questions on the BitTorrent protocol, etc. Do NOT ask about where to find files or how to open them, convert movies, play multimedia, etc. Note: I have assembled an archive of all posts to this Yahoo-group in mbox fomat, click here to download it. This file is approx 1.4MB in size (compressed with bzip2) and contains approx. 3300 emails. The messages are in standard mbox format which can be imported by most all email applications, and the Yahoo-groups advertisements and other clutter has been removed. Use this archive if you wish to search or browse the messages offline. (This archive made with the yahoo2mbox tool and some perl scripts to clean up the Subject lines.)
BitTorrent_help - Post requests for technical support for using the BitTorrent software.
btports - A group for the technical discussion of the development of BitTorrent clients in other languages or platforms.
Newsgroups
gmane.network.bit-torrent.general - A mail-to-news gateway of the Yahoogroups BitTorrent mailing list, provided by gmane.org.
alt.bittorrent - Availability of this group may be limited, I believe it was recently created.
IRC
#bittorrent on irc.freenode.net - NOT for discussion of where to get files, only tech support and related questions.
#suprnova.org on wikked.irchat.tv
#bt on EFnet
#tvtorrents on EFnet
#bittorrent on IRCnet
#bittorrent-games on irc.irchighway.net
#scifi-torrent on cyber2k.net