BitComet was recently the focus of an article by Ernesto of the popular TorrentFreak filesharing news network. We are pleased that TorrentFreak has shown interest in our client and were happy to provide them with an interview with our CEO RnySmile, the development team, and our forum support staff.
Here is a link to the article, followed with the Press Release we provided.
BitComet: a BitTorrent client behind a language barrier
Hi Ernesto,
It's a pleasure to speak to you and your readers, we all are fans of
TorrentFreak and enjoy reading your articles. We at BitComet have been very
busy working on our client and developing new features, and would really
like to talk about them in this interview.
To address your questions. Firstly the criticism and rumors about BitComet
that circulated through the English-speaking torrent community were largely
unknown to us, at least to the extent they were known in the English
communities. Being that BitComet is a free software product we haven’t had
the resources to operate a public relations department to service our
international users, issue press releases and communicate with the media. We
have always operated a forum in China where we post updates and users can
communicate with members of the development team. We have also provided
an English forum staffed by volunteers who have done a very good job at
assisting BitComet users. We also now have a full time English-speaking
representative on staff here in China to help with communications between
our English users and our support staff volunteers in the forum.
Some of the issues we are aware of are very old, yet still seem to be
circulated as rumors, forum posts and such. The first one we are aware of was
with version 0.60 and involved DHT (distributed hash table). This was a
brand new technology at the time and BitComet was one of the first
BitTorrent clients to incorporate it, and like all new developments, bugs are
to be expected. Using DHT, BitComet could find peers to trade with and even
operate independently of the tracker in a case where the tracker was offline or
unresponsive. In that version some users discovered a way to force BitComet
to enable DHT even on torrents tracked by private trackers. This could enable
users to avoid ratio tracking on those trackers.
Within two weeks of the discovery of this bug we withdrew version 0.60
and replaced it with the previous release 0.59. Then a few weeks later we
released version 0.61 that didn’t have the bug. To this day we still get reports
of private trackers that don’t allow users to use our client and when asked
why, they usually say that they heard it (BitComet) doesn’t respect the"private flag"
on torrents, even though we have released over sixty stable
versions since this bug and none of them have any such problems.
We have also heard various unfounded rumors about non-existent issues
like “hammering the tracker”, meaning they claim that BitComet asks for
updated list of peers more often than the tracker requests it. This and other
claims we have heard are untrue and none of the them have ever included any
kind of evidence. BitComet contacts the tracker at intervals set by the tracker
and cannot contact the tracker more often on its own. I will add that any
BitTorrent client can manually update the tracker, and it is possible for the
user to repeatedly update the tracker, creating the behavior this complaint
describes. There are also 3rd party applications available, often called
“accelerators” or “patches” that increase the frequency of tracker updates.
Most of these also contain some type of malware and we strongly discourage
their use. Many even steal the logos of the client they are targeting so that
they look like official products, but these are hacks and can be very risky to
use. They are marketed for all the major BitTorrent clients, not just BitComet,
but if a tracker administrator witnessed a peer repeatedly updating the tracker
too often, then they really should test the version of that client and if the
official client version doesn’t show this behavior, then it’s the user that
installed some type of hack, and in turn it is that user who should be banned,
not the client he was using.
One issue that is worthy of mention is the claim of BitTornado's developer
(The Shadow), who seems to have rushed to the conclusion that our client
was designed to abuse his technology that he called “superseeding”. Mr
Hoffman (The Shadow) claimed that our client repeatedly disconnected and
reconnected to other peers in order to obtain an optimistic unchoke (a
BitTorrent protocol feature designed to help peers get started in the swarm).
This has been proven to be untrue in independent testing, and even if there
was a problem with the way BitComet interacted in a superseed environment,
BitComet existed first, so it would have been Mr. Hoffman’s fault for not
considering the way existing clients in the swarm behaved before he
introduced his new developments, and to simply throw them out there then
blame the competition for bugs in his own design (which in fact don’t even
exist), was unprofessional and uncalled for. There have also been some
criticism regarding stability issues. This was primarily related to a complete
core re-write that [began with version .71. In hindsight, we can say it was
premature to release that version, but before we fully explain I think we
should address your question about new features and our “vision” for the
future of BitComet, as these are all related.
One thing we wanted to do was make BitComet into more than just a
BitTorrent client. We wanted our users to be able to use one program to do all
their downloading, no matter what the source of the files was, or the protocol
used to get them. This in itself is really nothing new because there have been
many multi-protocol download clients over the years, but our vision was
much more ambitious than just designing a client that can download torrents
as well as files hosted on other networks; we wanted to combine the
protocols and give BitComet the ability to download files from any
combination of sources, concurrently. Doing this is actually much more
complicated than it sounds. Designing software that can download a torrent
and get some (or all) of the contents from other BitTorrent swarms or
nonBitTorrent sources introduced many complications, and we realized that the
only way to address this was to do a complete core re-write. We did do some
beta-testing up to and during the run of stable version .70, but soon felt the
only way to get the necessary feedback data to improve the product was to
issue a stable release. As it turns out version .71 was less than stable for most
users, but with the team working at a dizzying pace, we were able to achieve
a stable product within several versions, and then we began the task of
introducing the new abilities and features.
One of our first additions was to add an HTTP/FTP download manager.
This feature is completely free and an integrated part of the BitComet client,
and also will optionally integrate with popular web browsers, so users have
the option to let BitComet handle all their web downloads. This gives you the
ability to pause your downloads (if the server allows), and the ability to open
up to 20 concurrent connections per file to help you download the files faster.
This feature quickly became very popular with our users. We then began
working on adding eMule support via an optional plugin, so users could
download files from the former eDonkey2000 (ed2k) network that is still a
very popular network for file sharing.
As the next logical step, we began working on or own proprietary file
sharing protocol which we call LT-Seeding (long term seeding). When this
option is enabled, BitComet clients can search for peers on the LT-Seeding
network and in many cases, greatly speed up the downloads of their files.
LTSeeding has become a very popular download tool for BitComet users, many
of whom report a huge increase in download speed when the option is
enabled.
How LT-Seeding works is simple. During the download process BitComet
can connect to LT-Seed peers for both download and upload. After a
BitTorrent task is complete, and has met its seeding goal via BitTorrent, the
task is then stopped and remains available for LT-Seeding. At this point
BitComet will offer the files to other peers who have LT-Seeding enabled.
This however is done only when there is sufficient upload bandwidth
available, uploading to BitTorrent and ed2k peers is given priority. Naturally
a BitComet peer could complete an unseeded or poorly seeded torrent from
LT-seed connections, as well as any of the other protocols supported, so this
can benefit the overall health of the entire community.
LT-Seeding resources are distributed to those who contribute the most,
much like BitTorrent protocol does. We use an optional system we call
“Comet ID” (formerly BitComet Passport), that logs a user’s time online and
amount uploaded and increases him in rank, so higher ranks are given access
to more resources. Use of this feature isn’t required to use LT-Seeding. All
users are given access to the base amount of resources, but those who use and
contribute more, are entitled to more LT-Seed connections, and can often
download faster.
Now came the most difficult part, getting all these protocols to work
together. We knew that giving BitComet the ability to download from
multiple locations and protocols would be useless if we didn’t give it the
ability to find the locations of these files. BitComet now has the ability to
search for mirror locations of the data you’re downloading and effortlessly
connect to any combination of sources regardless of the protocol used to do
the downloading. This can mean that a user connected to a poorly seeded or
unseeded torrent could complete the download by connecting to peers of
adifferent torrent with some or all the the same content, and during the process
of implementing these features we have introduced the ability to locate the
files from other sources, like HTTP/FTP servers, eD2k networks, and our
LTSeeding enabled clients. Some of these efforts have been more successful
than others, but overall this project has been very successful and offers
benefits to not only the BitComet user, but to the entire community. This
would all be done automatically and unless the user was monitoring its
functions, all they would know is that they downloaded the files effortlessly,
where no other peers using traditional BitTorrent clients were able.
Although our original goal was simply to make the downloading more
efficient, I’m sure you’ll agree this is a very pleasant bonus if our client is able
to save dead or dying torrents, and in turn contribute to the entire file sharing
community.
We have recently introduced an optional service called VIP downloading.
When enabled, the VIP servers operate like normal peers in a swarm, they
obtain data from other peers, and store the data on their memory temporarily,
waiting to be transferred to the user. Because these servers operate on a very
high bandwidth connection, they can upload and download far faster than any
user on a residential Internet connection, therefore obtain the files in a
fraction of the time and send them to the user much faster than they would be
able to get them using traditional BitTorrent systems. Due to legal concerns,
all the pieces of data obtained on behalf of the user are deleted as soon as the
cycle of downloading and uploading is completed, and they are successfully
transferred to the VIP users, then the next group of pieces will be obtained
and transferred like the previous ones. This could greatly accelerate a user’s
download speed if they are suffering from a below-average download speed,
and will be most effective for users that have a very restrictive upload speed.
This service also serves the entire BitTorrent swarm because it’s the speed at
which it is able to upload that enables it to obtain the files much faster than
the user normally could.
There is also a new plan under development currently, which is called
Anonymous Download. When users are Anonymous downloading, they will
only request pieces from our server, not from other peers in the swarm,
hence their IPs will be protected by us, so they will not leave any trace of
what they have downloaded. However, this plan is still in progress, it may
take another couple of months to formally appear in the BT community.
Another new feature introduced in BitComet is designed to demonstrate
the accuracy and transparency of the way BitComet operates in a private
tracker environment. The latest version of BitComet (1.25) has introduced a
new feature, namely "show log of trackers from tracker list ". This feature is
especially helpful when downloading private torrents. In the tracker log,
users are able to see what information was sent to the private tracker, such as
upload and download rate, hash code of the task, peer information, and other
information from the local client; the comparison between actual upload and
download rates and the rates displayed in the tracker log will provide
credibility for BitComet, that all the data BitComet sends to tracker is both
accurate and protocol compliant.
We also added a few features to reduce the need of index sites and also aid
users in determining the validity of the content they download. These features
are “Torrent Exchange” to trade magnet links with other BitComet clients, a
“comments” section for users to share opinions anonymously, and a
“snapshot” indexing service to give users a hint of what they’re about to
download.
So this should give you a general overview of the improvements and
enhancements we’ve introduced that required us to do the original core
rewrite of version .71. For the most part, all of these features are fully
functional and stable, but there were obvious growing pains that cost us some
of our userbase, but we’re hoping many of these users will return and see
what it is we have been working so hard to develop, as well as gaining many
new users.
You had asked what started this all, and where it began. In the beginning I
was using another BitTorrent client developed on Python, and after running a
torrent all night long I noticed my harddrive was running like crazy, grinding
away as the torrent progressed and I wondered why the developers didn’t usea
disc cache to prevent the constant need for repeated read/writes. This client
also didn’t have the ability to download more than one torrent at a time, so
being a C++ programmer, I began development on a new client that was
initially called “SimpleBT”, which was originally designed to simply run
torrents and introduced a disc cache as well as the ability to download
multiple torrents. This project eventually grew to be much more than a simple
BitTorrent client so we eventually changed the name to BitComet. The
current BitComet development team consists of approximately 20 people.
In terms of our users, there are an average of 2.5 million people using
BitComet everyday. Our users come from all over the world, the top 10
countries with highest user percentage are,
Chinese mainland(9.27%), Japan (8.5%), Taiwan (7.03%), Thailand (6.07%), Poland (6.03%), Bulgaria
(5.79%), Spain(4.78%), United States (4.64%), United Kingdom (4.17%), and Hong Kong (4.17%).
Regarding our competition, we believe competition helps improve
BitTorrent download software. We respect the developers of all other
competing clients and although we would be well justified to return the
public slander we’ve read in some of their forums, we prefer to let the users
develop their own opinions and refuse to get “in the gutter” and throw insults
about.
As for what we are most proud of, I'd say the ongoing task of integrating
the new technologies into BitComet. It was a long, hard, and ongoing task to
get these new features to all work together and develop a stable product.
That pretty much sums up everything we are going to talk about here,
thank you for your time and we extend everyone at TorrentFreak, and your
readers our warmest greeting.
*Initial English draft of this document written by The UnUsual Suspect, compiled from notes provided by RnySmile and the
BitComet development team, translated into English by Lucy26. Revisions and corrections were compiled by the joint
efforts of Kluelos, Cassie, GreyWizard and Vasy