if node_1 is only proposer then the system can not decide for a proposal. if node_1 (let's say v) and node_2(let's say v') are both acceptors and proposers then the algorithm can decide for the accepted proposal. Assume that node v tries to propose v value and node v' tries to propose v' value. So, let's see the following example. Proposer v sends a prepare with number 3. The acceptors have previous values so send back ACK-prepare
with the previous proposals. Then the v' dies unexpectedly. But the "v" acceptor keeps running and accepts the proposal v' made by v proposer. Then, the acceptor sends ACK-proposal
and the system ends with a decision.
To make our example more efficient, the accepted value is the value of proposer v' (that has died). But before died send the v' value with number 2 that is the final decided value.
The algorithm has the following assumptions:
- Network can delay packets
- reorder packets
- lose packets
- BUT not corrupt packets
if you havent read this, take a look..