| Carl Friedrich Gauß Faculty | Department of Computer Science

Byzantine agreement service on distributed embedded systems

SupervisorWenbo Xu
ProfessorProf. Dr. Rüdiger Kapitza
IBR GroupDS (Prof. Kapitza)
TypeBachelor Thesis, Master Thesis, Project Thesis


Agreement is a fundamental problem in distributed systems, for example a group of cars consisting a platoon want to agree on a route to the destination. Of course we can elect a special leader to decide, and the others just follow the leader. However the leader might stop working or be split from the group caused by a network failure. Thus the crash-fault and network partition has to be tolerated. A more severe problem can occur: someone can send wrong messages or even malicious, cheating messages to render the system useless. This special fault is referred to Byzantine fault [1,2]. According we are developing a Byzantine fault tolerant (BFT) agreement protocol, which is tailored for the embedded system e.g. intelligent or Unmanned Aerial Vehicles (UAV).


There are several well-developed BFT agreement protocols in our group. But all of them are designed for data center servers, which are equipped with powerful CPU, huge memory and stable network settings. These assumptions can be hardly practical on embedded systems with limited computational resource and unreliable network communication. The first objective is to analysis our current algorithms and implementations, and find out which features (including the implementing language, currently mostly Java) are applicable to the embedded scenario and which are not. Then a new protocol suitable for embedded is designed and implemented. Finally the protocol will be evaluated, on simulators and/or hardware testbed. We use our extension of Veins [3] - vehicular network simulator - as the simulator. We have also four RaspberryPis consisting a hardware testbed. The evaluation result will be analyzed to prove the usability and performance of the developed protocol.
C/C++ and/or Python is preferred as the developing language. Java knowledge will also help to understand the current code.

[1] "Byzantine generals problem" paper
[2] Wikipedia page of Byzantine fault tolerance
[3] Veins homepage

last changed 2018-06-01, 09:15 by Wenbo Xu