15_algorithm for Agreement
15_algorithm for Agreement
Write and explain an algorithm for agreement in synchronous systems with byzantine
failures.
Assumptions:
1. The system consists of nnn processes (or nodes), where ttt processes can be
faulty.
Goal:
To ensure all non-faulty processes agree on the same value proposed by a leader, even
if some processes behave maliciously.
1. Initialization:
• A designated leader (or proposer) process P0P_0P0 proposes a value vvv to all
other processes.
• The leader P0P_0P0 sends its proposed value vvv to all processes.
• Each process that received a value vvv from the leader broadcasts this value to
all other processes.
4. Decision Phase:
5. Termination:
Setup:
Execution:
1. P0P_0P0 (leader) proposes v=1v = 1v=1 and sends it to P1,P2,P3P_1, P_2, P_3P1
,P2,P3.
5. Decision:
o Both P1P_1P1 and P2P_2P2 agree on v=1v = 1v=1, as it forms the majority.
Correctness Properties:
2. Validity: If the leader is non-faulty and proposes vvv, all non-faulty processes
agree on vvv.
16. What are the issues in failure recovery? Explain the co-ordinated checkpointing
algorithm.