Incentives for sharing in Gnutella
Peers in Gnutella have no incentive to upload
BitTorrent's tit for tat algorithm creates an incentive to upload, but there's a separate BitTorrent swarm for each file
- Peers leave the swarm when they've finished downloading
- Only suitable for large files
- Only suitable for popular files
Solution: allow Gnutella peers to exchange something they have for something they want
- Could be pieces of the same file, as in BitTorrent
- Could be different files
- If X has something Y is interested in, there's a better than average chance that Y has something X is interested in
Peers use tit for tat or some other algorithm to allocate bandwidth
- Peers with nothing to trade get lower priority
- Incentive to upload: you get faster downloads
- Incentive to answer queries: you're more likely to find answers to your own queries
- Incentive to hoard files: you're more likely to have something suitable to upload
Implementation: "trade queries"
- A TradeQuery is piggybacked on a QueryHit using GGEP
- The TradeQuery describes what the responder wants in exchange for the files offered in the QueryHit
- Created automatically from the responder's active searches and downloads
- The requester can reply to the TradeQuery using a TradeQueryHit
- The TradeQueryHit is piggybacked on a Push (using GGEP again)
- The responder treats the TradeQueryHit like a hit for one of its own queries (the Push is just used for routing)
- The protocol is incrementally deployable - intermediate nodes don't have to understand TradeQueries or TradeQueryHits
m.rogers@cs.ucl.ac.uk
Last modified 2005/12/13