Towards Verification of the Pastry Protocol Using TLA +

International audience Pastry is an algorithm that provides a scalable distributed hash table over an underlying P2P network. Several implementations of Pastry are available and have been applied in practice, but no attempt has so far been made to formally describe the algorithm or to verify its pro...

Full description

Bibliographic Details
Main Authors: Lu, Tianxiang, Merz, Stephan, Weidenbach, Christoph
Other Authors: Max-Planck-Institut für Informatik (MPII), Max-Planck-Gesellschaft, VERIfication pour les systèmes DIStribués (VERIDIS), Inria Nancy - Grand Est, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Laboratoire Lorrain de Recherche en Informatique et ses Applications (LORIA), Institut National de Recherche en Informatique et en Automatique (Inria)-Université de Lorraine (UL)-Centre National de la Recherche Scientifique (CNRS)-Université de Lorraine (UL)-Centre National de la Recherche Scientifique (CNRS), Roberto Bruni, Juergen Dingel, TC 6, WG 6.1
Format: Conference Object
Language:English
Published: HAL CCSD 2011
Subjects:
Online Access:https://inria.hal.science/hal-01583322
https://inria.hal.science/hal-01583322/document
https://inria.hal.science/hal-01583322/file/978-3-642-21461-5_16_Chapter.pdf
https://doi.org/10.1007/978-3-642-21461-5_16
Description
Summary:International audience Pastry is an algorithm that provides a scalable distributed hash table over an underlying P2P network. Several implementations of Pastry are available and have been applied in practice, but no attempt has so far been made to formally describe the algorithm or to verify its properties. Since Pastry combines rather complex data structures, asynchronous communication, concurrency, resilience to churn and fault tolerance, it makes an interesting target for verification. We have modeled Pastry’s core routing algorithms and communication protocol in the specification language TLA + . In order to validate the model and to search for bugs we employed the TLA + model checker tlc to analyze several qualitative properties. We obtained non-trivial insights in the behavior of Pastry through the model checking analysis. Furthermore, we started to verify Pastry using the very same model and the interactive theorem prover tlaps for TLA + . A first result is the reduction of global Pastry correctness properties to invariants of the underlying data structures.