The scope of this second edition of the introduction to fundamental distributed programming abstractions has been extended to cover Byzantine fault tolerance . It includes algorithms to implement these abstractions in vulnerable distributed systems.
Very good theoretical state of the art. Moreover, even if not stated, a plethora of the algorithms have applications in the more novel domain of permissioned blockchians.