CS 264. Peer-to-Peer Systems

Lectures (Spring 2004): Mondays and Wednesdays 1:00-2:30 pm
Location: Maxwell-Dworkin 319

Name E-mail Office Office Hours
Professor Mema Roussopoulos cs264@eecs.harvard.edu Maxwell Dworkin 227 Fridays, 3:30-5:30 pm
Jonathan Ledlie cs264@eecs.harvard.edu Maxwell Dworkin 121 Tuesdays 10:30-11:30am
Fridays 2:15-3:00pm


1) Be sure to send email to cs264@eecs by Monday, 2/9 with your paper preference.

2) The class location has changed!!!! Starting 2/9, we will be holding class in MD 319.

3) Project suggestions have been posted and will be discussed in class on Wednesday.

4) We will hold a final round of paper presentations sign ups on Wednesday February 18th if not all of the slots are taken by then.

5) The proposal format and a sample proposal are available.

6) A Latex template for writing your paper and status report is available here

7) Here is the description of what your status report should contain.

Course Description

Peer-to-peer systems have recently gained a lot of attention in the social, academic, and commercial communities. One of the early driving forces behind the peer-to-peer concept is that there are many PCs in homes and offices that lie idle for large chunks of time. Why not leverage these idle resources to do something useful, like share computation or share content? In fact, peer-to-peer systems have become synonymous with file-sharing systems as systems like Napster, Gnutella, and Kazaa have enjoyed explosive popularity.

While file-sharing has been very successful, peer-to-peer systems are important and useful for more than just (illegal) sharing of song files. In this class, we will study peer-to-peer systems in depth to understand what they are, what they are good for, and how to improve them. The class will be primarily based on discussions of recent research papers on peer-to-peer systems. Topics include: routing, search, caching, security, reputation and trust, incentives, and applications.

This class is geared toward graduate students at all levels as well as advanced undergraduates (Computer Science 161 or Computer Science 143 are required).


This course will involve reading papers, taking short quizzes, leading class discussions, and completing a research project.

Students will be required to write reviews for papers they read. Look here to get information on how to write a review. Reviews are due before each class by email. (Send these as a single email with the current lecture date in the subject line, to cs264-reviews@eecs. Please send reviews in plain text.)

Students will be required to lead a class discussion of a paper. You must discuss the paper with one of the TFs before it is your turn to lead the class. This gives you a chance to ask questions on aspects of the paper you find confusing or difficult. Be sure to send email to cs264@eecs by Monday, 2/9 with your paper preference.

There will be a short quiz at the beginning of each class covering the reading assigned for that day. The quiz will consist of 3-5 questions. The quiz has two purposes: to ensure students have read the paper(s) carefully and to help guide the discussion. Students leading the discussion for that day must send a list of 3-5 suggestions for questions to cs264@eecs two days before their turn to lead.

Finally, students will be required to undertake a major research project of their choice. Students are to work in groups of one, two, or three (two preferred). The goal is to identify a problem that you think is not currently addressed in the peer-to-peer literature, to propose a solution to the problem, and to evaluate the solution using analysis, simulation, or experimental results. At the end of the course, students will present their work to the class in a short talk. The goal is to help students gain experience in research and to produce a result that might lead to a publishable paper in the future. Here is a list of suggested projects.


Reviews: 10% Class Participation: 10% Quizzes: 10% Project: 70%

Syllabus & Schedule

Date Topic Readings Lecturer
2/4 Course Overview,
P2P Overview
-- No reading -- Mema Roussopoulos
2/9 Routing A Scalable Content Addressable Network Mema
2/11 Routing Chord,
Serving DNS Using a Peer-to-Peer Lookup Service
Christopher, Elaine
2/16 No Class (Holiday) -- No reading -- --
2/18 Routing Making Gnutella-like P2P Systems Scalable Nathan Blecharczyk
2/23 Applications: Samsara Samsara: Honor Among Thieves in Peer-to-Peer Storage Mema
2/25 Applications: LOCKSS Preserving Peer Replicas By Rate-Limited Sampled Voting
Ian B.
3/1 Applications: File-sharing
Measurement, Modeling, and Analysis of a Peer-to-Peer File-Sharing Workload Jonathan
3/3 Legal issues in P2P
Peer-to-Peer File Sharing and Copyright Law: A Primer for Developers ,
Are Contributions to P2P Technical Forums Private or Public Goods? - An Empirical Investigation
Jonathan Zittrain
3/8 Security Issues in P2P A Survey of Peer-to-Peer Security Issues Patrick
3/10 Incentives Incentives for Cooperation in Peer-to-Peer Networks ,
Incentives Build Robustness in Bit Torrent
Antony Clavel (in p2p), Christopher Bockman (in BitTorrent)
3/15 Micropayments
PPay: Micropayments for Peer to Peer Systems ,
The Sybil Attack
Elaine Ou (Sybil), Mema
3/17 Applications: Network Measurement The Case for Cooperative Networking ,
Network Measurement as a Cooperative Enterprise
Project Proposals Due
Alan Nawoj (Case), Mema
3/22 Applications: FreeHaven The Free Haven Project: Distributed Anonymous Storage Service Nathan
3/24 Applications: Tarzan Tarzan: A Peer-to-Peer Anonymizing Network Layer Mema
3/29 Spring Break -- No Reading -- --
3/31 Spring Break -- No Reading -- --
4/5 Reputation Trading in Trust, Tokens, and Stamps ,
Balances of Power on eBay: Peers or Unequals?
Patrick (eBay), Antony (trading)
4/7 Routing The Impact of DHT Routing on Resilience and Proximity Alan
4/12 Applications: Application-level Multicast An Evaluation of Scalable Application-level Multicast Built Using Peer-to-peer Overlays Jonathan
4/14 Security Security Considerations for Peer-to-Peer Distributed Hash Tables ,
ConChord: Cooperative SDSI Certificate Storage and Name Resolution
Ian (ConChord), TBD
4/19 Applications: Information Retrieval Peer-to-Peer Information Retrieval Using Self-Organizing Semantic Overlay Networks
Status Reports Due
4/21 Exploring Design Spaces,
2 P2P or Not 2 P2P?
Exploring the Design Space of Distributed and P2P Systems ,
2 P2P or Not 2 P2P?
4/26 Incentives Rationality and Self-Interest in Peer-to-Peer Networks ,
Enforcing Fair Sharing of Peer-to-Peer Resources
Francis (rationality), TBD
4/28 Incentives, Reputation StrategyProof Computing: Systems Infrastructures for Self-Interested Parties ,
Reputation in P2P Anonymity Systems
5/3 Project Presentations -- No Reading -- --
5/5 Project Presentations -- No Reading -- --
5/10 No Class (Reading Period) -- No Reading -- --
5/12 No Class (Reading Period) -- No Reading -- --
5/19 No Class (Last Day of Reading Period) Final Project Due --