Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Most of the underlying protocols are described here, though it is a bit out of date:

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.



That's pretty amazing, actually.

How hard would it be put this algorithm into a general-purpose library accessible by multiple applications?


I think that if you just want to use the same setup as Tribler you can just directly use their code. What I'm interested in is separating and generalizing the various protocols involved rather than having them all knotted together.


Me too,

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: