Search the web
Sign In
New User? Sign Up
BitTorrent
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Show off your group to the world. Share a photo of your group with us.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
bt2 protocol features   Message List  
Reply | Forward Message #5481 of 6736 |
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




Thu Jun 3, 2004 1:02 am

kaipaulson
Offline Offline
Send Email Send Email

Forward
Message #5481 of 6736 |
Expand Messages Author Sort by Date

After much arguing, cogitating, arguing, and cogitating, the bt2 protocol designs are now further along than they were before. Features planned for bt2 - ...
Bram Cohen
kaipaulson
Offline Send Email
Jun 3, 2004
1:02 am

... Sweet! ... The peers could provide a list of root hashes for other files they have (all of? Parts of?) ? And the primary tracker URL for each hash? Or am...
Blue Boar
ryanlrussell
Offline Send Email
Jun 3, 2004
3:08 am

... When peers connect to each other they'll both all announce the individual files that they have. Tracker announces will probably give a unique identifier...
Bram Cohen
kaipaulson
Offline Send Email
Jun 3, 2004
6:08 am

... Related thing, how about peers refering to pieces *strictly* by hash? This adds to anonimity by allowing for lack of a better term, better "zombie" clients...
Elliott Mitchell
ehem@...
Send Email
Jun 5, 2004
5:42 pm

... I'm not sure that just a hash with no further information is sufficient to uniquely identify a chunk. There are only so many hashes possible - and although...
Vitenka
vitenka_zen
Offline Send Email
Jun 5, 2004
9:33 pm

... True, it is a valid concern; but you have to look at the statistics. Figure, that maybe, perhaps there might be a petabyte (2^50) of data floating around...
Elliott Mitchell
ehem@...
Send Email
Jun 7, 2004
8:18 pm

... It turns out that the size of those hashes can be fairly significant, and the program logic winds up doing a lookup to translate back from hash to index on...
Bram Cohen
kaipaulson
Offline Send Email
Jun 6, 2004
8:14 pm

... Let me know if any of this is wrong... If you were to eliminate the "offset" and "length" fields when requesting a chunk, and make the chunksize...
dpmott@...
energizerrab...
Offline Send Email
Jun 7, 2004
3:24 pm

... Yes, a piece size of between 16 kb and 64 kb would be required and that would significantly increase the protocol overhead compared with 2 mb pieces. And...
Olaf van der Spek
xtf2007
Offline Send Email
Jun 7, 2004
4:10 pm

... Really? The mainline client by default already requests chunks in mere 32KB chunks and will ignore requests larger than 256KB. Even if this size has to be...
Elliott Mitchell
ehem@...
Send Email
Jun 7, 2004
8:45 pm

... You'd have to send more HAVEs and you need more hashes. ... That depends on the actual implementation of merkle trees. ... True, but that'd introduce the...
Olaf van der Spek
xtf2007
Offline Send Email
Jun 7, 2004
8:56 pm

... Yes, but how large is that? 8-12 additional bytes is not much additional data unless you're sending out *lots* of them (either a tiny block size or a...
Elliott Mitchell
ehem@...
Send Email
Jun 8, 2004
2:38 pm

... Personally I think the idea of retrieving blocks by their hash codes is quite beautiful (I was throwing this idea around in here a month or two ago, but my...
Stephen Thomas
flabdablet
Offline Send Email
Jun 8, 2004
8:36 pm

... I'd have to disagree; the overhead in requesting by offset would be 4 bytes (2^32*16384 = 64 terabyte max torrent size), while requesting by hash would be...
John Hoffman
theshadow@...
Send Email
Jun 9, 2004
4:40 pm

... Assuming you use the full hash value during the request (you need all of it to check the block, but not all of it is needed to make an unambiguous...
Elliott Mitchell
ehem@...
Send Email
Jun 9, 2004
7:07 pm

... I wouldnt drop part of the hash. It might be nice if there was an option to use different hashes in bt2, but dropping it is a bad thing, as constructing...
Justin Cormack
dildocentral
Offline Send Email
Jun 9, 2004
7:32 pm

... True. Notice though that this is a separate issue. Over the wire you just need to identify which piece you're looking for. It seems unlikely someone will...
Elliott Mitchell
ehem@...
Send Email
Jun 9, 2004
10:46 pm

... You need to avoid clients that lie to try to get more bandwidth from you. I wasnt thinking of accidents. I have heard that there are ssh man in the middle...
Justin Cormack
dildocentral
Offline Send Email
Jun 9, 2004
11:04 pm

... That's true, provided you do your requests one at a time. But if you request several blocks at once from a given peer (the normal case, I would think, for...
Stephen Thomas
flabdablet
Offline Send Email
Jun 11, 2004
7:51 pm

... fwiw, its been done in the mojonation project (a large source of inspiraton for Bram to have bittorrent to lack complexity ;) and its successors mnet &...
Gregory P. Smith
gregory_p_smith
Offline Send Email
Jun 9, 2004
11:28 pm

... As far as I can tell from a cursory scan of the mnet docs, mnet doesn't use a tree of hashes at all, and does a lot of fooling around with redundancy...
Stephen Thomas
flabdablet
Offline Send Email
Jun 11, 2004
7:51 pm

... I was unaware of those projects, but will certainly look at them now. Thanks. ... It seems to me that if the system is based on content addressability, ...
Stephen Thomas
flabdablet
Offline Send Email
Jun 11, 2004
7:52 pm

... So if you edited for example a configuration file, it's name would change and you'd have to edit the symlink to link to the new name? That doesn't sound...
Olaf van der Spek
xtf2007
Offline Send Email
Jun 10, 2004
3:54 pm

... This would indeed not be a terribly convenient file system to do *everything* with; its strength would be in storing archival content. However, let's look...
Stephen Thomas
flabdablet
Offline Send Email
Jun 11, 2004
7:52 pm

... Or both. What's your definition of a tiny block size? And of a massive number of peers? ... Because it's the other peer that decides on the requests, you'd...
Olaf van der Spek
xtf2007
Offline Send Email
Jun 10, 2004
3:43 pm

... Well, I've already pointed out that for 256K blocks (current default for the mainstream) and 50 peers (towards the upper end for the mainstream), the...
Elliott Mitchell
ehem@...
Send Email
Jun 11, 2004
7:52 pm

... The piece/chunk distinction is done because if pieces are set to the size of chunks the size of have bitfields becomes unreasonably large. With hash trees,...
Bram Cohen
kaipaulson
Offline Send Email
Jun 8, 2004
8:16 pm

... That translation will need to be done at the final destination, but helper clients need not do that, and can thus remain oblivious. For bandwidth savings...
Elliott Mitchell
ehem@...
Send Email
Jun 7, 2004
8:43 pm

... via ... with a ... sneakernet), and ... "zombie" ... reassemble ... Unless you're talking about setting up a zombie that just finds random pieces and...
pg94au
yahoo_alias@...
Send Email
Jun 11, 2004
7:51 pm
First  | < Prev  |  Last 
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help