区块链自动组链方法、装置及计算机可读存储介质
技术领域
本发明涉及区块链领域,具体而言,本发明涉及一种区块链自动组链方法与相应装置,以及计算机可读存储介质。
背景技术
在传统的区块链中,每一条公链、联盟链、私有链的哈希值都是连续的,链与链之间、下级链与上级连之间哈希值也是连续的。
由于传统的链式结构,在多链条的区块链环境中,往往业务场景不相关的区块会链在一起,这将导致特定区块及其相关区块的检索效率很低,区块高度作用下降;同时,需要系统提供额外的资源去屏蔽无关的用户信息。
从传统区块链的链结构可以知道,如图1,以“佛山城市链”为例,链条里面的业务信息区块是通过时间顺序进行排序的,其中社保业务信息区块最早上链,所以排行第一;教育局业务信息区块链最后上链,所以排行最后,并且都臃肿地排在了一条链之上。
如此可见,其并没有清晰可见的业务关系,包括局办、家庭和个人在内的业务信息区块是杂乱无章的。一旦数据量大、需要进行业务信息查询的时候,将会花费大量时间进行检索,并且这种结构难以提供灵活、快速的业务统计能力,很难支撑各种业务场景的发展和应用开发。
发明内容
本发明的目的旨在提供一种区块链自动组链方法,通过该方法可以使得数据区块与业务清晰、有条理地结合。
为了实现上述目的,本发明提供以下技术方案:
本发明实施例提供一种区块链自动组链方法,包括:
根据预设的第N级业务匹配关系确定至少两个不同的第N级业务信息区块;其中,N为大于或等于1的整数;
依序将满足预设的第N+1级业务匹配关系的每一新增业务信息区块与所述至少两个第N级业务信息区块之一匹配,以使所述新增业务信息区块形成为第N+1级业务信息区块;
根据新增顺序,将满足同一第N+1级业务匹配关系的多个第N+1级业务信息区块串联以形成同业务链。
进一步地,还包括:若新增业务信息区块不满足所有已预设的第N+1级业务匹配关系,则将该新增业务信息区块归为新的第N级业务信息区块。
进一步地,在根据预设的第N级业务匹配关系确定至少两个不同的第N级业务信息区块的步骤之后,还包括:将多个所述第N级业务信息区块串联以形成同业务链。
优选地,同业务链中,任意两个相邻的业务信息区块的哈希值连续。
优选地,所有业务信息区块的高度按照上链时间顺序叠加。
可选地,各业务匹配关系的确定因素包括但不限于:地域信息,业务类型,身份信息。
优选地,第N级业务信息区块和与其相应的第N+1级业务信息区块的业务匹配关系唯一。
进一步地,在将不满足所有已预设的第N+1级业务匹配关系的新增业务信息区块归为新的第N级业务信息区块的步骤之后,还包括:增加与所述新的第N级业务信息区块对应的业务匹配关系。
本发明实施例还提供一种区块链自动组链装置,其包括:
第N级匹配单元,被配置为根据预设的第N级业务匹配关系确定至少两个不同的第N级业务信息区块;其中,N为大于或等于1的整数;
第N+1级匹配单元,被配置为依序将满足预设的第N+1级业务匹配关系的每一新增业务信息区块与所述至少两个第N级业务信息区块之一匹配,以使所述新增业务信息区块形成为第N+1级业务信息区块;
第N+1级业务链形成单元,被配置为根据新增顺序,将满足同一第N+1级业务匹配关系的多个第N+1级业务信息区块串联以形成同业务链。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序执行时实现上述任一项所述的区块链自动组链方法的步骤。
相比现有技术,本发明的方案具有以下优点:
本发明的区块链自动组链方法,通过预设的业务匹配关系,使得不同的业务区块信息得以归类并各自形成业务链,通过这种业务链的灵活扩展和组合,可以有效支持各大行业的业务信息储存,且使得区块与业务清晰、有条理地结合。
本发明的区块链自动组链装置,其对应有与所述区块链自动组链方法相同的有益效果,在此不做赘述。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为现有技术中一种实施例的区块链组链方法的示意图;
图2为本发明实施例的区块链自动组链方法的流程示意图;
图3为本发明的区块链自动组链方法的一种实施例的示意图;
图4为本发明实施例的区块链自动组链装置的原理示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如11、12等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按照顺序执行或并行执行。需要说明的是,本文中可能出现的“第一”、“第二”或类似字眼等描述,是用于区分不同的消息、设备、模块、单元等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体方法、特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
请参考图2,本发明提供一种区块链自动组链方法,包括如下步骤:
步骤S11:根据预设的第N级业务匹配关系确定至少两个不同的第N级业务信息区块;
步骤S12:依序将满足预设的第N+1级业务匹配关系的每一新增业务信息区块与所述至少两个第N级业务信息区块之一匹配,以使所述新增业务信息区块形成为第N+1级业务信息区块。
在建立区块链之前,需要把业务信息区块化,通常一条业务信息形成一个区块。需要说明的是,这里的业务是一个概括性的词语,可以指代不同的对象,例如,广东省的人口可以划分为一个业务,对应地,广东省人口总数为一个业务信息;同理,广州市、佛山市、深圳市等各城市的人口总数也可以划分为不同的业务信息。又如,一个公司的社保信息为一个业务信息,该公司中每个员工的社保信息也可以分别归为一个个不同的业务信息。其他的业务信息可类推,在此不做赘述。通常,具体的业务信息可由建立区块链的用户确立。
通过背景技术的描述可知,在多链条的区块链环境中,当业务信息区块较多,且这些业务信息区块涉及的领域或层面纷繁复杂时,如果将所有业务信息区块按照传统区块链的组链方法进行上链,则会造成检索效率降低,产生资源浪费。因此需要将不同业务信息进行划分,并根据划分后的业务信息区块进行上链。
下面结合图3举例说明。具体地,为了方便将不同业务信息进行划分,需要对不同的业务信息区块进行归类,可根据业务信息涵盖的范围将各业务信息区块划分到不同的层级,即第N级业务信息区块、第N+1级业务信息区块,其中,N大于等于1且N为整数,具体的层级数依业务信息涵盖的范围确定。其中,不同层级之间的业务信息区块可能存在关联,因此需要对存在关联的不同层级间的业务信息区块设定业务匹配关系,即对第N级业务信息区块与第N+1级业务信息区块进行匹配,所述业务匹配关系可人为设定,也可根据业务信息由计算机自行设定。
参考图3,假设有“佛山市业务信息区块”系统(图中未示出),其包含有“社保局业务信息区块”、“教育局业务信息区块”、“交通局业务信息区块”,以及张三、李四、王五等个人的家庭社保业务信息区块、家庭教育业务信息区块、家庭交通业务信息区块等。设定业务匹配关系可从如下方面考虑:地域信息,由于除“佛山市业务信息区块”外其他业务信息区块都处于“佛山市业务信息区块”所涵盖的范围内,因此可根据地域信息将“社保局业务信息区块”、“教育局业务信息区块”、“交通局业务信息区块”划分为第1级业务信息区块;业务类型,例如在上述”社保局业务信息区块“下,包含了佛山市成千上万的家庭的社保业务信息,因此可将所有家庭的社保业务信息区块匹配到“社保局业务信息区块”,形成第2级业务信息区块,如“张三的家庭社保业务信息区块”(张三为该家庭的户主或该家庭中的一员,以下可类推)、“李四的家庭社保业务信息区块”、“王五的家庭社保业务区块”等,其他如“教育局业务信息区块”、“交通局业务信息区块”可依此类推;身份信息,在每个家庭社保业务信息区块下,还包含每个家庭成员的个人社保业务信息,因此可将每个家庭成员的个人社保业务信息区块匹配到该家庭社保业务信息区块下以形成第3级业务信息区块,例如“王五的个人社保业务信息区块1”与“王五的家庭社保业务信息区块”匹配,其他可依次类推。
当然,设定业务匹配关系不局限于从以上的地域信息、业务类型、身份信息等三个方面考虑,每一层级的业务信息区块数量也不限于图3中显示的数量,图3中带有“……”的矩形框即表示还有其他的业务信息区块,当然这些可具体根据业务信息确定,上面的实施例仅做实例说明用,而不能形成对本发明的区块链自动组链方法的限制。并且,上述实施例的匹配顺序不应当视为是固定的,例如可以根据地域信息、业务类型、身份信息的顺序依次划分第一、第二、第三级业务信息区块,因此上述实施例示出的匹配顺序也不应当形成对本发明的区块链自动组链方法的限制。例如,图3中,可以先根据地域信息确定佛山市每个家庭的业务信息区块,如此,第1级业务信息区块数与佛山市家庭总数想对应;然后,根据业务类型确定每个家庭的社保业务信息区块、教育业务信息区块、交通业务信息区块;最后,根据身份信息确定每个家庭中的家庭成员各自的个人社保业务信息区块、个人教育业务信息区块、个人交通业务信息区块等。
步骤S13:根据新增顺序,将满足同一第N+1级业务匹配关系的多个第N+1级业务信息区块串联以形成同业务链。
所述新增顺序即时间顺序。由上文描述可知,满足同一第N+1级业务匹配关系的多个第N+1级业务信息区块,都匹配在同一个第N级业务信息区块下,因此所述多个第N+1级业务信息区块具有相同或相类似的业务信息,故需要将所述多个第N+1级业务信息区块串联以形成同业务链,以便于对所述多个第N+1级业务信息区块进行统计、管理、检索等工作。例如,在图3中,由实心箭头串联的多个第2级业务信息区块构成同一业务链,如“社保业务家庭链”、“教育业务家庭链”、“教育业务家庭链”等,三者属于平行链关系,业务各不影响;由实心箭头串联的多个第3级业务信息区块构成同一业务链,如王五的“社保业务个人链”、李四的“教育业务个人链”、张三的“交通业务个人链”等。第1级业务信息区块与第2级业务信息区块之间的虚线,表示为第2级业务信息区块与第1级业务信息区块相匹配;第2级业务信息区块与第3级业务信息区块之间的虚线,表示为第3级业务信息区块与第2级业务信息区块相匹配。
同样地,对第N级业务信息区块也需要做相同处理。因此,在根据预设的第N级业务匹配关系确定至少两个不同的第N级业务信息区块的步骤之后,还包括:步骤S111,将多个所述第N级业务信息区块串联以形成同业务链。例如,在图3中,由实心箭头串联的同一个层级的多个第1级业务信息区块构成同一业务链,如“佛山城市链”。
进一步地,需要使得第N级业务信息区块和与其相应的第N+1级业务信息区块的业务匹配关系唯一,以避免匹配混乱。
在上文所述的步骤S12中,由于确定匹配关系可能存在遗漏,或者原来确定匹配关系的时候不能穷尽所有可能存在的匹配关系,会导致有若干新增业务信息区块不满足所有已预设的第N+1级业务匹配关系,因此可将新增业务信息区块归为新的第N级业务信息区块,同时,增加与所述新的第N级业务信息区块对应的业务匹配关系,如此既可以避免将新增业务信息区块匹配到不相关的业务信息区块下,也便于对后面的新增区块进行更为精确地匹配。
此外,一方面,还需要做如下设定:同业务链中,任意两个相邻的业务信息区块的哈希值连续。下面结合图3做示例说明。
在佛山城市链中,依次赋予“社保局业务信息区块”、“教育局业务信息区块”、“交通局业务信息区块”的哈希值为11、12、13(为便于理解,以简单的数字表示哈希值);
进一步地,在“社保业务家庭链”中,依次赋予“张三的家庭社保业务信息区块”、“李四的家庭社保业务信息区块”、“王五的家庭社保业务信息区块”的哈希值为111、112、113;在“教育业务家庭链”中,依次赋予“张三的家庭教育业务信息区块”、“李四的家庭教育业务信息区块”、“王五的家庭教育业务信息区块”的哈希值为121、122、123;在“交通业务家庭链”中,依次赋予“张三的家庭交通业务信息区块”、“李四的家庭交通业务信息区块”、“王五的家庭交通业务信息区块”的哈希值为131、132、133;
更进一步地,在“社保业务个人链”中,依次赋予“王五个人社保业务信息区块1”“王五个人社保业务信息区块2”的哈希值为1131、1132;在“教育业务个人链”中,依次赋予“李四小学毕业证业务信息区块”、“李四初中毕业证业务信息区块”的哈希值为1221、1222;在“交通业务个人链”中,依次赋予“张三行驶证业务信息区块”、“张三驾驶证业务信息区块“的哈希值为1311、1312。
可知,通过设定在同业务链中任意两个相邻的业务信息区块的哈希值连续,既可保证在同一业务链中业务信息区块的连续性,又可以使得第N+1级业务信息区块与第N级业务信息区块保持衔接。
另一方面,还需要做如下设定:所有业务信息区块的高度按照上链时间顺序叠加。换言之,不论新增的业务信息区块属于哪一条业务链,也不论属于哪一层级,其区块高度仅取决于其上链的时间顺序。结合图3,例如,“社保局业务信息区块”、“教育局业务信息区块”、“张三的家庭社保业务信息区块”、“交通局业务信息区块”四者依时间顺序上链,则四者的区块高度依次为1、2、3、4。其他可类推。
通过上述设定的哈希值连续性规则和区块高度计算规则,可保证该区块系统既有建立分支业务链的能力又有系统统筹的能力。
以上详尽而充分地揭示了本发明的区块链自动组链方法的一种或多种实施例,从中可以知晓,所述区块链自动组链方法通过预设的业务匹配关系,使得不同的业务区块信息得以归类并各自形成业务链,通过这种业务链的灵活扩展和组合,可以有效支持各大行业的业务信息储存,且使得区块与业务清晰、有条理地结合。
根据模块化程序设计理念,本发明还为上述方法提供相应的装置。如图4,本发明的区块链自动组链装置,包括第N级匹配单元11、第N+1级匹配单元12、第N+1级业务链形成单元13,具体地:
所述的第N级匹配单元11,被配置为根据预设的第N级业务匹配关系确定至少两个不同的第N级业务信息区块;其中,N为大于或等于1的整数;
所述的第N+1级匹配单元12,被配置为依序将满足预设的第N+1级业务匹配关系的每一新增业务信息区块与所述至少两个第N级业务信息区块之一匹配,以使所述新增业务信息区块形成为第N+1级业务信息区块;
所述的第N+1级业务链形成单元13,被配置为根据新增顺序,将满足同一第N+1级业务匹配关系的多个第N+1级业务信息区块串联以形成同业务链。
所述区块链自动组链装置与上述区块链自动组链方法相对应,其具有与所述区块链自动组链方法相同的业务执行逻辑,具有相同的技术效果,在此不做进一步赘述。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被执行时实现如前述实施方式中任一项的区块链自动组链方法。该计算机可读存储介质可以是,但不限于,U盘、移动硬盘、ROM、RAM、PROM、EPROM、EEPROM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块/单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。