The Ethereum blockchain is the operational backbone of major decentralized finance platforms. As such, it is expected to be exceptionally reliable. In this paper, we present ChaosETH, a chaos engineering tool for resilience assessment of Ethereum clients. ChaosETH operates in the following manner: First, it monitors Ethereum clients to determine their normal behavior. Then, it injects system call invocation errors into the Ethereum clients and observes the resulting behavior under perturbation. Finally, ChaosETH compares the behavior recorded before, during, and after perturbation to assess the impact of the injected system call invocation errors. The experiments are performed on the two most popular Ethereum client implementations: GoEthereum and OpenEthereum. We experiment with 22 different types of system call invocation errors. We assess their impact on the Ethereum clients with respect to 15 application-level metrics. Our results reveal a broad spectrum of resilience characteristics of Ethereum clients in the presence of system call invocation errors, ranging from direct crashes to full resilience. The experiments clearly demonstrate the feasibility of applying chaos engineering principles to blockchains.
翻译:Eceenum 块链是主要分散化金融平台的操作支柱。 因此, 它预计会非常可靠 。 在本文中, 我们展示了ChaosETH, 这是Eceenum 客户弹性评估的混乱工程工具。 ChaosETh 以下列方式运作: 首先, 它监测 Etheum 客户的正常行为。 然后, 它输入系统向 Etheemeum 客户调用调用错误, 并观察由此引发的干扰行为 。 最后, Chaoseth 比较了在系统调用错误之前、 期间 和 之后记录的行为, 以评估注射系统调用错误的影响 。 实验是在两种最受欢迎的 Etheenum 客户执行过程中进行的 : GoEetherum 和 OpenEtherum 。 我们试验了22种不同的系统调用错误。 我们评估了 Etheem 客户在15 应用级指标方面的影响。 我们的结果揭示了Eteem 客户在系统调用调用错误时具有广泛的恢复力特性特征, 从直接碰撞到完全恢复能力。 实验清楚地表明了将混乱工程原理应用到区链的可行性 。