摘要

针对实用拜占庭容错算法PBFT存在的系统动态性不足以及主节点选取随意导致的共识效率较低、系统稳健性较差等问题,提出一种基于一致性哈希和随机选取的CRPBFT共识算法。首先采用一致性哈希对节点进行分组,在分组的基础上增加节点动态变化机制,为系统提供动态的网络结构。其次根据节点在共识中的表现动态计算各节点的信誉值,同时定义主节点候选列表、普通节点和恶意节点这三种节点信誉层次,从高信誉值的主节点候选列表中使用可验证随机函数选取可靠且身份难以被恶意预测的主节点,并将符合信誉值要求的节点组成较稳定的共识集群。实验结果表明CRPBFT算法较PBFT算法中共识节点集群的可靠程度更高,在共识时延、吞吐量以及系统稳健性方面的性能优于PBFT算法。