Truly Decentralized BitTorrent Downloading Has Finally Arrived
torrentfreak.com
torrentfreak.com
http://www.xilisoft.com/ipad-magic.html?utm_source=John%26We...; http://www.xilisoft.com/ipad-magic.html?utm_source=John%26We...; http://www.xilisoft.com/ipad-magic.html?utm_source=John%26We... http://www.xilisoft.com/ipad-magic.html?utm_source=John%26We...; http://www.xilisoft.com/ipad-magic.html?utm_source=John%26We... http://www.xilisoft.com/ipad-magic.html?utm_source=John%26We...; http://www.xilisoft.com/ipad-magic.html?utm_source=John%26We...; http://www.xilisoft.com/ipad-magic.html?utm_source=John%26We...;
The core principle is similar. DC has centralized hubs which handle searches and upload files directly to users. Tribler has a distributed search engine which runs on every peer and uses bittorrent to share files. Effectively every single Tribler node behaves like a DC hub. As a result it is much harder to take down.
Anyone have any idea what protocol this uses?
The only thing I could figure was that it's written in python.
I'm sure there are plenty of efforts similar to this. Any others deserving of mention?
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.78....
Essentially the core protocol is a gossip overlay. This generates random connections between peers in the overlay. Over these connections peers transmit information like recently seen torrents, recommendation lists, download/upload totals for other peers etc. Each peer proactively distributes known torrent files so that every peer builds up a database of torrents. Then search just works by broadcasting queries to nearby peers.
The algorithms used have dozens of applications outside of filesharing. I wrote my MSc dissertation on a similar subject:
http://scattered-thoughts.net/one/1283/644001/538941
The code for Tribler is naturally very specialised to their purpose. At some point I want to sit down and reimplement them in such a way that they can easily be reused and recombined for other applications. I have some vague ideas about building a prototype trust-based distributed database for dot-p2p.org based on similar principles.
How hard would it be put this algorithm into a general-purpose library accessible by multiple applications?
It seems like a logical part of that would be to have each protocol documented and encapsulated in a library.
Also, I'm working on a multi-protocol client which would aggregate a number of sources, so it would be especially nice to the have a library to call so that I could add one more source.
In any case, your work looks fabulous and I will spend some time digesting your links.
OneSwarm is interesting in that it attempts to preserve user privacy.