Free Riding, Altruism, and Cooperation on Peer-to-Peer File-Sharing Networks