[发明专利]一种基于分层模型的联盟链的共识方法有效
申请号: | 202110391063.4 | 申请日: | 2021-04-12 |
公开(公告)号: | CN113191772B | 公开(公告)日: | 2023-06-20 |
发明(设计)人: | 乔亚男;何伟;李冲;豆化宙 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06Q20/40 | 分类号: | G06Q20/40;G06Q20/38;H04L9/32 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 闵岳峰 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 分层 模型 联盟 共识 方法 | ||
1.一种基于分层模型的联盟链的共识方法,其特征在于,包括以下步骤:
(1)交易背书,判断交易提议是否满足背书策略,是,进行下一步,否则系统直接回绝交易请求;具体实现方法如下:
(1.1)客户端发送交易到联盟链中的背书节点,背书节点根据本地的智能合约模拟执行交易,并将响应结果,包括模拟交易生成的读写集返回给客户端;
(1.2)客户端将交易转发到其他非背书节点,收到交易的非背书节点将交易缓存在本地;
(1.3)客户端根据背书策略验证背书成功后向Leader节点发送消息,请求打包区块,若验证背书失败,通知所有节点删除交易缓存;
(2)Leader节点生成区块并基于分层模型传播到系统的每个节点,同时进行拜占庭初步验证;具体实现方法如下:
(2.1)Leader节点收到请求打包的消息后生成区块,签名,参照Goosip协议发送至若干网络距离较近的节点;
(2.2)节点收到区块消息后在依次传播,据此根据将传播网络分层,每层选取代理节点;
(2.3)在传播区块的过程中初次验证区块,节点将收到的区块内交易与本地缓存交易比较,不符合则与上一层代理节点通信完成区块传播,若发现Leader作恶,则各层代理节点分别在本地完成准备工作,竞选Leader;
(2.4)节点该收到区块后验证区块的Leader节点签名,验证失败越过拜占庭节点与上一层的代理节点通信完成区块的传播,若发现Leader作恶,则各层代理节点分别在本地完成准备工作,竞选Leader;
分层传输过程中在每一层的代理节点PB的选取遵循公式如下:
PB所计算出的评价分数与后一层和前一层的差值大小的绝对值的比例在一个范围内,超出这个范围说明再进行分层应用意义不大,则不进行下一层的PB选取;
式中,Wn——第n层某代理节点的评价分数;Wn+1——第n+1层某代理节点的评价分数;α——常量;
式中,w——节点的评价分数;X,Y,Z——常数,满足X+Y+Z=1;Cost——节点与Leader节点同步日志所需开销;Dist——节点与主节点网络距离;Pref——节点配置性能值;
(3)分层传播过程的初步验证通过后,节点完成区块二次验证,本地提交。
2.根据权利要求1所述的一种基于分层模型的联盟链的共识方法,其特征在于,步骤(3)的具体实现方法如下:
(3.1)节点在初次验证区块通过后,发送带有签名的消息到其他节点;
(3.2)节点收到多数节点验证通过的消息,在本地进行下一步再次验证区块,否则抛弃区块;
(3.3)验证任期号节点确认区块中任期号,任期号低于节点当前任期号的区块被认为已经过期,就地抛弃,否则进行下一步;
(3.4)判断前块哈希值是否是最后提交区块的哈希值,不是则对块高进行验证,块高是否大于最后提交的区块块高,大于则将该区块缓存,并向其他节点请求从本地最后提交区块的块高开始一直到其他节点最新提交的区块,块高如果低于本地最后所提交的区块块高,该区块将会被就地抛弃,否则进行下一步;
(3.5)节点计算区块体哈希值是否与块头中的一致,是则进行下一步,否则抛弃区块;
(3.6)读写集的冲突验证,验证通过则将区块提交本地,否则抛弃区块。
3.根据权利要求1所述的一种基于分层模型的联盟链的共识方法,其特征在于,节点配置性能值根据集群节点配置分为三档,取0.5,1,1.5中某一个值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110391063.4/1.html,转载请声明来源钻瓜专利网。