Finally Real P2P With Brains
dfelznic writes: "The mp3 archives of CodeCon are now availble, which is news in itself. But what makes this real interesting is that they are being distributed by BitTorrent. BitTorrent allows users to download a file from multiple different people. Instead of everyone nailing one server, users get the file from other users. Furthurnet uses a similar technology to distribute legal bootlegs of concerts. The archive is available at the BitTorrent demo downloads page. As soon as I started downloading (cable modem) at around 300k I got a request for the file and began uploading at 40k. This could be the answer to the slashdot effect;) Now, who is going to be the first to complain about the use of mp3s instead of oggs?"
Nice idea, I have to say, but my biggest problem with file-sharing utilities is the fact that the file you're looking for isn't going to be the same with everyone. NudeCheerleader(part1).mpeg isn't going to be the same as NudeCheerleader(part1).mpeg on someone elses comp. There's not a way I know of besides implimenting CRC to prevent people from just renaming files into other things. Maybe NudeCheerleader(part1).mpeg is really GoatseLiveVideo.mpeg, just renamed.
Job? I don't have time to get a job! Who will sit around and bitch about being broke and unemployed then?
The latest version of BearShare does this. Of course gnutella is horribly broken and doesn't scale blah blah blah
edonkey has been doing this for ages..
Comment removed based on user account deletion
Doesn't Getright do this already?
And with filesharing, Kazaa/Grokster?
Y2K Compliant since the late 1890s
and compare them to the other files. That would suffice along with file size.
I hate to rain on the parade but Morpheus et al. as well as the latest version of BearShare both do this, and have for some time.
When you say p2p with brains, to me it means somebody has come up with a elegant balance between centralization and search speeds.
Peer broadcasting is hardly something to write /. about, I'd say.
Why would these people use a closed format with possible impending royalty fees when they could use an uber-1337 open source format instead?
:-)
-raph
You have a great product, many customers, and are delivering your product to hordes of happy
customers online....
The key to cheap file distribution is to tap the unutilized upload capacity of your customers. It's free.
Emphasis theirs.
Free to who? You? Maybe not them. Nothing is free. I like the idea, but I really don't like the way they are selling it.
I've had enough abrasive sigs. Kittens are cute and fuzzy.
and kazaa and morpheus (the old one) have been doing the multiple-user download for quite some time
I mean, really. There's *liability* when you're providing an upload. In this case, you can't grab warez without being a warez site, and you can't grab pr0n without being a pr0n site. And, when you download something with a virus in it, or that isn't what it seems to be, why you've contributed back to the community there, too. Could be a _lot_ harder to get sucker-junk out of circulation.
Th3 Fr33L04d3r
Comment removed based on user account deletion
There's no such thing as a "legal bootleg". A bootleg is, by definition, an illegal product. If they let you make a copy, it isn't a bootleg. If you download the source to a GPL program, would you say you've just bootlegged the program?
BitTorrent allows users to download a file from multiple different people. Instead of everyone nailing one server, users get the file from other users.
eDonkey does one better. Even if you only have parts of the file downloaded, you can immediately send parts of the file you do have to other users. And eDonkey has had a pretty good track record. I thought everyone and their mother knows about this, so why was this a Slashdot headline, especially when it's pretentious and untruthful?
"Love heals scars love left." -- Henry Rollins
They use hashes of the file to compair.
-jason m
never eard of it
so when was it that little silly chips own your weak astas-_____?
It is a browser plugin (IE) that creates mini distributed networks based around a website.
So say you start downloading the latest Counterstrike patch from some server. Well you know how servers giving out the CS patch get filled up quickly.
Well if the users were running this program (plugins to IE, no restart neccisary, look if there is a {browser here} version yourself!) then when they started downloading somebody ELSE could start downloading FROM them.
No file synch issues (same file, same source) the server just re-directs future downloaders to current downloads and has the original downloaders forward the files along.
Need help treating your acne? Come here!
Now all they need is a better eName.
Loudcloud working on something like this for a little while... something called "bitcasting"?
EveryDNS. Use it. It works.
AC's need not reply
Ok people, I know we all have this dream of distributed web serving, but as a web developer I feel I must explain why this will not work now:
1) Response Time
To make this work you need more than a fancy P2P network. Remember site like slashdot are database backed and update very quickly. Sure slashdot caches pages, but many things like user preferences and comments are updated way to quickly for a P2P network too distribute it.
2) Security
Yes you can encypt, but who other than a hobbist is going to put the content that represents them on several machine at once and expose themselves to someone breaking it. If someone was successful they could do things like change the slashdot homepage for those they are distributing to. You cannot be a credible source and distribute yourself like that.
3) Slashcode (yeah I know, slashdot specific)
Have any of you actually read slashcode? I'll tell you what, it is damn complicated. There is no way a simple patch is going to make a site like this distributable. The entire thing would need redesigned, which is no small job. I'd say that this would be the case for any database backed site as well.
4) Databases
Since I mentioned a few times already, I think I'll point out the flaw here. Name one database system that is able to handle and organic network of servers (ie constantly going up and down), keep all the data available, keep all the data available on a resonable connection (not behind 56k lines), give the response time you need, doesn't take up huge amounts of systems resources, and can easily be set up on one of the P2P nodes by even a reasonably competent user. Oh that's right none, and you have to have that in order to have a dynamic site on a P2P network, which is a huge portion of the web at this point.
Well, that's all I can think off right now on this, but I'm sure there are plenty of other reasons why this isn't feasible in the near future.
Cheers
eDonkey has the same feature (with some differences in the publishing process), but is really an application of its own, very file sharing oriented, closed-source and banner-supported. Not exactly what a content provider would want users to download before they can access his files. Still, ed2k has the advantage of a large user base, and also supports ed2k:// URIs that can be used on webpages.
SwarmCast is interesting, but the company behind it mostly died, and now it is somewhat in limbo. Its Java base has made it problematic as a desktop application. The only real alternative to BT is Mojo Nation, which is currently being reworked as "MNet".
If you want to know what CodeCon is all about, check the Feature box on infoAnarchy, we had some detailed coverage.
I'm very surprised at the little ammount of attention that GNUnet has gotten in the P2P arena. GNUnet is anonymous, distributed, encrypted, reputation based, has accounting, allows for distributed queries, and uses dynamic routing. While GNUnet is still beta software, I think it's a great anti-censorship tool. What all this means in non-buzzword speak, is that you have a tool that combines a lot of the great qualities from other similar networks (FreeNet, mojo nation, etc) and doesn't have all of the short comings. Give it a shot.
There seems to be a lot of people who really haven't read the site or understand how the technology works. Yes all those P2P filesharing utilities allow you to download the same file from multiple people at once, it's not all that impressive and many of the problems such as validating matching files and such have been worked out.
:-P
This solution is different in a few very large aspects. It allows a company to keep track of who is currently downloading a file from their webserver. This information is then sent to the clients who can start the P2P poriton of the process and download segments of the file from other users, releaving the load on the companies server. In contrast to those other P2P FILE SHARING programs which share all your files not just ones you are currently downloading. A system like this makes the file server not only the original source for that file but the P2P server to find other people to download that ONE file from.
I can see where people may not want their upload bandwidth being used by others. For this reason any site implementing this feature would probably end up having to provide the file for normal download. The selling point would be a possibly faster download for users of the technology.
I would personally love to see huge sites like FilePlanet put this to use. Granted it would only be truely usefull for sites that have a constant stream of concurrent downloads for a file at any point in time but it would be much better than having to wait 2 hours in line to download a file
Comment removed based on user account deletion
Several people commented that this thing allows to redistribute files before you finish downloading them. But this is not a big deal simply because most of the time file is not being downloaded, it just sits on the HDD 99.9999% of its life. The gain from the early upload would be next to nothing.
Red Swoosh is a cool technology specifically aimed at distributign the load for things such as images on a website. The client download for IE just involves clicking install and DLing a client that's a few 100kb. After which you mirror a portion of the site. www.deviantart.com uses this, and to good effect. I'm not sure if you can mirror large files on it. It is of course centralized.
Photos.
The latest BearShare and LimeWire both allow you to "swarm" gnutella downloads.
From the BitTorret to do list....
better scaling/performance
BitTorrent currently scales well to a dozen or so simultaneous downloads. With further modifications, it can be made to scale to thousands.
A dozen or so simulataneous downloads? Dont think that is going to help prevent the slashdor effect. Though I guess that is getting tested right now!
Thank goodness it's not multiple same people or single different people!
BitTorrent allows users to download a file from multiple different people.
Or if you're downloading the latest boy band single: multiple identical people.
"As soon as I started downloading (cable modem) at around 300k I got a request for the file and began uploading at 40k."
I have a 1184/160kbs asymmetric (DSL) connection. This seems like a common ratio with many ISPs these days. A full speed download consumes at least a fith of my upstream bandwidth. Presumably that's due to things like TCP ACKs. Any kind of serious upstream activity squeezes things and can quickly reduce a download to half speed. I can't find the concept described very useful, especially if I'm in a rush to get something. Is there a way to throttle upstream bandwidth consumption?
nothing new, edonkey2000 has been doing this for months now.
linky linky
Runnin' On Empty
Gnutella/Limewire already does this... (I said nice butt... hehehehe) ~Dr. Weird
The weighty download time of acquiring 2 CD's worth of executable has literally been the only deterrent keeping a lot of Morpheus users from pirating the entire contents of their harddrive.
This represents a key-step in issuing in the new era of "freeware."
Anyone who cannot cope with mathematics is not fully human. At best he is a tolerable subhuman who has learned to we
it's a helper app. You can build it for any browser that knows how to open a helper app for certain files.
You're just jealous because the voices only talk to me.
Mojo Radio, a Toronto area radio station ('talk radio for guys') uses something similar to do streaming audio. They use technology from ChainCast Networks to distribute the streaming of Windows Media broadcasts. It installs a little app in your Windows machine and runs whenever you listen to the stream.
"My experience with" is a code used by trolls to signal to each other that a post is a troll. Surely you remember the series of "My experience with linux" trolls.
Pics from the con are also available on the club's website.
As near as I can tell, they arn't using BitTorrent, which is a shame because it's perfect for just this.
You're just jealous because the voices only talk to me.
A dozen or so simulataneous downloads? Dont think that is going to help prevent the slashdor effect.
Slashdot linked sites that use BitTorrent technology will respond an order of magnitude faster, and that's never a bad thing. However, it might not exactly ease slashdottings until they release a Netscape plug-in for all major operating systems, as a larger than average proportion of Slashdot readers use Mozilla and non-Windows desktop environments.
Will I retire or break 10K?
So far, this looks like it's going pretty well. Any and all feedback is much appreciated, and will hopefully help make BitTorrent an even better product. Please mail me about your experiences.
Does the software report the size already downloaded or the full size, and does it handle buffer underruns, like when you uploaded the song to the point where the upload is trying to get more than you have yet to download.
You download file chunks from multiple people, and files can even have a completely different filename. All files are given a hash value to compare to.
Speaking of good things about eDonkey, there is also forced uploads, meaning no losers cutting your downloads on you.
Please, call them "legal live concert recordings", not "bootlegs". That's like saying "legal pirated MP3s".
- A.P.
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
Being that I am tired and needing sleep I am not going to kill myself trying to get this to work, but just FYI, it imediately crashe IE on my win2K machine.
I'm not saying this thing is busted just that it certainly seems that this guys request for more money to work on it is obviously nessesary. Oh, well, I was hoping I could get one program to work tonight even it it wasn't one I have been slaving over for the past week. I guess my computer karma is kinda low right now.
Is this the end yet?...How 'bout now...how 'bout now...how 'bout now?
and no brawn? back to the drawing board folks.
This is seriously cool stuff. Two minutes for the exe plugin (ick, IE... grab *nix version next), a restart, and I'm seeing 90%-plus of my pathetic CableOne allotment coming in from the demo mp3.
Meanwhile, I'm in day two of pulling ISO files from Mandrake 8.2. I'm at 7% on the first image after an hour. Admittedly, it's not literally 24+ hours. I'm just in my second day of intermittent efforts to get an ftp connection, being told mirrors are overloaded, being told that the 8.2 cd's aren't for sale (talk about poor marketing!!! WTF do these companies THINK we're going to do if we can't buy it before we can download it for free!).
So, anyone want to get into the gritty details and make a 2nd BitTorrent demo page: three Mandrake iso files come immediately to mind. I'd delve in but, well, I'm sort of missing the iso files.
... and I'm still at 7% downloaded on the one ISO I've managed to start a download on. Seriously, Mandrake, at any modest price (say, under $30) I'd have paid for a guaranteed download or a quick-shipped CD. Heck, talk to cdbaby.com or someone else and let them do fulfillment. I won't donate to a publicly traded company, but I'll buy the hell out of convenience at a modest price.
For now, I'm off to see if cheapbytes or anyone else has the cd's. Ooh... time spent editing has me at 8%.
Also, because you're typically downloading a few tens to hundreds of megabyte chunks, you're a useful server for 90-99% of the time you're downloading, rather than the Freenet model where you're only useful *after* you've finished downloading the stuff you want. So instead of a long-term persistent set of users who always want stuff, BitTorrent is designed for temporary communities of people who want stuff Right Now, and it doesn't depend on them hanging around being useful after they've got what they want. (So you can download the latest release of a Debian ISO and then go install it without feeling like you're depriving the community by taking your machine offline.)
BitTorrent might be able to manage larger numbers of smaller files, e.g. a Slashdot event, but I haven't looked lately, and it's more interesting for the bigger things. (Of course, some slashdotting problems aren't file retrievals, but server interactions, like that one-IC web server powered by a potato battery, and it doesn't have anything to offer for that :-)
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Comment removed based on user account deletion
There seems to be a lot of people who really haven't read the site or understand how the technology works.
that NEVER happens here! take it back!
Additionally, it makes it very efficient for the first set of people who are downloading the file. Instead of having to download the whole thing from one source, which is probably overloaded, you're able to download pieces from lots of different people. The server takes advantage of this - instead of giving Alice chunks 1, 2, 3,
This also reduces the latency required for later people in the process to get their material - instead of waiting for the entire 600MB CD to be copied N times in a row, the downloading gets pipelined.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
I'm not completely versed in morpheus/kazaa/bearshare/whatever, but I understand they allow you to download a file from more than one other person simultaneously, known as "swarming" the download (btw, this is called "anteloping" on furthurnet). It is my further understanding that you can only do this from people who have the *complete* file.
What bitTorrent (I think) and furthurnet (I know) are doing is different than this. If 5 people are downloading a file from the one person who is sharing it, those 5 people can be the beginning of 5 chains of people, relaying each packet down the chain as they get it, regardless of whether or not anyone has the complete file.
Furthurnet uses a protocol called PCP (Packet Chain Protocol) to do this, and it automatically arranges the chains so that those with faster upload speeds are toward the top, with the dialup users toward the bottom.
If the main host goes offline, even if no one on the chain has the entire file, everyone on the chain can still continue downloading everything that the topmost person on the chain has already saved.
A good example: say a dialup user has large file that is in high demand. A T1 user comes along and spends a long time downloading it off of the dialup users horrible upload speed, and gets about 80% of it before anyone else comes to download. Then you show up with your cable connection and instead of being at the mercy of the upload speed of the dialup guy, you have access to 80% of the file from the plentiful upload speed from the T1 guy. And of course Furthur knows to hook you up to the fastest open slot available when you come along.
The result of this is that the underlying host and network shape becomes transparent, and you just see a list of shows to download, you start downloading one, and all this stuff happens in the background. The longer everyone stays connected to the network, the more efficient it comes because it has more time to structure it with the faster folks in the "middle", and the slower ones on the "outside".
Over at furthurnet, the current record is having 71 people on a downloading chain. Combine PCP with the Anteloping and you can have some serious improvement over "dumb" p2p.
I wont even go into the benefits of the md5 checking furthur does...
If you're shipping around small files, like MP3s, there are lots of transfer systems that can do the job. But the Lossless Compression movement for music means that a concert tape is typically a few hundred megabytes large, maybe 1/3 the size of the uncompressed original, so it takes much longer to download, just as ISOs for Linux distributions are large. In that environment, you can't always depend on connections being up for a long enough time, so you need to be able to download parts of files, and swarming systems like BitTorrent help a lot.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Talk about biting a troll's bait! The guy wrote "yourmom" in his post for Christ's sake!
made available. I'd do it, but I don't have them :(
I think it would be best way to demo this technology!
It's written in python!
What the hell?
I'm flabbergasted!
And disgusted!
And impressed!
All at the same time!
I want to port it to Perl or Ruby!
Comment removed based on user account deletion
BitTorrent is...suspect. Even worse, its creator is a bit much. Please see, on the same site, http://bitconjurer.org/a_torturers_account.html and http://bitconjurer.org/it_happened.html. This Bram Cohen is One Sick Fuck.
Yes! Once again Python shows its fangs! ;)
python >>>
reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b')))
Heh. Get this, I have a box running as a NAT-router only (ie, no firewall) with zonealarm on my desktop. :)
(the reason I'm doing this is mostly because all I need the NAT box for is to share a single IP, and having a real firewall on that got to be too much of a hassle with things like Starcraft and Quake) The NAT box is a P100 running FreeBSD 4.3-Release with natd and ipfw. More interesting is that my NAT box is currently behind *another* NAT box that acts as the gateway router for my ADSL service, also running FreeBSD. (I work for my ISP, which is why I know this
When my download started from the site, it was at ~150Kbps. (pretty much the max for my 1.5M/640K ADSL) It slowed down a little as the upstream bandwidth went up, but that was fine, as it consistently stayed at over 100Kbps.
I have a question though. How the hell is it that my upload is working at all? I'm on a network so private that it's scary.
"No problem. I have the capacity to do infinite work so long as you don't mind that my quality approaches zero."-Dilbert
Xolox, a gnutella for Windows, has been out for a long time now, and it allow for a client to serve parts of a *incompletely* downloaded file. Never underestimate the abilities of GNUtella.
Unless this is very-very new (even newer than Gnucleus-Morphues), Morpheus never allowed another download to start until the first in the chain had completed. Under Fast-Track, the issue was the MD5 checksum which was only calculated on a completed file, never on fragments.
After their move to Gnucleus, I had never seen them do anything that Gnucleus couldn't. However, as the modified source code is included, it should be easy to check.
Now, who is going to be the first to complain about the use of mp3s instead of oggs?"
Remember, if it's not open source, it's CRAP.
jeez... thought i was on Business 2.0's site for a second. how annoying
From the CodeCon website: Welcome, Slashdot visitors! The CodeCon site seems to be holding up just fine, though we've removed our graphics as a precaution. The CodeCon mp3s are also holding up well due to BitTorrent. Please report any client-side problems you encounter.
;-)
I just love this, especially on a site thats about how to handle bandwith
BitTorrent checks the integrity of each piece of the file individually, based on hashes it gets as part of the original http request. I should probably explain that clearly on the BitTorrent front page, because a lot of people seem to get the impression that it doesn't do any integrity checking at all, when in fact it's integrity checking is extraordinarily good.
The link to the IE plugin is slashdotted =)
-Ando
How will tit-for-tat leech resistance work if someone has an Asynchronous DSL connection? If my download bandwith is 768 kbps but my upload bandwidth is technically limited to 128 kbps (as is common with many DSL offers for private home users), will the leech resistance feature think I'm guilty?
Idempotent operation: Like MS software, wether you run it once or often, that doesn't make it any better.
I'm using a P166, and while I can play MP3's (using about 90% of my CPU), when I try to play OGG files (that I previously had no trouble with on my 600mhz box) I get skiping.
I'm all for open formats, but when MP3's deliver working music, and OGG's choke up my wimpy box, I stick with MP3's.
BTW- I own all the CD's from which these tracks were riped, and don't support copyright infridgement, so go erase all those illegal MP3's you own....
If there emerged a distributed downloading standard that was generally agreeable and became better and better the more servers that participated, I would think it would be great to see a plug-in for popular web serving software to support it.
Think about something like this: if you were running a site under Apache and had the option of installing a plug-in that would participate in the file sharing network as a server node. The plug-in would let you allocate a defined amount of disk storage and a defined amount of bandwidth. Then sysadmins who felt this was a good thing could just turn on their participation.
Sure it wouldn't be much at first, but you might get a very large base of servers with good connectivity all playing a role in the system. I think it would help it scale.
Just a thought. I wonder if anyone has considered a scheme like this.
A file sharing program called eDonkey does this.
It's fantastic for getting MST3K avis!
---
Check me out!
Ah..so I guess it's incorrect for me to say that the swarming can't occur from people who don't have the complete file.
But I don't think Gnutella allows chaining to occur... By chaining I mean the ability for each user to pass on to the next person the packets of the file they have already saved, while they are downloading other packets of this file at the same time.
IMHO P2P (or something like it) will eventually be implemented on all the anonymouse ftp sites as well. Just need a open- ource standard version and away it would go.
Only thing it would need is a 'auto share partners' system to replace mirroring.
make Linux, not Microsoft. sin(beast) = -0.809016994374947424102293417182819
I think this is an interesting way to share the load for distribution of large, popular files. Of course, if the files are not popular, nobody will peer the file, and it degenerates to serving the file from the server. So worst case, you gain nothing.
:)
Best case, you get lots and lots of people peering the file, and share the load. I got about 300 k/s download speeds most of the time, and 300 k/s upload.
But near the end of the file, it dropped down to 8 k/s or so. This makes sense, since there will be fewer people sharing up the tail end of the file (they've all finished, and quit serving it) than parts in the middle. So it looks like the server has to handle the last few blocks.
I think it was cute that the window sat around after the download completed, with a "Finish" button waiting to be clicked. So unless you noticed it was done, you would just sit around and share the file up for people. I guess that's reasonable behavior.
Sorry. MojoNation/MNet are much more feature rich and interesting.
I've read the site and I was at CodeCon for the presentation.
Having said that, most of these comments are ignorant tripe. Before you post, you might want to take a look at the site and read about what actually goes on in BitTorrent. This will help you avoid looking like an ignoranus.
"Let him go, Ralph. He knows what he's doing." --Otto Mann (simpsons)
Etree uses the Shorten codec, which in my experience will compress hi-fi audio to about 3/5 of its original size. A Phish show is typically about 1 GB compressed.
Personally I'd like to see FLAC getting used... in my most recent tests, FLAC blew Shorten out of the water in both speed and compression ratio. Plus FLAC is free as in speech but Shorten is free only as in beer.
Losing connections is less of a problem than you might think... many siteops run *NIX FTP servers, which as a rule are quite reliable. Some of the Win9x servers are less reliable, but that's when you thank god for FTP Resume.
The killer feature of Furthurnet is its treatment of entire sets of files as a single entity. I am not aware of any other P2P alternative which will allow you do download an entire show as a unit, and not have to hunt down each and every track that constitutes a performance. This is a must have feature if what you are downloading is the tracks of a CD. Who wants Scarlet > without the Fire, or Mike's > H2 > without the Weekapaug?
tell lunchbox to get back on the right side of the fence. i mean, sure, he loves the cock, so what. but to prefer closed source to open? maybe that's some kind of holdover from living a life in the closet or something.
Sounds like this is similar to what MojoNation is/was trying to do. Their site doesn't seem to be responding right now, but here's the Google Cached version of the technical docs.
fencepost
just a little off
Correct. "Packet passing" is more realtime swarming, if that makes any sense, than Xolox's "parts sharing".
All these P2P network suck at one thing: sharing. Noone wants to share his files if it is not absolutely necessary. DC handles this problem very well, you can find much more than using eDonkey. Just type 'neo modus' in Google and off you go!
Great!! When do I get to plug my brain in?
Will I get an ASDL interface to my skull and how much is one?
Imagine.. a beowulf cluster of brains...mmm brains..
"So there he is, risen from the dead. Like that fella, E. T." - Father Ted Crilly
Propbably BitTorrent conflicts with GetRight an other similar software, too. Those "multiple-TCP-streams to one HTTP/FTP-server, use mirrors too" programs work fine for me, and I get always very good browser download speeds in Scandinavia, mostly good in (50-150 kilobytes/second) from all over Europe and reasonable speeds from the USA. BitTorrent did not seem to do any better.
5 9- 1&oe=ISO-8859-1&q=venti&meta=group%3Dcomp.os.plan9
And I think building algorithmic ad hoc virtual tree and mesh topologies for distribution is an overkill. Simple strategy like Xolox and EDonkey use is good enough: hash the file blocks, index the file-block-hash-chains by the file names, keep searching for blocks by the hashes in the chain, then swarm download the blocks. This automatically swarms incomplete files too.
Hints for intelligents ways to implement hash based content block distribution can be found in the still unannounced "free-as-in-common-sense source" Plan 9 Venti system:
http://groups.google.com/groups?hl=fi&ie=ISO-88
Anssi Porttikivi / app@iki.fi
http://cm.bell-labs.com/cm/cs/who/seanq/venti-fast .pdf
Anssi Porttikivi / app@iki.fi