Do-all computing in distributed systems cooperation in the presence of adversity (Springer, 2008)