[BitTorrent] Re: KEY tracker extension (and peer ids)

Harold Feit - Depthstrike.com Administrator dwknight at depthstrike.com
Thu Dec 30 11:09:22 EST 2004

Hash: SHA1


The key announce paramater is an extension of the basic HTTP(S) based
announce protocol. 

Generating new peer ids per individual torrent session is the way
that current clients do it in my logs. Even if multiple torrents are
active on the same port. The only time I have seen a peer id be
reused is when multiple trackers are announced to at the same time
for the same torrent.

- -----Original Message-----
From: lazy_lightning_99 [mailto:terrapin at sympatico.ca] 
Sent: Thursday, December 30, 2004 11:15 AM
To: BitTorrent at yahoogroups.com
Subject: [BitTorrent] Re: KEY tracker extension (and peer ids)

- --- In BitTorrent at yahoogroups.com, "smilindog2000" <bill at v...> wrote:
> --- In BitTorrent at yahoogroups.com, John Hoffman <theshadow at s...>
> > The concept behind the "key" extension in the tracker announce is
> > simple.  The peer chooses it randomly and will send the same
> > value 
> > each announce.  This allows the tracker to verify the contactee
> > is 
> > same peer even if its IP has changed, and lets the tracker update
> > information.
> I'm trying to figure this stuff out now.  If we get some good
> descriptions here, I'll try to add them to the wiki.

Good idea.  As a client developer, the wiki is the first (and most
useful) place that I check.  It's more than a little frustrating to
find some extensions (KEY, and UDP tracker, etc...) that appear to be
semi-widely supported but are not part of the spec there.  As I said,
searching the Yahoo group is more or less useless.

> The peer_id is enough for the tracker to identify a contactee, even
> the IP has changed, so that's not what the key is for.  I think the
> key flag is probably meant to keep other contactees from pretending
> be you during a download session.  You never tell anyone else the
> but you do tell them your peer id.  So, the only secret information
> you tell the tracker is your key for the download session.  That
> it the only reliable way to identify you.
> I think from the client point of view, you just generate the random
> key at the same time you generate the peer id, but the only time
> you ever use the key is when talking to the tracker.

That makes sense.  Can we get confirmation of this?  Also, is this
something that is only supported in the UDP tracker spec, or in the
regular tracker protocol as well?

> I think there's a bit more to know about peer id's, too.
> From the protocol spec, you'd think that you could use the same
> peer id over and over if you wanted, and never change it.  However,
> the trackers don't seem to expect clients to reuse peer ids.  Some
> wont let me re-download, since they figure I've already tried it
> once.  But, if I use a new peer id, I get through.  This may seem
> like
> reasonable behavior, but users simply have to have the ability to
> re-download.  Thus, it seems that peer-ids can't actually be

This was another question I had... when to generate a new peerid. 
I've been generating it for each torrent session, not for each client
installation.  Haven't had any problems in testing, but not sure if
this is the right way in a live scenario, or for same torrents that
are resumed at a later date.


- -- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.296 / Virus Database: 265.6.5 - Release Date: 12/26/2004

Version: PGP 8.0.3


------------------------ Yahoo! Groups Sponsor --------------------~--> 
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!

Yahoo! Groups Links

<*> To visit your group on the web, go to:

<*> To unsubscribe from this group, send an email to:
    BitTorrent-unsubscribe at yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:

More information about the BitTorrent mailing list