Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems
Middleware '01 Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg
Model Checking TLA+ Specifications
CHARME '99 Proceedings of the 10th IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods
Performance and Dependability of Structured Peer-to-Peer Overlays
DSN '04 Proceedings of the 2004 International Conference on Dependable Systems and Networks
Verification of Peer-to-peer Algorithms: A Case Study
Electronic Notes in Theoretical Computer Science (ENTCS)
Verifying a structured peer-to-peer overlay network: the static case
GC'04 Proceedings of the 2004 IST/FET international conference on Global Computing
Verifying safety properties with the TLA+ proof system
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
A mechanized model for CAN protocols
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
Hi-index | 0.00 |
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.