P2P File Sharing

Basic Requirements

Requirements include

  • Anonymity for both those posting material to the system (publishers) and those retrieving material from the system (readers).
  • Content Encryption. All files and all inter-node messages should be encrypted.
  • Replication and Dispersal. The system should have some provision for automatically copying files and distributing copies across the network, so that bringing down any one or any small group of servers would be unlikely to remove documents from the system.
  • Automatic Migration. Files should tend to drift towards where they are most used.

Freenet Deficiencies

Freenet in particular has been widely analysed and is known to have several deficiencies. Any new system would have to address these.

  • Performance. Freenet is perceived by many as very slow.
  • Authentication. Freenet has no mechanism for authenticating users. This leaves it open to a variety of denial of service (DOS) attacks.
  • Prevention of Flooding. Any user can flood Freenet either by inserting bogus content into the system or by requesting content that is far away in network terms. In the latter case the system will replicate a document copy on every server queried in the course of retrieving the document.

Other Possible Requirements

  • Graceful Fragmentation. The system should survive network fragmentation. This might be caused by a failure in the underlying Internet or by the loss of an excessive number of authentication servers.
  • Graceful Merger. If a system has survived fragmentation, so that it continues to exist as two separate networks, then when whatever condition caused the fragmentation changes, it should be possible to remerge the two fragments. Ideally this will occur automatically.
  • Graceful Joins. From a user's point of view, joining the network should be entirely automatic or very nearly so.
  • Graceful Leaving. While it should be possible for a node to notify the system that it is leaving (being powered down, for example), the system should respond automatically to a node's departure.
  • Compatibility with Other P2P Networks. It is highly desirable that XLattice support gateways into other p2p networks such as freenet and mnet.