Stein, C.A.Tucker, Michael J.Seltzer, Margo2015-11-162002Stein, C.A. (Lex), Michael J. Tucker, and Margo I. Seltzer. 2002. Reliable and Fault-Tolerant Peer-to-Peer Block Storage. Harvard Computer Science Group Technical Report TR-04-02.http://nrs.harvard.edu/urn-3:HUL.InstRepos:23574653The Charles is a scalable, fault-tolerant, persistent block storage service built from a constantly changing network of potentially faulty or malicious computing nodes. The Charles is designed for a P2P environment: networks characterized by frequent process joins and departures, as well as arbitrary or Byzantine process behavior. The Charles consists of two levels. The top level provides a scalable lookup service. This level is known as the Surface level and is structured as a ring of slowly changing process groups. The bottom level, known as the Submerged level, combines individual processes together into fault-tolerant groups absorbing network dynamics and process failure; whether it is arbitrary behavior or crash failure. The bottom level serves to provide the top level with predictable and well-behaved process groups. Both levels are self-organizing and self-managing. The Charles has no centralized control. The Charles combines block lookup with storage. Fault-tolerance is provided through replication within process groups. Replication is maintained internally without any application state or callbacks.en-USReliable and Fault-Tolerant Peer-to-Peer Block StorageResearch Paper or Report2015-11-16