Free Haven offers a community of servers called the servnet. Despite the name, all servers count the same, and within the servnet Free Haven is a peer-to-peer system. There are no “clients” in the old client/server sense; the closest approximation are users looking for files and potential publishers. Users query the entire servnet at once, not any single server in particular. Potential publishers do convince a single server to publish a document, but the actual publishing of a document is done by a server itself in a peer-to-peer fashion.
All of these entities—server, reader, and publisher—make up the Free Haven players. Thanks to pseudonymity, nobody knows where any server is located—including the one they use as their entry point to the system. Users query the system via broadcast.
Servers don’t have to accept just any document that publishers upload to them. That would permit selfish or malicious people to fill up the available disk space. Instead, servers form contracts to store each other’s material for a certain period of time.
Successfully fulfilling a contract increases a server’s reputation and thus its ability to store some of its own data on other servers. This gives an incentive for each server to behave well, as long as cheating servers can be identified. We illustrate a technique for identifying cheating servers in Section 12.3.9. In Section 12.3.11, we discuss the system that keeps track of trust in each server.
Some of these contracts are formed ...