(no title)
MoSal | 10 years ago
A few leechers breaking "rarest-first" might not cause much harm. But if most leechers become streamers, torrents will lose their efficiency in distributing less-popular content.
Transmission implemented a "streaming" feature once, that didn't actually stream. It just stopped fetching pieces "with the same rarity" randomly. They still got too much heat for adding that not very usefull feature. And they reverted the commits soon after.
KMag|10 years ago
I think the proper swarmed streaming solution is to make the percentage chance of requesting the rarest chunk be a smooth function of the number of replicas of the rarest chunk. If the rarest chunk has only one source, the probability should be 1.0. If there are multiple chunks that are all the most rare, you probably want to randomly select which chunk to request next, with an approximately exponential distribution rather than uniform distribution. Y probability of selecting the first chunk, Y^2 for the second, Y^3 for the third, etc. You'd want to run some simulations to fine-tune the probability function and also the Y percentage.
What I did for LimeWire was (1) if the MIME type wasn't on a streamable whitelist, download all chunks in randomized order. (2) if the file was a streming type and less than 10% complete, start downloading the available chunk closest to the front of the file that isn't currently in progress (3) if the file is a streamable type and 10% to N% complete, randomly select either in-order or randomized selection with probability X. (4) beyond N% complete, always use random chunk selection. I'm pretty sure N was 50 and nearly certain X was 0.5. I originally proposed making X a smooth function of the % downloaded instead of 0, 0.5. 1.0 stair-steps, but the lead developer strongly preferred stair-steps.
The random selection algorithm actually tried to keep the number of ranges of bytes (extents) below 5. So even after 50% downloaded, you still have a 25% chance of getting in-order downloading.
The reason I used randomization instead of rarest-first was that it was my first change to LimeWire, and this was the least invasive change to make. At that time, LimeWire had a global list of verified downloaded chunks and a global list of in-progress chunks, but no global counter for number of replicas.
KMag|10 years ago
I vaguely seem to remember WMV and ASF also needing some information from footers in the file, and therefor also prioritizing the last MB of the file.
This was all implemented using the Strategy object oriented design pattern, to make it easier to play around with many alternatives and make specialized strategies for specific MIME types.
misingnoglic|10 years ago
Wow that's an entity I haven't heard in a long time. It would be super interesting to hear more about the engineering behind the software, do you have any blogposts anywhere?
catwell|10 years ago
[1] https://github.com/steeve/xbmctorrent/blob/e6bcb1037668959e1...
MoSal|10 years ago
Supposedly long seed intervals will not help the swarm in that case.
deepnet|10 years ago
Seeding by default sadly gets a lot of newbs into trouble - especially as publicising IP addresses are part of the protocol.
Porn blackmail companies and MPAA agents know that seeders are low hanging fruit.
Similarly Limewire and ilk using the downloads folder as a default share folder is useful for the health of the network but this has led many to be unwitting uploaders - which is what they got done for.
Jammie Thomas is a case in point, newb music fan (or her kids I recall) but the sharing by default is what she was convicted of - for $30,000,000.
No one has ever been convicted of downloading alone - they don't bother trying.
So seeding by default can be very cruel - sadly.
Even with that caveat, those like Jammie, brought up on Sesame Street were taught to share and don't know how severe tne penalties can be.
That sharing is or can be wrong is now taught at a nursery level.
claudius|10 years ago
At least in Germany, both leeching and seeding are copyright infringements as soon as you upload any data back into the swarm. Since leeching also does this (though not exclusively), it is also copyright infringement. Pure downloading is not, though, which is why streaming websites (just downloading, no uploads) are fairly popular here.
amelius|10 years ago
loup-vaillant|10 years ago
Really? This is yet another step closer to "The Right to Read". Such a waste. We should end scarcity, not create it artificially.
maldusiecle|10 years ago
Which is still a crazy result, but it helps no one to make up numbers that are several orders of magnitude higher than the real ones.
branchless|10 years ago
unknown|10 years ago
[deleted]
lolidaisuki|10 years ago
[deleted]
unknown|10 years ago
[deleted]
odonnellryan|10 years ago
I don't get this. It is definitely useful.
I'm not saying don't upload: the client still seeds. It just downloads the contents in order.
MoSal|10 years ago
It wasn't optimal for the swarm. Yet, the user didn't really get what he/she wanted.
amadvance|10 years ago