基于 N 版本设计的区块链节点高可用性方案
软件工程
2024-02-08 v3
摘要
与所有软件一样,区块链节点在其底层执行栈中面临故障风险。不稳定的执行环境会破坏区块链节点接口的可用性,导致用户遭遇停机。本文引入 N 版本区块链节点的概念。这类新型节点依照 Avizienis 的 N 版本编程思想,同时执行同一区块链协议的不同实现。我们在以太坊背景下设计并实现了一种 N 版本区块链节点原型,称为 N-ETH。我们表明 N-ETH 能够缓解不稳定执行环境的影响,并在环境故障下显著提升可用性。为模拟不稳定的执行环境,我们在系统调用层面进行故障注入。我们的结果表明,现有的以太坊节点实现在相同的失稳场景下表现出非对称行为。N-ETH 利用以太坊节点多种实现中可用的这种非对称行为来提供更高的可用性,即使在我们最具侵略性的故障注入策略下也是如此。我们首次验证了 N 版本设计在区块链基础设施领域的适用性。从产业角度看,我们的结果对运营区块链节点的企业(包括 Google、ConsenSys 以及许多其他主要区块链公司)极为重要。
引用
@article{arxiv.2303.14438,
title = {Highly Available Blockchain Nodes With N-Version Design},
author = {Javier Ron and César Soto-Valero and Long Zhang and Benoit Baudry and Martin Monperrus},
journal= {arXiv preprint arXiv:2303.14438},
year = {2024}
}