for distributed protocols, you might want to try Alloy.
Basically it allows you to find counter examples (which are in this case scenarios).
http://www2.research.att.com/~pamela/zave_podc.pdf
is a well known example, working on the Chord join/leave protocol.