How BitTorrent Private Trackers Work

I'd like to use BitTorrent for sharing files with Nessie. So, I started doing some research about private trackers. It took me quite a while to scrape together enough information about BitTorrent protocols to figure out how private trackers work. (It would have helped if I had found the official BitTorrent specifications sooner.) It turns out to be quite simple.

Basically torrent trackers and clients exchange dictionaries of meta-data. In the meta-data sent from the client to the tracker is a passkey (with the key name 'key'). The passkey is per-user and added to the announce URL in the .torrent file which is dynamically generated for each registered user that downloads it. The tracker then uses that key like a session key in a web app. The key can be used for connection limiting, ratio tracking, IP restriction, etc. Useful!

When trackers send data back to the clients, a private flag bit is set (with the key name 'private'). Well behaved clients will then refrain from leaking the passkey/announce URL to other users via DHT, peer exchange, etc. But, if a client misbehaves, and the tracker security catches it, it's trivial to invalidate a passkey and plug the leak.


  1. Neat
    THankx i've been looking for this.

    Could you tell me more detail on this?

    And also how to connection limiting,etc

    So basically tracker just see the key, and then put on session if there are other connection using the same torrent file , Reject it?

  2. Yes, the server controls connections however it likes by key. Since every user has their own key, you can associate it with any parameters you like (IP, number of connections, etc.).