(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202210078831.5
(22)申请日 2022.01.24
(65)同一申请的已公布的文献号
申请公布号 CN 114598475 A
(43)申请公布日 2022.06.07
(73)专利权人 浙江甲骨文 超级码科技股份有限
公司
地址 310000 浙江省杭州市西湖区华星路
99号东软创业大厦五层A5 09
(72)发明人 顾惠波 岳晓兰 孙海锋
(74)专利代理 机构 杭州裕阳联合专利代理有限
公司 33289
专利代理师 张解翠
(51)Int.Cl.
H04L 9/32(2006.01)H04L 9/40(2022.01)
(56)对比文件
CN 111612455 A,2020.09.01
CN 110245951 A,2019.09.17
CN 110677485 A,2020.01.10
WO 202124 4568 A1,2021.12.09
US 2021314162 A1,2021.10.07
Artem Barger.A Byzanti ne Fault-
Tolerant Co nsensus L ibrary for
Hyperledger Fabric. 《2021 IE EE
Internati onal Conference o n Blockchain
and Cryptocur rency (ICBC)》 .2021,
审查员 马文文
(54)发明名称
基于fabric的拜占庭容 错共识方法及系统
(57)摘要
本申请涉及一种基于fabric的拜占庭容错
共识方法及系统, 通过创建多个共识群组, 将处
于同一个通道的多个共识节点置入与该通道对
应的共识群组中, 降低了共识维度, 减少了共识
方法的通信复杂 度, 同时使 得各个共识群组可以
并行处理交易信息, 提高了交易信息处理效率。
本申请的打包节点只生成区块头而不生成区块
体, 使得区块头和区块体分离, 一方面区块消息
在传输过程中消息量减少了, 另一方面可以保护
交易隐私, 因为区块体保存在各共识群组里, 打
包节点和其他共识群组里的共识节点在公共存
储区中只会看到具有唯一标识作用的数据结构,
而不会获取具体的交易信息, 从而实现了共识群
组与共识 群组之间的隐私隔离, 增加了联盟链的
不可算改性。
权利要求书4页 说明书10页 附图2页
CN 114598475 B
2022.11.01
CN 114598475 B
1.一种基于fabric的拜占庭容错共识方法, 其特征在于, 所述基于fabric的拜占庭容
错共识方法包括:
创建多个共识群组, 每一个共识群组对应一个通道, 将处于同一个通道的多个共识节
点置入与该通道对应的共识群组中; 在每一个共识群组中, 存在一个主共识节点和至少一
个副共识 节点;
控制每一个共识群组执 行以下步骤:
共识群组内的主共识节点定时从与共识群组对应的本地交易池中取出至少一个交易
信息, 依据至少一个交易信息构建具有唯一标识作用的数据结构, 对所述数据结构签名生
成Proposal消息, 向共识群组内的所有副共识 节点各发送一条 该Proposal消息;
共识群组内的每一个副共识节点收到Proposal消息后, 解析该Proposal消息并获取该
Proposal消息中的数据结构, 对 所述数据结构签名生 成Prepare消息, 向共识群组内的所有
其他共识节点各发送一条 该Prepare消息;
当共识群组内的每一个共识节点收到一条Prepare消息时, 共识节点解析该Prepare消
息并获取该Prepare消息中的数据结构, 判断已收到的包含 该数据结构的Prepare消息总数
是否大于或等于2f+1;
若已收到的包含该数据结构的Prepar消息总数大于或等于2f+1, 则 共识节点对所述数
据结构签名生成Com mit消息, 向主共识 节点发送该Com mit消息;
当主共识节点收到一条Commit消息时, 主共识节点解析该Commit消息并获取Commit消
息中的数据结构, 判断已收到的包 含该数据结构的Com mit消息总数 是否大于或等于2f+1;
若已收到的包含该数据结构的Commit消息总数大于或等于2f+1, 则主共识节点对所述
数据结构签名生成群组共识结果数据, 向打包节点发送群组共识结果数据;
打包节点每隔第 一预设时间段, 收集不同共识群组 的主共识节点发送的群组共识结果
数据, 依据不同共识群组的主共识 节点发送的群组共识结果数据构造区块头;
打包节点以广播的形式将区块头分发给 联盟链中的所有共识群组。
2.根据权利 要求1所述的基于fabric的拜占庭容错共识方法, 其特征在于, 在所述共识
群组内的主共识节点定时从与共识群组对应的本地交易池中取出至少一个交易信息, 依据
至少一个交易信息构建具有唯一标识作用的数据结构, 对 所述数据结构签名生 成Proposal
消息, 向共识群组内的所有副共识节点各发送一条该Proposal消息之前, 所述基于fabric
的拜占庭容 错共识方法还 包括:
控制每一个共识群组执 行以下步骤:
监控共识群组内的每一个共识节点是否收到客户端发送的交易信 息, 当存在任意一个
共识节点接收到客户端发送的交易信息时, 控制该共识节点将所述交易信息缓存于与共识
群组对应的本地交易池中;
控制接收到交易信息的共识 节点在共识群组内广播所述交易信息 。
3.根据权利 要求2所述的基于fabric的拜占庭容错共识方法, 其特征在于, 所述数据结
构为merkle root, merkle root为依据从交易池中取出的所有交易信息构建的merkle树的
根。
4.根据权利 要求3所述的基于fabric的拜占庭容错共识方法, 其特征在于, 所述共识群
组内的主共识节点定时从与共识群组对应的本地交易池中取出至少一个交易信息, 依据至权 利 要 求 书 1/4 页
2
CN 114598475 B
2少一个交易信息构建具有唯一标识作用的数据结构, 对所述数据结构签名生 成Proposal消
息, 向共识群组内的所有副共识 节点各发送一条 该Proposal消息, 包括:
共识群组内的主共识节点每隔第 二预设时间段, 从与共识群组对应的本地交易池中取
出至少一个交易信息;
主共识节点依据预设merkle树构造对从与共识群组对应的本地交易池中取出的所有
交易信息进行哈希, 得到交易信息 哈希值, 同时生成merkle tree; merkle tree为将预设
merkle树构造融合了从与共识群组对应的本地交易池中取出的所有交易信息之后生成的
数据结构;
主共识节点将所述交易信息哈希值作为预设 merkle树构造的merk le root;
主共识节点从本地提取上一个时间节点对应的区块高度, 将上一个时间节点对应的区
块高度加1得到的数字作为当前区块高度;
主共识节点创建Proposal消息标签, 对Proposal消息标签、 当前区块高度和merkle
root的组合体进行签名, 得到Proposal签名;
主共识节点依据merk le tree和Proposal签名生成Proposal消息;
主共识节点向共识群组内的所有副共识 节点各发送一条 该Proposal消息 。
5.根据权利 要求4所述的基于fabric的拜占庭容错共识方法, 其特征在于, 所述共识群
组内的每一个副共识节点收到Proposal消息后, 解析该Proposal消息并获取该Proposal消
息中的数据结构, 对所述数据结构签名生 成Prepare消息, 向共识群组内的所有其他共识节
点各发送一条 该Prepare消息, 包括:
共识群组内的每一个副共识节点收到Proposal消息后, 共识节点解析该Proposal消息
并获取该Proposal消息中的Proposal签名;
副共识节点验证Proposal签名的合法性, 判断Proposal签名是否合法;
若Proposal签名合法, 则副共识节点解析Proposal签名, 并获取Proposal签名中的
merkle root;
副共识节点从本地提取上一个时间节点对应的区块高度, 将上一个时间节点对应的区
块高度加1得到的数字作为当前区块高度;
副共识节点创建Prepare消息标签, 对Prepare消息标签、 当前区块高度和merkle root
的组合体进行签名, 得到Prepare签名, 将Prepare签名作为Prepare消息;
副共识节点向共识群组内的所有其 他共识节点各发送一条 该Prepare消息 。
6.根据权利 要求5所述的基于fabric的拜占庭容错共识方法, 其特征在于, 所述当共识
群组内的每一个共识节点收到一条Prepare消息时, 共识节 点解析该Prepare消息并获取该
Prepare消息中的数据结构, 判断已收到的包含 该数据结构的Prepare消息总数是否大于或
等于2f+1, 包括:
当共识群组内的每一个共识节点收到一条Prepare消息时, 共识节点解析该Prepare消
息并获取Prepare消息中的Prepare签名;
共识节点验证Prepare签名的合法性, 判断Prepare签名是否合法;
若Prepare签名合法, 则共识节点解析Prepare签名, 并获取Prepare签名中的merkle
ro
专利 基于fabric的拜占庭容错共识方法及系统
文档预览
中文文档
17 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共17页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-07 12:41:13上传分享