A critical component of any blockchain or distributed ledger technology (DLT) platform is the consensus algorithm. Blockchain consensus algorithms are the primary vehicle for the nodes within a blockchain network to reach an agreement. In recent years, many blockchain consensus algorithms have been proposed mainly for private and permissioned blockchain networks. However, the performance of these algorithms and their reliability in hostile environments or the presence of byzantine and other network failures are not well understood. In addition, the testing and validation of blockchain applications come with many technical challenges. In this paper, we apply chaos engineering and testing to understand the performance of consensus algorithms in the presence of different loads, byzantine failure and other communication failure scenarios. We apply chaos engineering to evaluate the performance of three different consensus algorithms (PBFT, Clique, Raft) and their respective blockchain platforms. We measure the blockchain network's throughput, latency, and success rate while executing chaos and load tests. We develop lightweight blockchain applications to execute our test in a semi-production environment. Our results show that using chaos engineering helps understand how different consensus algorithms perform in a hostile or unreliable environment and the limitations of blockchain platforms. Our work demonstrates the benefits of using chaos engineering in testing complex distributed systems such as blockchain networks.
翻译:任何链条或分布式分类账技术(DLT)平台的一个关键组成部分是共识算法。 链条共识算法是链条网络内各节点达成协议的主要工具。 近年来,许多链条共识算法主要针对私人和允许的链条网络提出。 但是,这些算法的性能及其在敌对环境中的可靠性,或来自赞丁和其他网络的故障,并没有得到很好的理解。此外,对链条应用程序的测试和验证也带来了许多技术挑战。在本文中,我们应用混乱工程和测试来理解在存在不同负荷的情况下,在阻断式网络内,在阻隔式链故障和其他通信故障情况下,协商一致算法的性能。我们应用混乱工程来评估三种不同的共识算法(PBFT、Clique、Raft)及其各自的链条平台的性能。我们在进行混乱和负载测试时,测量了阻隔式网络的吞吐、拉特尼和成功率。我们开发了轻质的连锁应用程序,以便在半生产环境中进行测试。我们的成果表明,使用混乱工程的混杂操作法有助于理解在复杂、不可靠、不可靠、不可靠的系统上如何运行。