【技术实现步骤摘要】
一种数据处理方法、装置、设备及存储介质
本申请涉及区块链
,尤其涉及一种数据处理方法、装置、设备及存储介质。
技术介绍
在区块链网络中的主节点基于共识算法(例如,PracticalByzantineFaultTolerance共识算法,简称PBFT算法)对待广播消息(例如,交易请求消息或者包括交易请求消息的待验证区块)进行共识时,区块链网络中的备份节点会将在准备阶段中所生成的准备消息和在提交阶段中生成的提交消息无差别的广播至所有节点,由此可知采用PBFT算法进行共识时的网络复杂度较高。应当理解,采用PBFT算法进行共识时,会导致共识过程中有较多的网络交互,以至于占用较多带宽,在网络状况较差的情况下,备份节点会误以为主节点发生故障,从而切换区块链网络对应的视图。可以理解的是,视图频繁切换易造成网络拥堵,导致共识效率降低。
技术实现思路
本申请实施例提供一种数据处理方法、装置、设备及存储介质,可以降低共识时的网络复杂度。本申请实施例一方面提供一种数据处理方法,该方法由区块链网络中的第一节点执行, ...
【技术保护点】
1.一种数据处理方法,其特征在于,所述方法由区块链网络中的第一节点执行,包括:/n基于接收到的客户端的交易请求消息,生成用于广播至所述区块链网络中的(N-1)个备份节点的第一准备消息,以使所述(N-1)个备份节点对所述第一准备消息中的第一签名信息进行签名验证,在签名验证成功时得到所述第一准备消息对应的第二准备消息;所述N为所述区块链网络中的节点总数量,且所述N为等于(3f+1)的正整数;所述f为所述区块链网络中的非法节点的最大数量;/n在接收到所述(N-1)个备份节点中的2f个备份节点返回的第二准备消息时,对接收到的所有第二准备消息中的第二签名信息进行聚合签名,得到用于广播 ...
【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法由区块链网络中的第一节点执行,包括:
基于接收到的客户端的交易请求消息,生成用于广播至所述区块链网络中的(N-1)个备份节点的第一准备消息,以使所述(N-1)个备份节点对所述第一准备消息中的第一签名信息进行签名验证,在签名验证成功时得到所述第一准备消息对应的第二准备消息;所述N为所述区块链网络中的节点总数量,且所述N为等于(3f+1)的正整数;所述f为所述区块链网络中的非法节点的最大数量;
在接收到所述(N-1)个备份节点中的2f个备份节点返回的第二准备消息时,对接收到的所有第二准备消息中的第二签名信息进行聚合签名,得到用于广播至所述(N-1)个备份节点的聚合消息,以使所述(N-1)个备份节点在成功验证所述聚合消息时,基于所述聚合消息和所述第一准备消息生成提交消息;
统计获取到的所述提交消息的消息数量,当所述消息数量达到(2f+1)个时,执行所述交易请求消息对应的请求操作,且将执行请求操作后的响应消息返回至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述基于接收到的客户端的交易请求消息,生成用于广播至所述区块链网络中的(N-1)个备份节点的第一准备消息,包括:
在接收到客户端发送的业务请求时,获取所述业务请求中携带的交易请求消息以及客户端签名信息;所述客户端签名信息是通过所述客户端对应的用户私钥对客户端待签名消息进行签名处理后所得到的;所述客户端待签名消息是基于所述交易请求消息的请求消息类型、请求操作、请求时间戳以及所述客户端的客户端标识所确定的;
获取所述用户私钥对应的用户公钥,基于所述用户公钥对所述客户端签名信息进行验签,得到请求验签结果;
在所述请求验签结果指示所述业务请求为合法请求时,将所述交易请求消息添加至交易缓冲池,从所述交易缓冲池中获取与所述交易请求消息相关联的待处理交易消息,对所述待处理交易消息进行交易打包处理,得到用于广播至所述区块链网络中的(N-1)个备份节点的待验证区块,将所述待验证区块的区块哈希值作为所述待验证区块的区块摘要;
获取所述第一节点在所述区块链网络对应的视图中的视图号,且获取为所述待验证区块分配的序列号;
基于所述视图号、所述序列号、所述区块摘要以及所述待验证区块,生成用于广播至所述(N-1)个备份节点的第一准备消息。
3.根据权利要求2所述的方法,其特征在于,所述基于所述视图号、所述序列号、所述区块摘要以及所述待验证区块,生成用于广播至所述(N-1)个备份节点的第一准备消息,包括:
获取待生成的第一准备消息的第一消息类型,将所述第一消息类型、所述视图号、所述序列号以及所述区块摘要进行拼接处理,得到第一拼接信息;
获取针对所述第一拼接信息的摘要确定规则,基于所述第一拼接信息的摘要确定规则确定所述第一拼接信息的哈希值,将所述第一拼接信息的哈希值作为所述第一拼接信息对应的摘要信息,且将所述第一拼接信息对应的摘要信息确定为第一待签名消息;
基于所述第一节点的第一私钥,对所述第一待签名消息进行签名处理,得到所述第一待签名消息的第一签名信息;
基于所述第一签名信息以及所述待验证区块,生成用于广播至所述(N-1)个备份节点的第一准备消息。
4.根据权利要求2所述的方法,其特征在于,所述(N-1)个备份节点包括第二节点;所述第二节点为所述(N-1)个备份节点中除f个所述非法节点之外的节点;所述第二节点的数量为M个;且所述M等于((N-1)-f);所述M个第二节点包括目标备份节点;所述目标备份节点返回的第二准备消息中包括所述目标备份节点的第二签名信息和所述目标备份节点的节点标识;所述第二签名信息是所述目标备份节点基于目标备份节点的第二私钥,对第二待签名消息进行签名处理后所得到的;所述第二待签名消息是由所述目标备份节点返回的第二准备消息的第二消息类型、所述视图号、所述序列号以及所述区块摘要所得到的;
所述方法还包括:
将接收到的所述目标备份节点返回的第二准备消息作为目标准备消息,在获取到所述目标备份节点的第二公钥时,基于所述第二公钥对所述第二签名信息进行验签,得到准备验签结果;
在所述准备验签结果为验签成功结果时,对所述第二待签名消息中的所述视图号、所述序列号以及所述区块摘要进行合法性校验,得到校验结果;
在所述校验结果指示校验成功时,将所述目标准备消息写入与所述第一节点相关联的日志数据库。
5.根据权利要求4所述的方法,其特征在于,所述第二签名信息包括第一签名参数和第二签名参数;所述第一签名参数是基于所述目标备份节点生成的随机数和与聚合签名规则相关联的定点参数所确定的;所述第二签名参数是基于所述随机数、所述第二私钥以及验证哈希值所确定的;所述验证哈希值是所述目标备份节点基于所述第二待签名消息和所述聚合签名规则所得到的;
所述将接收到的所述目标备份节点返回的第二准备消息作为目标准备消息,在获取到所述目标备份节点的第二公钥时,基于所述第二公钥对所述第二签名信息进行验签,得到准备验签结果,包括:
将接收到的所述目标备份节点返回的第二准备消息作为目标准备消息,从所述目标准备消息中获取所述第二签名参数,基于所述第二签名参数以及所述定点参数,得到用于对所述第二准备消息进行验证的第一验证参数;
基于所述聚合签名规则获取所述第二待签名消息对应的消息哈希值,在获取到所述目标备份节点的第二公钥时,基于所述第二公钥、所述第一签名参数以及所述消息哈希值,得到用于对所述第二准备消息进行验证的第二验证参数;
在所述第一验证参数与所述第二验证参数一致时,得到所述第二签名信息对应的验签成功结果,基于所述验签成功结果确定针对所述第二签名信息的准备验签结果。
6.根据权利要求1所述的方法,其特征在于,一个第二准备消息中包括一个备份节点的第二签名信息和一个备份节点的节点标识;
所述在接收到所述(N-1)个备份节点中的2f个备份节点返回的第二准备消息时,对接收到的所有第二准备消息中的第二签名信息进行聚合签名,得到用于广播至所述(N-1)个备份节点的聚合消息,包括:
在接收到所述(N-1)个备份节点中的2f个备份节点返回的第二准备消息时,从2f个第二准备消息中分别获取每个第二签名信息中的第一签名参数,所述每个第二签名信息中的第二签名参数以及所述每个第二准备消息中的节点标识;
对获取到的2f个第一签名参数进行合并处理,将合并处理后的签名参数作为第一聚合签名参数,且对获取到的2f个第二签名参数进行合并处理,将合并处理后的签名参数作为第二聚合签名参数;
基于所述第一聚合签名参数和所述第二聚合签名参数,得到聚合签名信息,且基于获取到的2f个节点标识,生成节点标识列表;
基于所述聚合签名信息和所述节点标识列表,得到用于广播至所述(N-1)个备份节点的聚合消息。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述消息数量达到(2f+1)个时,对统计到的所有提交消息中的第三签名信息进行聚合签名,得到用于广播至所述(N-1)个备份节点的提交证书,以使所述(N-1)个备份节点在成功验证所述提交证书时,执行所述交易请求消息对应的请求操作,且将执行请求操作后的响应消息返回至所述客户端。
8.一种数据处理方法,其特征在于,所述方法由区块链网络中的目标备份节点执行,包括:
获取...
【专利技术属性】
技术研发人员:李茂材,王宗友,时一防,廖志勇,刘攀,蓝虎,周开班,孔利,朱耿良,刘区城,张劲松,黄焕坤,崔嘉辉,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。