BitComet
Encyclopedia
BitComet is a cross-protocol BitTorrent, HTTP and FTP client
Client (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....

 written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 for Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 and available in 52 different languages. Its first public release was version 0.28. The current BitComet logo has been used since version 0.50.

Features

The BitComet program is a multi-threaded multi-protocol hybrid download manager
Download manager
A download manager is a computer program dedicated to the task of downloading possibly unrelated stand-alone files from the Internet for storage...

 and BitTorrent Peer-to-peer
Peer-to-peer
Peer-to-peer computing or networking is a distributed application architecture that partitions tasks or workloads among peers. Peers are equally privileged, equipotent participants in the application...

 (P2P) file-sharing application. It supports simultaneous download tasks. To complete a particular download, it can draw parts of files from many sources across different P2P and client–server protocols.

BitComet's chief features include an embedded Internet Explorer
Internet Explorer
Windows Internet Explorer is a series of graphical web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems, starting in 1995. It was first released as part of the add-on package Plus! for Windows 95 that year...

 window to let users search for torrents. Along with the features typical of contemporary BitTorrent clients, it supports UPnP gateway configuration, bandwidth scheduling, Webseeding, selecting only certain files for download inside a torrent package, NAT traversal
NAT traversal
NAT traversal is a general term for techniques that establish and maintain Internet protocol connections traversing network address translation gateways. Network address translation breaks end-to-end connectivity. Intercepting and modifying traffic can only be performed transparently in the...

 (removed in v.1.03), Peer Exchange
Peer exchange
Peer exchange or PEX is a communications protocol that augments the BitTorrent file sharing protocol. It allows a group of users that are collaborating to share a given file to do so more swiftly and efficiently....

 (in older versions, using a proprietary protocol and starting with v.1.19 also by using the Extension Protocol, implementing a PEX mechanism compatible with µTorrent / Mainline PEX), Initial-Seeding (Super-Seeding) and support for Magnet Links.

When downloading, BitComet gives you the option to prioritize the first and last portions of media files so that files may be previewed before they are completely downloaded.
It also has a "Preview Download Mode" in which all pieces of the torrent will be, basically, downloaded sequentially thus allowing the user to play a media file while downloading (provided that the downloading speed and piece availability stay ahead of playing bitrate).
BitComet also allows users to share their .torrent files, on a searchable P2P network, with other BitComet users through the torrent sharing feature, named "Torrent Share" in previous versions and renamed to "Torrent Exchange" since v.1.17. BitComet uses the Kademlia
Kademlia
Kademlia is a distributed hash table for decentralized peer-to-peer computer networks designed by Petar Maymounkov and David Mazières in 2002. It specifies the structure of the network and the exchange of information through node lookups. Kademlia nodes communicate among themselves using UDP. A...

 (mainline) DHT
Distributed hash table
A distributed hash table is a class of a decentralized distributed system that provides a lookup service similar to a hash table; pairs are stored in a DHT, and any participating node can efficiently retrieve the value associated with a given key...

 to operate even when the tracker
BitTorrent tracker
A BitTorrent tracker is a server that assists in the communication between peers using the BitTorrent protocol. It is also, in the absence of extensions to the original protocol, the only major critical point, as clients are required to communicate with the tracker to initiate downloads...

 is offline. BitComet is capable of downloading files over HTTP and FTP as well as bittorrent, and it includes download plugins for Firefox, Cometbirdhttp://www.cometbird.com/, Internet Explorer, and Maxthon
Maxthon
Maxthon is a free web browser for Microsoft Windows. The latest release, Maxthon 3, supports both the Trident and the WebKit rendering engines....

.

An optional plugin is available to connect to the eD2K
EDonkey network
The eDonkey network is a decentralized, mostly server-based, peer-to-peer file sharing network best suited to share big files among users, and to provide long term availability of files...

 network. The plugin is a modified version of the GPL eMule
EMule
eMule is a free peer-to-peer file sharing application for Microsoft Windows. Started in May 2002 as an alternative to eDonkey2000, eMule now connects to both the eDonkey network and the Kad network...

 program. When installed, it connects automatically to a server.

The software includes an application to play Flash Video files (.flv and .swf files).

Optional standalone software

BitComet.com offers a BitTorrent tracker
BitTorrent tracker
A BitTorrent tracker is a server that assists in the communication between peers using the BitTorrent protocol. It is also, in the absence of extensions to the original protocol, the only major critical point, as clients are required to communicate with the tracker to initiate downloads...

 available for download from the official site. The FLV player program can also be downloaded separately and used independently of the BitComet software.

Hash reporting

Since version 0.86 BitComet includes discussion and stat-tracking features which send information about torrents to the Bitcomet.com servers, including the torrent hash
Hash function
A hash function is any algorithm or subroutine that maps large data sets to smaller data sets, called keys. For example, a single integer can serve as an index to an array...

.

DHT exploit

During version 0.60, BitComet received bad publicity because its implementation of the DHT
Distributed hash table
A distributed hash table is a class of a decentralized distributed system that provides a lookup service similar to a hash table; pairs are stored in a DHT, and any participating node can efficiently retrieve the value associated with a given key...

 feature, which was new at the time, could be exploited to not respect the private flag of a tracker. This allowed users to avoid download and upload ratio restrictions, which are common on private trackers. Some private trackers responded to this by blacklist
Blacklist
A blacklist is a list or register of entities who, for one reason or another, are being denied a particular privilege, service, mobility, access or recognition. As a verb, to blacklist can mean to deny someone work in a particular field, or to ostracize a person from a certain social circle...

ing version 0.60. BitComet developer RnySmile reverted the client back to version 0.59 in response to the blacklisting.

The DHT
Distributed hash table
A distributed hash table is a class of a decentralized distributed system that provides a lookup service similar to a hash table; pairs are stored in a DHT, and any participating node can efficiently retrieve the value associated with a given key...

 exploit was fixed in version 0.61.

Padding files

Starting with version 0.85 (from early 2007), BitComet added an option to its torrent maker that ensures that no two data files in a multi-file torrent occupy the same BitTorrent "piece", in order to support a feature that helps the swarm by allowing files to be obtained from non-BitTorrent sources. To accomplish this, BitComet includes in the torrent empty "padding" files which houses the remainder of each file's last "piece". While these small and harmless files are transparent to the BitComet user, they can be an annoyance to users of other clients, because peers who intend to become seeders must devote resources and bandwidth to the padding files, with no benefit to the non-BitComet users. Other clients could hide these files, as BitComet advises, but they choose not to.
Creation of padding files was enabled by default in version 0.85, and disabled by default in version 0.86 onward.

Validity of criticism

In July 2007, Robb Topolski, a self-described “networking and protocol expert”http://www.zeropaid.com/news/8945/study_examining_the_myths_and_facts_concerning_bitcomet_behavior/ conducted an independent analysis of most accusations leveled against BitComet including the DHT Exploit and Super-seeding controversies mentioned above. He found all but one of the claims to be false or unverifiable. He found that BitComet is not detrimental or malicious to the download or upload speeds of a BitTorrent swarm or the tracker.

The one claim he verified as partially correct was that, "BitComet is a poor peer due to no upload slot control; upload bandwidth is stretched too thin". Topolski's tests indicated that BitComet does lack upload slot control, but only when BitComet is initially seeding a torrent—that is, when BitComet is the only seeding peer in a swarm, it tends to seed less efficiently than the two other clients he tested. Topolski asserts that when BitComet is not the only seeding peer in the swarm, or when it is a non-seeding peer, upload slot control is managed exceptionally well.

FileHippo Controversy

The download site FileHippo
FileHippo
FileHippo is an Internet download website that offers open source, freeware, and shareware programs for Windows. It does not accept user uploaded files...

 ceased carrying new versions of BitComet in April 2008, with this announcement.


As of April 2008 FileHippo will no longer be updating BitComet. As they have copied the FileHippo site text, files, images and update checker and are passing it off as original work. We recommend you use a different more reputable torrent client such as uTorrent.


This occurred after FileHippo reportedly noticed that the design and code of the AppHit.com site was very similar with the one FileHippo used, copying not only icons, but text from FileHippo's website and FileHippo's own original update checking software. FileHippo chose to blame BitComet for this.

BitComet does not own Apphit, and has terminated contractual connection with Apphit. FileHippo has been informed of this but has not responded to date.

Torrent file format

According to the official BitTorrent specification, 'All strings in a .torrent file that contains text must be UTF-8
UTF-8
UTF-8 is a multibyte character encoding for Unicode. Like UTF-16 and UTF-32, UTF-8 can represent every character in the Unicode character set. Unlike them, it is backward-compatible with ASCII and avoids the complications of endianness and byte order marks...

encoded'. When generating torrents on non-Latin character systems such as Chinese or Japanese, BitComet versions prior to 1.20 encoded the files' names and paths using the Windows Chinese/Japanese code page, and stored a UTF-8 version in a non-standard attribute. Starting with the March 2010 release of version 1.20, BitComet's torrent format now conforms to the standard.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK