A Peer-to-Peer Filesystem

The central task of this project is to construct peer-to-peer filesystem. The project is divided into two phases: the first is to produce do some design work and some familiarisation with the Jva platform; the second is to implement the design. The system will be written in Java, and some support code will be provided in phase 2 to make the task more achievable in the time given.

The documents describing the two phases are:

  1. There are two variants of the practical, one for Software Engineering, the other for Computer Science.
  2. Phase two document.
  3. A simple Chord-like implementation. You can find the code in /home/cs3/ipcs/Chord/

This year the individual project is administered by Stuart Anderson.


Each phase contributes 50% to the final project mark. The assessment for the two phases is described in separate proforms that should accompany the submissions:

  1. Phase 1 assessment
  2. Phase 2 assessment
  3. Phase 2 assessment proforma, omitting references to the specific test set.

Help and assistance

You can send specific queries to soa. You can also come to see me personally: my office is JCMB 1610, and I shall be available during term time between 2 and 3pm on Tuesdays.

You should consult the newsgroup eduni.dcs.cs3.ip frequently: all course announcements will appear there. This is in addition to the standard eduni.dcs.cs3 group, and is specifically for questions and discussion about the project. Staff, demonstrators and other students will all read and post to the group.

In an extended and substantial practical like this, it can be very helpful to air common queries and difficulties. Unfortunately, it is sometimes difficult to judge what amount of shared discussion is legitimate. We strongly encourage you to put all discussion of the practical on the newsgroup. As well as giving everyone a chance to comment and help you, this will also forestall any possible accusation of inappropriate collaboration.

Please take care to protect your own work from the inspection of others. Source code is precious: use chmod to protect files, and do not show your code to anyone else.

Additional Resources

Some people did not do the current version of CS1 so they have no notes on sockets to consult. Here are the relevant notes:
Stuart Anderson, soa@dcs.ed.ac.uk, JCMB Room 1610, extension 505191