Selective Seeding & DiscoveryStatus: [source:abc/branches/boxun/d080620-selectiveseeding-from-main-r7938/Tribler/Policies/SeedingManager.py initial code] Research: Resource allocation to peers based on their degree of contribution to the community with the inclusion of a punishment for freeriders. Selective SeedingEnable the user to select the seeding policy he/she wants for give-2-get and within the limits allowed by tit-4-tat. The default policy setting is to seed to tit-4-tat peers until your sharing ratio in that swarm equals 1.0. Note that it is important in this calculation to keep separate sharing ratio's for tit-4-tat and give-2-get peers. Both give-2-get and tit-4-tat peers will be treated equally when the tit-4-tat sharing ratio has not yet reached 1.0. After the tit-4-tat ratio has reached 1.0 only give-2-get peers will receive bandwidth, thereby boosting the peers bandwidth reputation. After seeding for a hours or a few days to tit-4-tat peers they can remain in a swarm for weeks or months to boost their reputation. This approach means that an efficient mechanism for discovery of give-to-get peers is required which requires little bandwidth. The selective seeding has the following settings:
Implementation: A global seeding manager manages all local seeding managers for seeding downloads. When a download status becomes seeding, the global seeding manager will apply a local seeding manager to the Choker of that download, which is based on the seeding settings. Then the local seeding manager decides if a connection is eligible or not to be unchoked by Choker.
Extension in other GUI screens: Future work
Related WorkPDF link One hop Reputations for Peer to Peer File Sharing Workloads to prevent freeriding in Bittorrent. Selective Discovery(Soon)G2G seeders/leechers proactively search for other g2g peers in networks. A simple heuristic to include is to give preference to peers which use the listen port used by default within Tribler. Whenever such peers are included in tracker or PEX replies they take priority. When contacted with PEX, a Tribler peer lists other G2G supporting peers in the swarm. This can perhaps be done via PEX parameter=value extensions.
The [source:abc/branches/mainbranch/Tribler/Core/DecentralizedTracking/ut_pex.py#L55 added.f field] seems to be the proper mechanism to do this within the EXTEND message. It gives can store a single byte of information about each address you exchange with PEX. Currently only 3 values are specified. See detaild documentation on a the Transmission branch. ToDo: find which Bittorrent client are using which fields and claim our own "bit" (e.g. x16) in this added.f which indicates seeding to Give-to-Get supporting peers only. With this mechanism we can indicate to other peers what the exact state is of the Give-to-Get peers. Obviously, these peers are not PEX-ed or handed out to tit-for-tat peers. Does Tribler support the extended field in PEX for client IDs: v=string, client name and version. (e.g. "Transmission 0.7" or "Tribler 4.1.7")? Can it be used to recognize fellow Give-to-Get supporters? Attachments
|