A Little Off Code, Computers, Photography and Guns

5Jan/105

Multi-tracker Problems

I can't even begin to describe how annoying it is to download a torrent and to discover that the person that compiled it added a bunch of trackers to it but didn't bother to take into consideration that not all torrent clients (at least one) handle multi-trackers properly if you don't put blank lines in between each tracker.

Like so:

1
2
3
4
5
http://tracker.openbittorrent.com/announce
udp://tracker.openbittorrent.com:80/announce

http://tracker.publicbt.com:80/announce
udp://tracker.publicbt.com:80/announce

Now I know for a fact that μtorrent requires this but I'm not sure about any other torrent clients. But the above list of trackers won't work properly. In fact only the http based trackers will register because of the blank line. For all of the trackers to be used each tracker must have a blank line following it.

Like so:

1
2
3
4
5
6
7
http://tracker.openbittorrent.com/announce

udp://tracker.openbittorrent.com:80/announce

http://tracker.publicbt.com:80/announce

udp://tracker.publicbt.com:80/announce

So please if you're going to post create a multi-tracker torrent at least list all of the trackers properly because it will only do any good if every peer in the swarm has all of the trackers listed in the torrent. Unfortunately most people treat bittorrent like a "set and forget" sort of file sharing protocol but if you setup one small part like that wrong everyone suffers and most people simply won't notice.

Comments (5) Trackbacks (0)
  1. The first example you posted is actually correct, I think, the second example is considered “abusive”.

    Each group of trackers without a space between them is a group.

    µTorrent tries to connect to one random tracker of each group. If the tracker doesn’t work, µTorrent tries another tracker of that group. Multiple groups are handled simultaneously.

    The reason for this, is that the trackers grouped together share peer data. You only need to connect to one of them, because they both have the same peer data.
    For example:

    http://track-01.rarbg.com:8080/announce
    http://track-02.rarbg.com:8080/announce
    http://track-03.rarbg.com:8080/announce

    They’re basically the same tracker, but spread across multiple servers/connections to handle the load/traffic.

    Now I’m not exactly sure which trackers share peer data, but that’s how µTorrent works, and I’m pretty sure that trackers using similar domain names share peer data.

    Actually, if I’m not mistaken, http://tracker.openbittorrent.com/announce is exactly the same tracker as udp://tracker.openbittorrent.com:80/announce. Only, you’re connecting to it via UDP and on port 80 with the latter address. Same with http://tracker.publicbt.com:80/announce and udp://tracker.publicbt.com:80/announce. So in this situation, the first example you posted makes sense, the second is redundant.

  2. Hmm, now that I think about it you are right. If a torrent lists multiple trackers and lets say that one of them isn’t parsed out properly, none of the clients will see it and it’s not an issue because nobody is looking at it, there will be no orphaned peers assuming that they are able to connect to at least one of the other trackers anyway. And in this case openbittorrent is the same tracker operating through different protocols, same applies to publicbt as well.

    Still I find it annoying that people don’t bother to check that when they add trackers that they will parse out properly anyway.

    • Hey so I have always wondered about what you two are talking about for years I’m talking, so anyways it leave off unclear to me, is it best to put a space between the udp and http trackers of the same name or do I group them together? Any help would be much appreciated, thanx.

      • The order in which the trackers appear doesn’t matter. However you must have an extra line between each tracker in order for μtorrent to parse them properly. I’m not sure if this is a problem for other bittorrent clients.


Leave a comment


No trackbacks yet.