共识算法装配方法及装置与流程

    专利2022-07-08  80


    本发明涉及区块链技术领域,尤其涉及一种共识算法装配方法及装置。



    背景技术:

    在区块链中,由于其去中心化的设计,节点是各处分散且平行的,所以必须设计一套制度,来维护系统的运作顺序与公平性,从而统一区块链的版本,并奖励提供资源维护区块链的使用者,以及惩罚恶意的危害者。这样的制度,必须依赖某种方式来证明,是由谁取得了一个区块链的打包权(或称记帐权),并且可以获取打包这一个区块的奖励;又或者是谁意图进行危害,就会获得一定的惩罚,这就是共识机制。在区块链网络中,由于应用场景的不同,往往需要采用不同的共识算法。

    然而,现有区块链的共识处理方法,针对多个不同的共识算法,需要设置多个对应的共识接口,导致接口过多。每类共识算法使用一套不同的接口,如果支持多种共识算法,则系统内接口定义数量是所有共识算法接口数的总和,维护不便,以致于区块链系统复杂度高。由于各类共识算法使用各自的接口,每类共识算法还要有配套的共识调度流程对应,进一步导致系统的代码量和复杂度上升。



    技术实现要素:

    针对现有技术存在的问题,本发明提供一种共识算法装配方法及装置。

    本发明提供一种共识算法装配方法,包括:若检测到装配任务,则根据装配任务的预配置信息,从区块链系统库获取区块链系统模块,并根据所述预配置信息,从共识算法库中获取相应的共识算法模块;对所述区块链系统模块和所述共识算法模块进行模块验证;若模块验证通过,则将所述共识算法模块与所述区块链系统模块进行组装,打包生成部署文件;其中,所述共识算法库中保存并管理多种共识算法模块;区块链系统库中保存并管理多种区块链系统模块。

    根据本发明一个的共识算法装配方法,所述对所述区块链系统模块和所述共识算法模块进行模块验证,包括:对区块链系统模块和共识算法模块,分别进行完整性校验和/或模块版本校验。

    根据本发明一个的共识算法装配方法,所述根据装配任务的预配置信息,从区块链系统库获取区块链系统模块之前,还包括:接收管理员选定的区块链系统和版本,与区块链系统兼容的共识算法和版本,以及设定的区块链系统和共识算法参数,并生成所述预配置信息。

    根据本发明一个的共识算法装配方法,所述生成所述预配置信息之后,还包括:根据预存储的,应用场景、共识算法与区块链系统之间的依赖关系和冲突关系,对所述预配置信息进行校验;若校验不通过,则根据输入的应用场景和所述预配置信息中的区块链系统,将适用于所述应用场景,以及和区块链系统满足依赖关系和避免冲突关系的共识算法模块版本和对应的参数,通过人机界面进行推荐展示。

    根据本发明一个的共识算法装配方法,所述预配置信息,包括:区块链系统标识、区块链系统版本、共识算法标识、共识算法版本和共识算法参数。

    根据本发明一个的共识算法装配方法,所述打包生成部署文件之后,还包括:对所述部署文件进行模块接口适配性验证,若验证通过,则将部署文件发布。

    根据本发明一个的共识算法装配方法,所述对所述部署文件进行模块接口适配性验证,包括:验证两个模块间接口的声明和引用数据类型的一致性,或使用自动化测试服务模拟测试部署文件的运行正确性。

    本发明还提供一种共识算法装配装置,包括:获取模块,用于若检测到装配任务,则根据装配任务的预配置信息,从区块链系统库获取区块链系统模块,并根据预配置信息,从共识算法库中获取相应的共识算法模块;验证模块,用于对所述区块链系统模块和所述共识算法模块进行模块验证;装配模块,用于若模块验证通过,则将所述共识算法模块与所述区块链系统模块进行组装,打包生成部署文件;其中,所述共识算法库中保存并管理多种共识算法模块;区块链系统库中保存并管理多种区块链系统模块。

    本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述共识算法装配方法的步骤。

    本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述共识算法装配方法的步骤。

    本发明提供的共识算法装配方法及装置,采用模块化可装配的思想,将区块链的共识算法作为独立共识算法模块进行维护,在系统发布时,根据预配置信息定制化去考虑系统模块的需求,将所需共识算法模块组装打包,形成可部署和运行的文件集。无需所有共识算法均集成在部署文件内,从而有效减小了部署文件的容量,同时避免区块链系统在多个共识算法之间切换,提高区块链系统的运行效率。

    附图说明

    为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1是本发明提供的共识算法装配方法的流程示意图之一;

    图2是本发明提供的共识算法装配方法的流程示意图之二;

    图3是本发明提供的共识算法装配装置的结构示意图;

    图4是本发明提供的电子设备的结构示意图。

    具体实施方式

    为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

    下面结合图1-图4描述本发明的共识算法装配方法及装置。图1是本发明提供的共识算法装配方法的流程示意图之一,如图1所示,本发明提供一种共识算法装配方法,包括:

    101、若检测到装配任务,则根据装配任务的预配置信息,从区块链系统库获取区块链系统模块,并根据所述预配置信息,从共识算法库中获取相应的共识算法模块。

    区块链系统模块是区块链运行的各类库文件集合,包括网络合约、账本存储等,但不包括共识算法对应的模块。相应地,共识算法模块为提供共识算法的模块。共识算法库中保存并管理多种共识算法模块,区块链系统库中保存并管理多种区块链系统模块。

    在提供共识算法装配服务时,可设置一装配模块实现模块的组装。每次有装配任务时,管理员下发装配任务的预配置信息。预配置信息中有共识算法模块和区块链系统模块匹配关系。

    管理员在装配模块上维护所有版本的共识算法模块和区块链系统模块。在装配服务上定制区块链系统的共识算法模块的装配设置,并通过预配置信息的形式进行下发。执行装配任务时,装配模块根据预配置信息,分别从共识算法库和区块链系统库获取相应的模块。其中,共识模块接口采用标准化定义,适配不同类型的共识算法。

    102、对所述区块链系统模块和所述共识算法模块进行模块验证。

    获取两类模块后,需分别进行模块验证,如验证模块的完整性。

    共识算法库,对各共识算法模块进行存储和管理,存储有各共识算法模块的属性信息,包括共识算法版本、共识算法参数、共识算法模块摘要信息和共识算法模块提交信息等。

    区块链系统库,对区块链系统模块进行存储和管理,存储有区块链系统模块的属性信息,包括区块链系统模块版本、区块链系统模块参数、区块链系统模块摘要信息和区块链系统模块提交信息等。

    在一个实施例中,对所述区块链系统模块和所述共识算法模块进行模块验证,包括根据区块链系统模块和共识算法模块的属性信息进行验证。

    103、若模块验证通过,则将所述共识算法模块与所述区块链系统模块进行组装,打包生成部署文件。

    通过模块校验后,装配服务将共识算法模块与区块链系统模块进行组装,打包生成最终的部署文件,提交到网络的各节点中进行应用。组装方式可以是基于模块构建工具(如:ant、maven、gradle等)对整体系统按多模块项目的编译打包处理。

    本发明提供的共识算法装配方法,采用模块化可装配的思想,将区块链的共识算法作为独立共识算法模块进行维护,在系统发布时,根据预配置信息定制化去考虑系统模块的需求,将所需共识算法模块组装打包,形成可部署和运行的文件集。无需所有共识算法均集成在部署文件内,从而有效减小了部署文件的容量,同时避免区块链系统在多个共识算法之间切换,提高区块链系统的运行效率。

    在一个实施例中,对所述区块链系统模块和所述共识算法模块进行模块验证,包括:对区块链系统模块和共识算法模块,分别进行完整性校验和/或模块版本校验。

    完整性校验,即验证传输后的模块是否损坏或缺失;模块版本校验,为了避免如版本更新等情况,导致获取了错误版本的模块。可根据上述102中提到的属性信息进行相关验证。相应地,若整性校验校验失败或模块版本校验失败,则再次获取相应的模块。

    在一个实施例中,所述根据装配任务的预配置信息,从区块链系统库获取区块链系统模块之前,还包括:接收管理员选定的区块链系统和版本,与区块链系统兼容的共识算法和版本,以及设定的区块链系统和共识算法参数,生成所述预配置信息。

    也就是说,管理员可在装配服务上定制各区块链系统的共识算法模块的装配设置,形成预配置信息,然后发送到共识算法装配服务中。装配模块检测到装配任务后,先读取预配置信息,根据预配置信息进行上述101的操作。配置的任务包括但不限于:选定区块链系统和相应版本,根据兼容性选择共识算法及相应版本,设定相关区块链系统和共识算法参数。

    在一个实施例中,生成所述预配置信息之后,还包括:根据预存储的,应用场景、共识算法与区块链系统之间的依赖关系和冲突关系,对所述预配置信息进行校验;若校验不通过,则根据输入的应用场景和所述预配置信息中的区块链系统,将适用于所述应用场景,以及和区块链系统满足依赖关系和避免冲突关系的共识算法模块版本和对应的参数,通过人机界面进行推荐展示。

    装配模块会自动对装配任务的依赖性进行校验并提示可能存在的冲突情况,若验证不通过,则进行提示,可将将满足依赖关系和冲突关系的共识算法模块通过人机界面进行推荐展示。基于预设的适用场景,装配模块根据用户选择的区块链系统和目标场景提供共识算法的推荐功能,屏蔽掉不兼容该应用场景和区块链系统标识版本的共识算法,并从兼容的共识算法中建议采用更适合场景的共识算法标识版本以及参数。该方法可有效避免管理员的错误配置导致的共识算法不可用的情况。

    在一个实施例中,预配置信息,包括:区块链系统标识、区块链系统版本、共识算法标识、共识算法版本和共识算法参数。

    其中,区块链系统标识是区块链系统的唯一标识,用于识别不同类型的区块链,不同标识的区块链系统代表了一个独特的特征集合,特征包括:适用应用领域、节点规模、共识算法特性、智能合约特性、账本规模、是否多链、是否跨链等。

    区块链系统版本是针对某一区块链系统标识的不同版本的编号,用于识别同一特征集合下,区块链系统的版本信息。出于系统升级、功能完善等考虑,会针对某一标识的区块链系统进行版本变更。

    共识算法标识,是共识算法的唯一标识,代表了共识算法的一个独特的特征集合,特征包括但不限于:是否拜占庭容错、最少节点数要求、可支持最大吞吐量、成员是否可动态管理、与特定区块链系统是否兼容、适用场景列表等。

    共识算法版本,是针对某一共识算法标识的不同版本的编号,用于识别同一特征集合下,共识算法的版本信息。出于算法升级、功能完善等考虑,会针对某一标识的共识算法进行版本变更。

    共识算法参数,包括但不限于:出块间隔、区块大小等。

    可以根据区块链系统标识、区块链系统版本,查找对应的区块链系统模块。根据共识算法标识、共识算法版本查找对应的共识算法模块,根据共识算法参数对共识算法模块的参数进行设置,然后再进行打包。

    在一个实施例中,打包生成部署文件之后,还包括:对所述部署文件进行模块接口适配性验证,若验证通过,则将部署文件发布。

    在一个实施例中,对所述部署文件进行模块接口适配性验证,包括:验证两个模块间接口的声明和引用数据类型的一致性,或使用自动化测试服务模拟测试部署文件的运行正确性。

    每个模块有对应的数据接口,打包生成部署文件后,用语义检查对其中区块链系统和共识算法接口的一致性进行验证,同时验证二者之间相互引用数据是否一致,若满足则验证通过。还可将打包得到的部署文件,通过自动化测试服务进行模拟运行,运行后查看运行结果是否异常,若无异常则验证通过。

    图2是本发明提供的共识算法装配方法的流程示意图之二,具体可参考上述实施例和图2,此处不再赘述。

    下面对本发明提供的共识算法装配装置进行描述,下文描述的共识算法装配装置与上文描述的共识算法装配方法可相互对应参照。

    图3是本发明提供的共识算法装配装置的结构示意图,如图3所示,该共识算法装配装置包括:获取模块301、验证模块302和装配模块303。其中,获取模块301用于若检测到装配任务,则根据装配任务的预配置信息,从区块链系统库获取区块链系统模块,并根据预配置信息,从共识算法库中获取相应的共识算法模块;验证模块302用于对所述区块链系统模块和所述共识算法模块进行模块验证;装配模块303用于若模块验证通过,则将所述共识算法模块与所述区块链系统模块进行组装,打包生成部署文件;其中,所述共识算法库中保存并管理多种共识算法模块;区块链系统库中保存并管理多种区块链系统模块。

    本发明提供的装置实施例是为了实现上述各方法实施例的,具体流程和详细内容请参照上述方法实施例,此处不再赘述。

    本发明提供的共识算法装配装置,采用模块化可装配的思想,将区块链的共识算法作为独立共识算法模块进行维护,在系统发布时,根据预配置信息定制化去考虑系统模块的需求,将所需共识算法模块组装打包,形成可部署和运行的文件集。无需所有共识算法均集成在部署文件内,从而有效减小了部署文件的容量,同时避免区块链系统在多个共识算法之间切换,提高区块链系统的运行效率。

    图4是本发明提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(processor)401、通信接口(communicationsinterface)402、存储器(memory)403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。处理器401可以调用存储器403中的逻辑指令,以执行共识算法装配方法,该方法包括:若检测到装配任务,则根据装配任务的预配置信息,从区块链系统库获取区块链系统模块,并根据所述预配置信息,从共识算法库中获取相应的共识算法模块;对所述区块链系统模块和所述共识算法模块进行模块验证;若模块验证通过,则将所述共识算法模块与所述区块链系统模块进行组装,打包生成部署文件;其中,所述共识算法库中保存并管理多种共识算法模块;区块链系统库中保存并管理多种区块链系统模块。

    此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

    另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的共识算法装配方法,该方法包括:若检测到装配任务,则根据装配任务的预配置信息,从区块链系统库获取区块链系统模块,并根据所述预配置信息,从共识算法库中获取相应的共识算法模块;对所述区块链系统模块和所述共识算法模块进行模块验证;若模块验证通过,则将所述共识算法模块与所述区块链系统模块进行组装,打包生成部署文件;其中,所述共识算法库中保存并管理多种共识算法模块;区块链系统库中保存并管理多种区块链系统模块。

    又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的共识算法装配方法,该方法包括:若检测到装配任务,则根据装配任务的预配置信息,从区块链系统库获取区块链系统模块,并根据所述预配置信息,从共识算法库中获取相应的共识算法模块;对所述区块链系统模块和所述共识算法模块进行模块验证;若模块验证通过,则将所述共识算法模块与所述区块链系统模块进行组装,打包生成部署文件;其中,所述共识算法库中保存并管理多种共识算法模块;区块链系统库中保存并管理多种区块链系统模块。

    以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

    通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

    最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。


    技术特征:

    1.一种共识算法装配方法,其特征在于,包括:

    若检测到装配任务,则根据装配任务的预配置信息,从区块链系统库获取区块链系统模块,并根据所述预配置信息,从共识算法库中获取相应的共识算法模块;

    对所述区块链系统模块和所述共识算法模块进行模块验证;

    若模块验证通过,则将所述共识算法模块与所述区块链系统模块进行组装,打包生成部署文件;

    其中,所述共识算法库中保存并管理多种共识算法模块;区块链系统库中保存并管理多种区块链系统模块。

    2.根据权利要求1所述的共识算法装配方法,其特征在于,所述对所述区块链系统模块和所述共识算法模块进行模块验证,包括:

    对区块链系统模块和共识算法模块,分别进行完整性校验和/或模块版本校验。

    3.根据权利要求1所述的共识算法装配方法,其特征在于,所述根据装配任务的预配置信息,从区块链系统库获取区块链系统模块之前,还包括:

    接收管理员选定的区块链系统和版本,与区块链系统兼容的共识算法和版本,以及设定的区块链系统和共识算法参数,并生成所述预配置信息。

    4.根据权利要求1所述的共识算法装配方法,其特征在于,所述生成所述预配置信息之后,还包括:

    根据预存储的,应用场景、共识算法与区块链系统之间的依赖关系和冲突关系,对所述预配置信息进行校验;

    若校验不通过,则根据输入的应用场景和所述预配置信息中的区块链系统,将适用于所述应用场景,以及和区块链系统满足依赖关系和避免冲突关系的共识算法模块版本和对应的参数,通过人机界面进行推荐展示。

    5.根据权利要求3所述的共识算法装配方法,其特征在于,所述预配置信息,包括:

    区块链系统标识、区块链系统版本、共识算法标识、共识算法版本和共识算法参数。

    6.根据权利要求1所述的共识算法装配方法,其特征在于,所述打包生成部署文件之后,还包括:

    对所述部署文件进行模块接口适配性验证,若验证通过,则将部署文件发布。

    7.根据权利要求6所述的共识算法装配方法,其特征在于,所述对所述部署文件进行模块接口适配性验证,包括:

    验证两个模块间接口的声明和引用数据类型的一致性,或使用自动化测试服务模拟测试部署文件的运行正确性。

    8.一种共识算法装配装置,其特征在于,包括:

    获取模块,用于若检测到装配任务,则根据装配任务的预配置信息,从区块链系统库获取区块链系统模块,并根据预配置信息,从共识算法库中获取相应的共识算法模块;

    验证模块,用于对所述区块链系统模块和所述共识算法模块进行模块验证;

    装配模块,用于若模块验证通过,则将所述共识算法模块与所述区块链系统模块进行组装,打包生成部署文件;

    其中,所述共识算法库中保存并管理多种共识算法模块;区块链系统库中保存并管理多种区块链系统模块。

    9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述共识算法装配方法的步骤。

    10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述共识算法装配方法的步骤。

    技术总结
    本发明提供一种共识算法装配方法及装置,该方法包括:若检测到装配任务,则根据装配任务的预配置信息,从区块链系统库获取区块链系统模块,并根据预配置信息,从共识算法库中获取相应的共识算法模块;对区块链系统模块和共识算法模块进行模块验证;若模块验证通过,则将共识算法模块与区块链系统模块进行组装,打包生成部署文件。该方法采用模块化可装配的思想,将区块链的共识算法作为独立共识算法模块进行维护,在系统发布时,根据预配置信息定制化去考虑系统模块的需求,将所需共识算法模块组装打包,形成可部署和运行的文件集。无需所有共识算法均集成在部署文件内,从而有效减小了部署文件的容量,避免区块链系统在多个共识算法之间切换。

    技术研发人员:郭京京
    受保护的技术使用者:北京微芯区块链与边缘计算研究院
    技术研发日:2020.12.01
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23340.html

    最新回复(0)