Central articles: Open Napster, "Napster protocol specification". Distributed Search Solutions, "Gnutella protocol rev 0.4". Clarke et al, Freenet ... Questions: 1. What is the main design difference between Napster and Gnutella? 2. How does the Gnutella network avoid duplicated messages? 3. How does Gnutella route queries? 4. Can you store a file into the Gnutella network, turn your machine of and find the file from another machine? 5. How could Gnutella scaling be enhanced ? (by using some of Freenet principles) 6. How does Freenet route queries ? 7. What is the purpose of KSKs ? 8. Can you suggest a change in the Freenet protocol in order to support free-text queries ? 9. Is it possible to remove a file from Freenet? 10. Consider a "leasing model" (a la Freenet) where each stored data item is equipped with a last-access timestamp and a time-to-live value, such that when the current time exceeds the sum of last-access and time-to-live, then the item is deallocated. Can we be certain that all garbage data (data that his been 'overwritten' but is still stored on Freenet) is eventually deallocated? 11. Imagine that you need to lookup the pre-war address of a person in Bosnia in an electronic version of the phonebook from 1993 stored in Freenet. Can you be certain that you can find the phonebook? Why not? How can we ensure that the phonebook is still available in 2002? (Question raised by Roger Dingledine in his Master's thesis introducing the FreeHaven Project.)