[发明专利]一种拜占庭容错共识方法及系统有效
申请号: | 201910585248.1 | 申请日: | 2019-07-01 |
公开(公告)号: | CN112187490B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 林开辉;付伟 | 申请(专利权)人: | 深圳法大大网络科技有限公司 |
主分类号: | H04L41/00 | 分类号: | H04L41/00;H04L67/1042 |
代理公司: | 深圳中一联合知识产权代理有限公司 44414 | 代理人: | 黄志云 |
地址: | 518000 广东省深圳市福田区福田*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 拜占庭 容错 共识 方法 系统 | ||
1.一种拜占庭容错共识方法,其特征在于,包括:
在提案开始时,从区块链中关系对等的各共识节点中选取出主节点;
通过所述主节点打包交易生成区块并广播至所述区块链中的共识节点;其中,所述区块包括区块高度和轮数编号;
通过所述共识节点对接收的新生成区块进行验证,根据验证结果对当前提案进行投票并广播至其它共识节点;
通过所述共识节点统计所述新生成区块的投票,判断投票通过所述当前提案的票数在总票数中的占比是否超出预设阈值;若是,则提交所述新生成区块,生成提交信息并广播至其它共识节点;若否,则生成无赋值的提交信息并广播至其它共识节点;
通过所述共识节点统计所述新生成区块的提交信息,判断所述提交信息总数中真实的提交信息的数量占比是否超出所述预设阈值;若是,则对记录的所述区块高度和所述轮数编号累计加一;若否,则对记录的所述轮数编号累计加一;
通过所述主节点提交所述当前提案;
其中,所述通过所述共识节点对接收的新生成区块进行验证,根据验证结果对当前提案进行投票并广播至其它共识节点,包括:
所述共识节点中已有区块时,通过所述共识节点对比所述已有区块与所述新生成区块的区块高度;
若区块高度一致,则通过所述共识节点对所述新生成区块进行验证;
若验证通过,则释放所述已有区块,生成通过所述当前提案的投票并广播至其它共识节点;
若验证未通过,则保留所述已有区块,生成无赋值的投票并广播至其它共识节点。
2.如权利要求1所述的拜占庭容错共识方法,其特征在于,在所述共识节点中已有区块时,通过所述共识节点对比所述已有区块与所述新生成区块的区块高度之后,还包括:
若所述新生成区块的区块高度大于所述已有区块的区块高度,通过所述共识节点向所述区块链中其它共识节点要求同步区块并写入账本;
通过所述共识节点释放所述已有区块中剩余的区块并对所述新生成区块进行验证;
若验证通过,则生成通过所述当前提案的投票并广播至其它共识节点;
若验证未通过,则生成无赋值的投票并广播至其它共识节点。
3.如权利要求1所述的拜占庭容错共识方法,其特征在于,所述通过所述共识节点对接收的新生成区块进行验证,根据验证结果对当前提案进行投票并广播至其它共识节点,还包括:
所述共识节点超时未接收到所述新生成区块时,通过所述共识节点生成无赋值的投票并广播至其它共识节点。
4.如权利要求1所述的拜占庭容错共识方法,其特征在于,若所述共识节点判断投票通过所述当前提案的票数在总票数中的占比超出预设阈值,则提交所述新生成区块,生成提交信息并广播至其它共识节点,还包括:
所述共识节点未接收到所述新生成区块时,向所述区块链中其它共识节点要求同步所述新生成区块;
提交所述新生成区块,生成提交信息并广播至其它共识节点。
5.如权利要求1所述的拜占庭容错共识方法,其特征在于,所述在提案开始时,从区块链中关系对等的各共识节点中选取出主节点,包括:
计算所述轮数编号与所述区块链中共识节点的总数量作除法运算后的余数;
选取编号为所述余数的共识节点为主节点。
6.如权利要求1所述的拜占庭容错共识方法,其特征在于,所述通过所述主节点打包交易生成区块并广播至所述区块链中的共识节点,包括:
所述主节点中已有一个未提交区块时,通过所述主节点释放原有区块并根据更新后的轮数编号重新打包原有交易生成区块;
将所述新生成区块广播至所述区块链中的共识节点。
7.如权利要求6所述的拜占庭容错共识方法,其特征在于,所述通过所述主节点打包交易生成区块并广播至所述区块链中的共识节点,还包括:
所述区块高度增加后,通过所述主节点打包新的交易生成区块并广播至所述区块链中的共识节点。
8.如权利要求1-7所述的拜占庭容错共识方法,其特征在于,所述区块链中共识节点的总数量为奇数;所述预设阈值为1/2。
9.一种拜占庭容错共识系统,其特征在于,包括:
在提案开始时,从区块链中关系对等的各共识节点中选取出主节点;
主节点,用于打包交易生成区块并广播至所述区块链中的共识节点;其中,所述区块包括区块高度和轮数编号;
共识节点,用于对接收的新生成区块进行验证,根据验证结果对当前提案进行投票并广播至其它共识节点;
所述共识节点还用于统计所述新生成区块的投票,判断投票通过所述当前提案的票数在总票数中的占比是否超出预设阈值;若是,则提交所述新生成区块,生成提交信息并广播至其它共识节点;若否,则生成无赋值的提交信息并广播至其它共识节点;
所述共识节点还用于统计所述新生成区块的提交信息,判断所述提交信息总数中真实的提交信息的数量占比是否超出所述预设阈值;若是,则对记录的所述区块高度和所述轮数编号累计加一;若否,则对记录的所述轮数编号累计加一;
所述主节点还用于提交所述当前提案;
其中,所述通过所述共识节点对接收的新生成区块进行验证,根据验证结果对当前提案进行投票并广播至其它共识节点,包括:
所述共识节点中已有区块时,通过所述共识节点对比所述已有区块与所述新生成区块的区块高度;
若区块高度一致,则通过所述共识节点对所述新生成区块进行验证;
若验证通过,则释放所述已有区块,生成通过所述当前提案的投票并广播至其它共识节点;
若验证未通过,则保留所述已有区块,生成无赋值的投票并广播至其它共识节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳法大大网络科技有限公司,未经深圳法大大网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910585248.1/1.html,转载请声明来源钻瓜专利网。