[发明专利]一种对传统PBFT进行改进的共识算法在审
申请号: | 202010040624.1 | 申请日: | 2020-01-15 |
公开(公告)号: | CN111277636A | 公开(公告)日: | 2020-06-12 |
发明(设计)人: | 刘明哲;王坤;杨晨;张弘;李冬芬;欧鸥;李军 | 申请(专利权)人: | 成都理工大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 成都众恒智合专利代理事务所(普通合伙) 51239 | 代理人: | 王育信 |
地址: | 610000 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 传统 pbft 进行 改进 共识 算法 | ||
本发明公开了一种对传统PBFT进行改进的共识算法,主要解决现有技术中存在的传统的PBFT算法的主节点在通信复杂度增加时,易出现宕机或者出错的问题。该方法包括(S1)取消传统PBFT算法中所包含的主节点,使得改进后的PBFT算法中的所有节点身份对等;(S2)增加排序服务,客户端将请求发送给排序服务;(S3)排序服务将排好序的请求发送给副本节点;(S4)副本节点对请求进行操作,并将操作结果返回给客户端;(S5)客户端收到来自f+1个不同副本节点的相同回复后,将回复作为对应请求的结果。通过上述方案,本发明达到了自由订阅或退出的目的,具有很高的实用价值和推广价值。
技术领域
本发明属于区块链技术领域,具体地讲,是涉及一种对传统PBFT进行改进的共识算法。
背景技术
目前,区块链发展迅速,共识算法作为区块链的核心组成部分被很多技术团队研究。共识是去中心化的方式就网络的状态达成统一协议的过程。共识主要分为最终一致性共识算法,例如工作量证明算法(POW)、基于股份的证明算法(POS)和委托股权证明算法(DPOS)等,强一致性算法,例如,Paxos算法和实用性拜占庭容错算法(PBFT)等。
区块链项目分为公有链、联盟链以及私有链。其中,联盟链只允许有身份证明的用户参加记账,一般使用PBFT作为共识机制。PBFT算法至少需要n=3f+1个节点以容忍f个作恶节点(n=3f+1个节点也达到最优的性能,节点再多只会影响性能)。传统的PBFT算法(如附图1所示)通过设置主节点来对交易进行排序,通过节点间的交流来达到操作的安全性和活性,但是由于全部通过主节点来进行下发信息,当节点增多或者PBFT算法变得复杂时,出现主节点宕机或者出错的几率也越来越大。因此,传统的PBFT算法存在当通信复杂度达到O(n^2),当节点数量增加的时候,性能急速下降,难以满足生产生活需求。
发明内容
本发明的目的在于提供一种对传统PBFT进行改进的共识算法,主要解决现有技术中存在的传统的PBFT算法的主节点在通信复杂度增加时,易出现宕机或者出错的问题。
为了实现上述目的,本发明采用的技术方案如下:
一种对传统PBFT进行改进的共识算法,包括如下步骤:
(S1)取消传统PBFT算法中所包含的主节点,使得改进后的PBFT算法中的所有节点身份对等;
(S2)增加排序服务,客户端将请求发送给排序服务;
(S3)排序服务将排好序的请求发送给副本节点;
(S4)副本节点对请求进行操作,并将操作结果返回给客户端;
(S5)客户端收到来自f+1个不同副本节点的相同回复后,将回复作为对应请求的结果,其中,f为作恶副本的个数,副本总数应不小于3f+1。
进一步地,所述步骤(S1)中传统的PBFT算法包括主节点与副本节点,改进后的PBFT算法中的节点均为副本节点。
进一步地,所述步骤(S2)中增加排序服务,副本节点可以通过订阅或取消订阅排序服务动态的加入或退出共识算法。
进一步地,所述步骤(S3)中排序服务为Solo排序服务、Kafka排序服务和Raft排序服务中的一种,其中,排序服务连接客户端,接收客户端发出的请求并对请求进行排序,请求排序完成后,将请求发送给订阅排序服务的副本节点。
具体地,所述步骤(S4)中操作结果包含发送请求和接收请求两种执行结果,客户端将请求发送给排序服务进行排序,客户端接收副本节点返回的执行结果。
与现有技术相比,本发明具有以下有益效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都理工大学,未经成都理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010040624.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种语言描述引导的视频时序定位方法
- 下一篇:一种用于教学的直播系统及设备