一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种支持计算验证并行化处理的共识方法及系统

2022-04-09 05:13:46 来源:中国专利 TAG:


1.本发明涉及计算机区块链技术领域和分布式计算领域,尤其是涉及一种支持计算验证并行化处理的共识方法及系统。


背景技术:

2.目前,传统共识算法分为cft共识算法和bft共识算法,cft共识算法未考虑存在恶意节点的情况,而bft共识算法往往基于全局节点的高延迟共识,所以如何在提升共识算法效率的基础上赋予可验证的特性成为研究热点,而基于区块链平台的共识优化因其防篡改等特性脱颖而出。区块链本质上是一种在对等网络环境下,通过可信规则等技术由多方节点共同维护的分布式账本,具有去中心化、不可篡改、可溯源等优点,因此目前广泛应用在多种应用场景中。但由于区块链中存在吞吐量低,共识延迟高,热更新事务成功率等问题,导致其在现实场景中的应用受到限制,因此迫切的需求一种可以支持计算验证并行化处理的共识方法,为数据使用者以及数据提供商提出更加便捷可靠的分布式共识方案是本领域技术人员亟需解决的问题。
3.因此,如何实现高吞吐低延迟的支持计算验证并行化处理的共识算法;。


技术实现要素:

4.为解决现有技术的不足,实现区块链共识的高吞吐低延迟的支持计算验证并行化处理的目的,本发明采用如下的技术方案:一种支持计算验证并行化处理的共识方法,包括如下步骤:s1,事务执行阶段,包括如下步骤:s11,客户端根据需求生成区块链事务提案,并发送到区块链背书节点;s12,区块链背书节点基于节点状态,对区块链事务提案进行模拟背书;s13,区块链背书节点根据模拟背书结果,对节点的本地状态进行更新;s14,区块链背书节点对模拟背书结果进行签名;s2,共识生成阶段,包括如下步骤:s21,区块链排序节点收到由区块链背书节点提交的某一账本的区块链事务提案结果及其签名后,将模拟背书结果和签名与背书策略进行验证;s22,区块链排序节点将通过验证的模拟背书结果,按其所属区块链背书节点逐一生成一个事务树;s23,区块链排序节点将各区块链背书节点对应的事务树进行合并,并取最长公共路径上的事务进行打包、签名、生成事务区块并上链,对不属于该路径上的事务进行剪枝丢弃;s24,区块链排序节点将事务区块广播至区块链系统中记账节点;s3,结果提交阶段,包括如下步骤:s31,区块链记账节点收到事务区块及其签名后,对事务区块与签名进行验证;
s32,区块链记账节点将通过验证的事务区块进行拆分,并对其中每个事务的模拟背书结果进行验证,根据验证通过的模拟背书结果,对节点本地状态和全局状态进行维护;s33,区块链记账节点根据通过验证的模拟背书结果,将事务区块上链,并修改区块链系统的全局状态,保证该节点的全局状态是本地状态的子树,保证已上链数据的一致性。本方法可扩展应用于分布式计算系统中生成共识。
5.进一步地,s12中的区块链背书节点,基于该节点的本地状态,对区块链事务提案进行模拟背书;所述s13中的区块链背书节点,根据模拟背书结果,对该节点的本地状态进行更新;区块链背书节点的本地状态有别于常见区块链系统中的全局状态,该节点本地状态仅由本节点维护并实时更新,相较于该节点的全局状态更具有时效性;所述s32中的区块链记账节点,将通过验证的事务区块进行拆分,并对其中每个事务的模拟背书结果进行验证后,根据验证通过的模拟背书结果,对该区块链记账节点的本地状态进行维护,保证区块链系统记账节点各自的本地状态的周期性一致。
6.进一步地,s12中的模拟背书是并行模拟背书,所述s13中对节点的状态进行更新是并行更新,并行化模拟背书区别于原区块链平台背书过程,并行化模拟背书基于各区块链背书节点的本地状态,而非原区块链平台的全局状态,基于本地状态的并行模拟背书与并行更新符合乐观共识的特征,同时减少了并行化计算过程中读写锁的规模与数量,仅存在极少量基于键值的读写锁,使并行化计算更具时效性,更符合实际业务场景中存在部分状态热更新的需求;结合s22和s23中通过对每个背书节点构建事务树并计算不同背书节点事务树的最长公共路径的方法生成共识,实现高吞吐低延迟的支持计算验证并行化处理的共识方法。
7.进一步地,s14中各背书节点将签名后的模拟背书结果,根据区块链事务提案所属类型,直接提交至事务所属账本对应的区块链排序节点,该提交流程区别于原区块链系统背书过程,背书节点无需将背书结果返回给客户端然后再提交至排序节点,而是有背书节点直接将背书结果提交至排序节点,降低了通讯代价;提交流程中背书节点将背书结果提交至事务所属账本对应的排序节点,将为排序节点进行共识节约通信代价,降低共识延迟。
8.进一步地,s32中对节点状态进行的维护,包括回滚与更新。
9.一种支持计算验证并行化处理的共识系统,包括:客户端、区块链背书节点、区块链排序节点及区块链记账节点,客户端包括请求构造模块、结果获取模块,区块链背书节点包括模拟背书模块、请求提交模块,区块链排序节点包括事务验证模块、共识生成模块、结果广播模块,区块链记账节点包括共识结果验证模块、状态维护模块;所述请求构造模块,由用户根据自身需求、所需计算源码与数据构建区块链事务请求,并发送到区块链背书节点;所述结果获取模块,获取区块链记账节点发送的事务上链共识结果;所述模拟背书模块,基于区块链节点状态对客户端发送的区块链事务请求进行模拟背书;所述请求提交模块,对模拟背书结果签名并提交;直接将模拟背书结果发送至其所属账本对应的区块链排序节点。
10.所述事务验证模块,对各区块链背书节点发送的模拟背书结果进行签名验证,使模拟背书结果符合客户端的背书策略;
所述共识生成模块,基于账本类型对通过验证的每个区块链背书节点生成事务树,计算事务树的最长公共路径生成共识,并对公共路径上的事务进行打包、签名、生成事务区块并上链,对不属于该路径上的事务进行剪枝丢弃;所述结果广播模块,将链上的最新事务区块广播至区块链记账节点。
11.所述共识结果验证模块:对排序节点发来的共识事务区块进行合法性验证,对通过验证的区块提交至状态维护模块;所述状态维护模块,区块链记账节点将通过合法性验证的事务区块中的事务,逐一进行摸你背书结果的验证,并将事务区块上链,维护区块链系统的全局状态。
12.进一步地,模拟背书模块在每个区块链背书节点添加并维护本地状态,基于区块链背书节点本地状态对客户端发送的区块链事务请求进行模拟背书,区块链背书节点的本地状态有别于常见区块链系统中的全局状态,该节点本地状态仅由本节点维护并实时更新,相较于该节点的全局状态更具有时效性;所述状态维护模块,根据验证通过的模拟背书结果,对区块链记账节点本地状态进行维护,保证区块链系统记账节点各自的本地状态的周期性一致。
13.进一步地,模拟背书模块对区块链事务请求进行并行模拟背书,并对区块链背书节点的状态进行并行更新,并行化模拟背书区别于原区块链平台背书过程,并行化模拟背书基于各区块链背书节点的本地状态,而非原区块链平台的全局状态,基于本地状态的并行模拟背书与并行更新符合乐观共识的特征,同时减少了并行化计算过程中读写锁的规模与数量,仅存在极少量基于键值的读写锁,使并行化计算更具时效性,更符合实际业务场景中存在部分状态热更新的需求;结合s22和s23中通过对每个背书节点构建事务树并计算不同背书节点事务树的最长公共路径的方法生成共识,实现高吞吐低延迟的支持计算验证并行化处理的共识方法。
14.进一步地,请求提交模块对模拟背书结果签名,并直接将模拟背书结果发送至其所属账本对应的区块链排序节点,该提交流程区别于原区块链系统背书过程,背书节点无需将背书结果返回给客户端然后再提交至排序节点,而是有背书节点直接将背书结果提交至排序节点,降低了通讯代价;提交流程中背书节点将背书结果提交至事务所属账本对应的排序节点,将为排序节点进行共识节约通信代价,降低共识延迟。
15.进一步地,结果获取模块维护一对公钥与私钥,区块链记账节点集群通过公钥对事务上链共识结果加密发送到客户端后,结果获取模块通过私钥对事务上链共识结果进行解密。
16.本发明的优势和有益效果在于:本发明基于hyperledger fabric区块链平台的分布式框架,构建了一种支持计算验证并行化处理的共识机制,实现可验证的并行化计算、验证与共识,为分布式系统提供高吞吐、低延迟、并行化计算验证的共识方案,帮助数据提供方使用区块链平台进行高效的数据计算验证,帮助数据使用者解决对部分数据热更新导致上链失败率高的问题。其中使用的hyperledger fabric能够为本发明提供不可篡改、可溯源等特性,而支持计算验证并行化处理的共识方法,为数据使用者提供解决企业级场景需求的方案,为数据使用者以及数据提供方提出更加安全高效的数据计算验证处理方案。
附图说明
17.图1是本发明的流程图。
18.图2是本发明中事务执行阶段流程图。
19.图3是本发明中共识生成阶段流程图。
20.图4是本发明中结果提交阶段流程图。
具体实施方式
21.以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
22.一种支持计算验证并行化处理的共识系统,包含客户端、区块链背书节点、区块链排序节点以及区块链记账节点四种实体。
23.(1)客户端,可以通过对普通区块链客户端进行扩展而实现,客户端除普通区块链客户端功能外还包括:请求构造模块,由用户根据自身需求、所需计算源码与数据构建事务请求,并将事务请求发送到区块链背书节点。
24.结果获取模块,客户端用户需要维护自己的公钥与私钥用于对事务上链共识结果进行加解密。同时,当区块链记账节点集群将加密的事务上链共识结果发送到客户端后,需要利用私钥对事务上链共识结果进行解密。
25.(2)区块链背书节点,可以通过对现有区块链平台进行扩展以及修改实现,部署扩展的区块链可以是以太坊、hyperledger fabric等其他区块链平台,此实体包括:模拟背书模块,此模块可基于现有区块链平台的基础功能实现,但需对其中功能进行修改。在每个背书节点添加并维护本地状态,基于本地状态对客户端发送的事务进行模拟背书。
26.请求提交模块,此模块可基于现有区块链平台的基础功能实现,但需对其中功能进行修改。当背书节点模拟背书完成后,直接将模拟背书结果发送至其所属账本对应的区块链排序节点。
[0027] (3)区块链排序节点,可以通过对现有区块链平台进行扩展以及修改实现,部署扩展的区块链可以是以太坊、hyperledger fabric等其他区块链平台,此实体包括:事务验证模块,排序节点对各背书节点发送的模拟背书结果进行签名验证,保证背书结果符合客户端的背书策略。
[0028]
共识生成模块,排序节点基于账本类型对每个背书节点生成事务树,并通过计算事务树的最长公共路径生成共识,并对公共路径上的事务进行打包、签名、生成区块并上链。
[0029]
结果广播模块,排序节点将链上的最新区块广播至区块链记账节点。
[0030] (4)区块链记账节点,可以通过对现有区块链平台进行扩展以及修改实现,部署扩展的区块链可以是以太坊、hyperledger fabric等其他区块链平台,此实体包括:共识结果验证模块:记账节点对排序节点发来的共识区块进行合法性验证,对通过验证的区块提交至状态维护模块。
[0031]
状态维护模块:记账节点将通过合法性验证的区块中的事务逐一进行验证,对于
成功的事务验证并维护该节点的本地状态,并在本地状态维护后,将区块上链,并维护区块链系统的全局状态。
[0032]
系统实例间的关系以及流程控制如图1所示,分为事务执行阶段、共识生成阶段以及结果提交阶段三部分进行阐述,其中本实施例采用了hyperledger fabric作为实施的区块链平台,基于fabric流程实施。
[0033]
在初始化后,事务执行阶段流程如图2所示,涉及请求构造模块、模拟背书模块以及请求提交模块,下面结合附图与实施例对此阶段进行详细说明:(1)客户端根据需求生成区块链事务提案并发送到区块链系统背书节点;(2)背书节点基于该节点的本地状态对区块链事务提案进行并行模拟背书;(3)背书节点根据模拟背书结果对该节点的本地状态进行并行更新;(4)背书节点模拟背书结果进行签名并根据事务提案所属类型直接提交至对应的区块链系统排序节点;在区块链背书节点向排序节点集群发送数据包后,共识生成阶段流程如图3所示,涉及事务验证模块、共识生成模块以及结果广播模块,下面结合附图与实施例对此阶段进行详细说明:(1)排序节点收到由背书节点提交的某一账本的事务提案结果及其签名后,对结果、签名与背书策略进行验证;(2)排序节点将通过验证的模拟背书结果按照其所属背书节点逐一生成一个事务树;(3)排序节点将各背书节点对应的事务树进行合并,并取最长公共路径上的事务进行打包、签名、生成事务区块并上链。对不属于该路径上的事务进行剪枝丢弃;(4)排序节点将事务区块广播至区块链系统中记账节点。
[0034]
在排序节点集群将结果发送到区块链记账节点后,结果提交阶段流程如图4所示,涉及共识结果验证模块、状态维护模块,下面结合附图与实施例对此阶段进行详细说明:(1)记账节点收到事务区块及其签名后,对事务区块与签名进行验证;(2)记账节点将通过验证的事务区块进行拆分,并对其中每个事务的背书结果进行验证,根据验证通过的背书结果对该记账节点的本地状态进行维护、回滚与更新,保证区块链系统记账节点各自的本地状态的周期性一致;(3)记账节点根据通过验证的背书结果进行上链,并修改区块链系统的全局状态,保证该节点的全局状态是本地状态的子树,保证已上链数据的一致性。
[0035]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献