  One of the most recent members of the Paxos family of protocols is
Generalized Paxos. This variant of Paxos has the characteristic that it departs
from the original specification of consensus, allowing for a weaker safety
condition where different processes can have a different views on a sequence
being agreed upon. However, much like the original Paxos counterpart,
Generalized Paxos does not have a simple implementation. Furthermore, with the
recent practical adoption of Byzantine fault tolerant protocols, it is timely
and important to understand how Generalized Paxos can be implemented in the
Byzantine model. In this paper, we make two main contributions. First, we
provide a description of Generalized Paxos that is easier to understand, based
on a simpler specification and the pseudocode for a solution that can be
readily implemented. Second, we extend the protocol to the Byzantine fault
model.
