Verification of Peer-to-peer Algorithms: A Case Study

The problem of maintaining structured peer-to-peer (P2P) overlay networks in the presence of concurrent joins and failures of nodes is the subject of intensive research. The various algorithms underlying P2P systems are notoriously difficult to design and analyse. Thus, when verifying P2P algorithms, a real challenge is to find an adequate level of abstraction at which to model the algorithms and perform the verifications. In this paper, we propose an abstract model for structured P2P networks with ring topology. Our model is based on process algebra, which, with its well-developed theory, provides the right level of abstraction for the verification of many basic P2P algorithms. As a case study, we verify the correctness of the stabilization algorithm of Chord, one of the best-known P2P overlay networks. To show the correctness of the algorithm, we provide a specification and an implementation of the Chord system in process algebra and establish bisimulation equivalence between the two.

[1]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[2]  Geoffrey C. Fox Message passing: from parallel computing to the grid , 2002, Comput. Sci. Eng..

[3]  David R. Karger,et al.  Looking up data in P2P systems , 2003, CACM.

[4]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[5]  Seif Haridi,et al.  A Statistical Theory of Chord Under Churn , 2005, IPTPS.

[6]  Xiaozhou Li,et al.  Brief announcement: concurrent maintenance of rings , 2004, PODC '04.

[7]  Maria Grazia Vigliotti,et al.  Leader Election in Rings of Ambient Processes , 2005, EXPRESS.

[8]  Chanchal Kumar Roy,et al.  Modeling Erlang in the pi-calculus , 2005, ERLANG '05.

[9]  George Varghese,et al.  Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications , 2001, SIGCOMM 2001.

[10]  Davide Sangiorgi,et al.  The Pi-Calculus - a theory of mobile processes , 2001 .

[11]  Catuscia Palamidessi,et al.  Comparing the expressive power of the synchronous and the asynchronous π-calculus , 1998, POPL '97.

[12]  Dilian Gurov,et al.  Verifying a Structured Peer-to-Peer Overlay Network: The Static Case , 2004, Global Computing.

[13]  David R. Karger,et al.  Chord: a scalable peer-to-peer lookup protocol for internet applications , 2003, TNET.

[14]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[15]  David R. Karger,et al.  Chord: A scalable peer-to-peer lookup service for internet applications , 2001, SIGCOMM '01.

[16]  Lars-Åke Fredlund,et al.  A framework for reasoning about Erlang code , 2001 .

[17]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .