[BitTorrent] bt2 protocol features

Bram Cohen bram at bitconjurer.org
Wed Jun 2 21:02:22 EDT 2004


After much arguing, cogitating, arguing, and cogitating, the bt2 protocol
designs are now further along than they were before.

Features planned for bt2 -

merkle hash trees - this is by far the most compelling reason to break
compatibility. Files in a multi-file will each have their own hash root.

udp-based tracker protocol (with http-based alternative for those who care
less about bandwidth than convenience)

tracker redirection - when talking to a tracker, that tracker will tell
you where your primary tracker is (usually the one you just hit) and your
backup tracker is. This will enable (1) dynamic tracker load
redistribution, and (2) tracker backups. Of course, some smarts on the
tracker are necessary. When trackers are distributed they either have to
send some peers to each other or make sure a seed is on each tracker, and
when using a backup tracker it has to redirect everyone back to the main
tracker when it comes back up again. Since those smarts don't involve
changing the protocol, I'm completely punting on it until later.

a beefed up peer protocol - there are some subtle changes to the state
machine planned, which are strict improvements but kind of involved so
I'll skip over them now. Also peers will announce which files they want to
enable cross-torrent trading. Finally, announcements of having parts of
pieces will be added, since that's enabled by hash trees. Doing that last
part well requires some smarts, but again the smarts don't change the
protocol so I'm punting.

The above are the things I'm convinced are a good idea. Notably missing is
gossip. Too dangerous, may be added later via an extension mechanism.

The main sticking point left is how to deal with piece sizes - ideally all
peers should be using the same piece size, but whether that's a good thing
to require and if so (or even if not) how to set it I'm not sure of yet.
Also I'm not sure how to make trackers support scrape functionality (or
more to the point, I'm not sure how much scrape functionality to carry
over, and in what way). Other than those issues all that's left is a whole
mess of details.

Rest assured that bt2 protocol will have the same ease of implementation
and reliable compatibilty of bt1. Also rest assured I won't push the damn
thing out until I'm certain it will get feature requests down to a dull
roar for at least a few months.

-Bram



------------------------ Yahoo! Groups Sponsor --------------------~--> 
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/dkFolB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
     http://groups.yahoo.com/group/BitTorrent/

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

<*> Your use of Yahoo! Groups is subject to:
     http://docs.yahoo.com/info/terms/
 



More information about the BitTorrent mailing list