Behavior of Byzantine Algorithm Chun Zhang
Index Introduction Experimental Setup Behavior Observation Result Analysis Conclusion Future Work
Introduction---Byzantine Algorithm Commanding-general & lieutenants each general (process) may be either loyalty or traitor (faulty) commanding-general sends two types of orders: attack and retreat Problem all lieutenants decide on the order to obey all loyal lieutenants decide on the same order if the commanding-general is loyal, then every loyal lieutenant obeys the order he sends Faulty tolerance: n>= 3m+1: the algorithm can solve the problem n <3m+1: the algorithm won’t work properly
Experimental Setup m=4 n=1: started by the number of 4 nodes, 1 of 4 nodes is traitor. Running 60 times for each pair of input number Input number according to n>=3m+1 and n<3m+1 Range: general numbers are between 4 and 10
Behavior Observation---n>=3m+1
Behavior Observation---n<3m+1
Result Analysis: No. of Decisions Based on Varying Input Number n>=3m+1(4,1)(5,1)(6,1)(7,1)(7,2)(8,2)(9,2)(10,1)(10,2)(10.3) A R W n<3m+1(4,2)(4,3)(5,2)(5,3)(6,2)(6,3)(7,3)(7,4)(8.3)(9,3) A R W
Result Analysis: No. of Decisions Based on Varying Input Number
Conclusion n>=3m+1 The retreat has large portion of the decision and the change is smooth. The attack and wait has small portion of the decision, most of the time, the change is smooth. n<3m+1 The retreat is still in large portion of the decision but the change is a little bit sharp comparing the change in n>3m+1. The attack and wait still is in small portion of the decision, but the change is a little bit sharp comparing the change in n>3m+1.
Future Work To test my program with much larger no. of processes. To test my program on a real distributed network.
Reference Lamport L., Shostak R., and Pease M. “The Byzantine Generals Problem”, ACM transactions on Programming Languages and Systems 4(3), 1982
Thank You
Code Explanation