论文部分内容阅读
在一个分布式系统中,由于存在网络通信不可靠、节点可能失效等一系列的问题,导致系统的一致性难以达成。拜占庭共识算法是高可用性分布式系统的核心研究内容,能够使得系统在出现各种错误的情况下依旧对外提供正确一致的服务。同时异步系统由于其不依赖于时间假设的特性,相比于同步系统更加具有实际可用性。因此异步环境下的拜占庭共识算法研究具有十分重大的理论意义和实际意义。交互一致性问题(IC)是最早被提出的一类共识问题。早先的研究大多针对同步系统,有着非常强的同步假设。但是在互联网流行的当下,实际的分布式系统在大多情况下均呈现异步性,因此传统的同步交互一致性算法并不适用。而在纯异步环境下,由于无法区分一个节点是失效节点还是慢速节点,因此,纯异步环境下的交互一致性无法解决。针对上述现状,本文在Diamantopoulos等人的工作基础之上提出了一种异步环境下(非纯异步)的高效交互一致性算法(IC,RBC-ABVA)。该算法通过可靠广播协议(RBC)来将正确节点的提议值发送给网络中的所有节点,通过本文提出的异步二元向量拜占庭共识协议(ABVA)直接对所有节点的提议值发起共识,改进了传统并行执行多个二元共识协议的解决方案,整体消息复杂度仅为O(N~3),明显优于Diamantopoulos等人提出的算法。实验结果表明,本文提出的算法在性能上具有明显优势。向量共识问题弱化了交互一致性问题中的有效性定义,使得向量共识问题在纯异步环境下可解。本文对纯异步环境下的高效拜占庭共识算法HoneyBadgerBft(本质为向量共识)进行了深入分析,在其基础上提出了一种多轮执行场景下更加高效的异步拜占庭共识算法HBBFT-improved。该算法将传统的异步公共子集协议(ACS)解耦,通过增加一个存储层并结合PBFT算法给交易排序的思想,使得在多轮执行场景下,节点交易的可靠广播无需等待共识阶段的完成,能够在一定程度上提升算法的吞吐量。抛弃节点中多个异步二元共识协议(ABA)实例独自协商每一轮公共拋币值的方式,选择让节点中并行运行的多个ABA实例共同协商每一轮的公共拋币值,降低耗时的门限签名操作次数以及所需传输的消息数量,可以在一定程度上降低算法的时延。本文从理论上对HBBFT-improved算法的正确性和安全性进行了分析与证明,并通过实验进行实际的性能评测。实验结果验证了本文提出的算法在多轮执行场景下具有一定的性能优势。