Concurrency Testing of the HotStuff Distributed Consensus Algorithm
More Info
expand_more
Abstract
Concurrency bugs are easy to introduce but dif- ficult to detect, especially in implementations of distributed algorithms where concurrency non- determinism is an inherent problem. These bugs may only be identified under very specific order- ings of execution events, making them challenging to reproduce. Controlled concurrency testing tech- niques have been proposed to address the testing challenge, by taking over the scheduling of events, and effectively searching the state space of sched- ules to identify the concurrency bugs.
In this paper, we investigate and compare the per- formance of two concurrency exploration algo- rithms, probabilistic concurrency testing (PCT) and delay bounding strategy on our implementation of the HotStuff consensus protocol, which has been quite popular and was adopted by Meta for its Diem blockchain project. Our results suggest that can in- deed find concurrency bugs more frequently in our HotStuff implementation than the baseline random strategy. However, using different bound parame- ters for PCT and delay bounding does not have sig- nificant effect on bug finding performance on our benchmarks.