The success of bittorrent as a swarming protocol is that each client tries to download the least available snippet of the file it wants. This increases the chances that other clients will be able to find 100% of the pieces of a file as they go through the download process.
With popcorn and other streaming-torrent hybrids, the clients requests are biased towards the snippets of file that the user is about to watch. This makes the beginning of the movie widely available (as all clients start there to begin a stream) but increases the chance that bits of the middle or end of the movie aren't available when a given client needs them.
If you want to "stream" the torrent, you will need to start with the first chunks But i think we can do something nice about it. We need to add some transfer stats to the downloading and use it.
You have the file xyz.mp4 with 20 chunks.
First, you leech the first 4 chunks (first 20 minutes of the xyz.mp4 file)
Then you analyze aprox. transfer speed. Let's say you are downloading 2 minutes of movie per second.
If you already downloaded the first 20 minutes, you have at least 15 minutes until you need to start downloading the chunk number 5.
We should use those 15 minutes to download the last chunks (20, 19, 18...)
After 15 minutes you start downloading chunk number 5, 6, 7... and repeat the process.
I think this could work fine, YTS should do something about this.
I am not sure which kind of structured p2p system popcorn time sues, but if it was a DHT it should make sure that there is replication of the rarest files works too.
So that people who want to watch weird east European movies also have the opportunity, just as those who want to watch the latest blockbuster.
I hope popcorn time does not immediately delete cached chunks...what a waste.
https://github.com/steeve/xbmctorrent#doesnt-sequential-down...
Also, all Popcorntime clients want the same blocks first, meaning they will both need and seed the first blocks more. So they do not cause an imbalance, as long as there are always some peers that have the full movie.
This lacks a lot of foresight.
> Also, all Popcorntime clients want the same blocks first, meaning they will both need and seed the first blocks more. So they do not cause an imbalance, as long as there are always some peers that have the full movie.
And this is just plain wrong.
"If everyone streamed every file at the same time, the ecosystem would be negatively affected. That’s why we’ve put in safeguards to protect the ecosystem such as disallowing streaming when there aren’t enough seeders for a file, and preventing users from streaming more than a single file at a time. With these protections, we’ve tested and found no negative effect on the ecosystem. This is a property we’ll continue to monitor and adjust for as streaming becomes more widely used."
I don't understand this. Why does it need to be mutually beneficial? The peers should "pay it forward" by uploading to younger peers, even if the ones they downloaded from are not benefitting.
> On a small swarm this behavior can lead to pieces drop to the 0 availability because some peers concentrate on the first few files while the last peer/seed that has the rare piece in one of the later file quits after doing his fair share, but he only uploaded data for the first few files because the prioritizing peers were interested in those only.
This could be mitigated by using excess bandwidth beyond that needed for streaming to download rare chunks, and ensuring that the streaming application keeps seeding for a while after the video has been watched.
That wouldn't be streaming then, would it?
For example, my peak download speed is 5Mbits while the upload speed peaks at 0.6Mbits. That's on one of the more expensive packages, too.
In fact,you are also forgetting about the usage of each peer application. With traditional torrents you download the movie, close the app and watch the movie. Total seeding time is the same as the downloading time.
With popcorn time you are seeding WHILE watching the movie, the total seeding time is much, much longer than in the first case.
You can verify the effect yourself by comparing the network upload statistics from your operating system with the seed statistics of your bittorrent client.
That is, by definition, a leech. [1]
Seed: A downloader that obtains 100% of the data becomes a seed.
And here in this case, a while after someone becomes a seed the file gets deleted permanently.
[1] http://en.wikipedia.org/wiki/Glossary_of_BitTorrent_terms
I understand leechers as those who, over time, mostly download rather than upload.
What makes you say this?
Piracy is not the answer, but perhaps the only way to get some people to realize that the world is changing.
I'm sure there would be ways to game it, but it could go a long way in ensuring the average user gives what they get. It would be awesome to integrate a 'currency' into a similar client, where you slowly earn more by seeding.
Since a streaming app is deadline aware, which is different from a normal torrent. A normal torrent works on fetching either rarest-first or respond-first chunks, while a streaming app tries to fetch chunks linearly and as soon as possible. It is likely to fetch the same chunk from several places (basing them off RTTs (bandwidth-delay) and availability). Moreover, if popcorn inherits BT's congestion control algorithm (LEDBAT, which is a scavenger algorithm) we might not even see spikes in network traffic.
In order to use Popcorntime, you'd pretty much have to have a connection speed where downloading the movie is significantly faster than watching it (a few minutes at a reasonable speed/quality) and by the time the movie ends you have downloaded it once but uploaded many times.
And given the way the tech works, you can ignore ADSL users with restricted upload speeds and other similar groups - the total average is disproportionally influenced by high-speed users; so if for every dozen ADSL users there's a single FTTH user, then the total still works out well - 10 users with a ratio of 0.1 are equalized by a single user with a ratio of 10.
If you are streaming, you will very likely be downloading faster than you can play the file (people who download slower won't be streaming). So you will be seeding a lot longer.
That way torrents with lots of watchers would be more seeded since their in watched cache of a lot of people.
I do think that many (non-technical) people being unaware of seeding or ratios helped torrents a lot. They watched movies, and they became seeders.
Add: The old FAQ is gone, but quote from http://www.ibtimes.com/popcorn-time-movie-streaming-netflix-... : "According to Popcorn Time’s FAQ, you do indeed seed (upload) parts of the movie while you watch. Popcorn Time does state that ‘your movies will stay buried in a secret folder somewhere in your drive until you restart your computer. Then it will be gone for good.’"