{{{ #!forumlinks }}} = Decentralized Recommendation = Tribler forms a semantic P2P overlay to identify related content, facilitate search, and recommend content. Related: [wiki:ContentSearch Search], [wiki:AdversarialContentSearch Search and spam prevention], [wiki:Buddycast3 BuddyCast3], [wiki:BuddyCast4 BuddyCast4], [wiki:SimilarityFunction Similarity Function] Tribler supports recommendation of content to users by implementing a decentralized recommendation protocol, [wiki:Buddycast3]. Through its downloads the user builds up a download history of files. By exchanging these download histories with others the user builds a collection of a few hundred or more of such download histories. Tribler's recommender component uses this collection to find peers with high similarity to the user based on their download taste. We call such similar peers taste buddies. The recommender then recommends the files that a user's taste buddies has already seen but the user has not. In other words, Buddycast provides decentralized, user-based collaborative filtering. General overview of [http://p2p-fusion.mokk.bme.hu/w/index.php/Recommendation recommendation]. == Buddycast == The Buddycast algorithm is based on an epidemic protocol and works as follows. Each peer maintains two lists: (1) its top-N most similar peers along with their current download histories, and (2) a list of random peers it learned about but does not have download histories of. Periodically, a peer connects to either (a) one of its taste buddies to exchange social networks and current download histories (exploitation), or (b) to a new peer, randomly chosen, to exchange this information (exploration). By using both exploitation and exploration, we keep track of what happens at our most similar peers and at the same time ensure that we will find new similar peers if they emerge. - Detailed info on [wiki:Buddycast3 the latest Buddycast] version: V3 - Draft ideas on the next Buddycast version: [wiki:BuddyCast4 V4] - The [http://svn.tribler.org/abc/branches/mainbranch/Tribler/Core/BuddyCast/buddycast.py source code] - The [http://svn.tribler.org/bt2-design/proto-spec-unified/trunk/proto-spec-current.pdf Tribler protocol specification describing V1,2,3] Extensions to Buddycast have been made for [wiki:Moderation moderation]. Full details are given in a technical report on moderation, voting and vote fraud prevention ([http://pds.twi.tudelft.nl/reports/2008/PDS-2008-004.pdf PDF file]). == Privacy == Within any P2P system there is tension between efficiency of the system and privacy. Within Tribler IP addresses are not shown and every user is referred to by a nickname. However, the download history of each nickname is publicly visible for exploration and discovery. To preserve privacy, the user interface and !Buddycast support the ''erase'' from profile functionality. The new !Buddycast4 version will : - Spread a counter with total amount of downloads per nickname - Transmit a maximum of 50 Bittorrent downloads from your download history - When removing a file from your download history, Buddycast will erase it from your profile - Use for efficiency reasons a timestamp when your profile was last changed