树形区块链的生成方法及系统与流程

文档序号:12719743阅读:582来源:国知局
树形区块链的生成方法及系统与流程

本发明实施例属于区块链技术领域,尤其涉及一种树形区块链的生成方法及系统。



背景技术:

随着互联网的不断发展,区块链技术应运而生,它是一种互联网数据库技术,具有去中心化、公开透明的特点。具体地,区块链技术的本质是去中心化且寓于分布式结构的数据存储、传输和证明的方法,用数据区块取代目前互联网对中心服务器的依赖,使得所有数据的变更或者交易项目都被记录在一个云系统之上。由于没有中央控制点的分布式对等网络,并且使用分布式集体运作的方法,可以说,区块链是网络上的“公开大账本”。它存在许多节点,每个节点都可以观察到整个账本,并且共同参与维护,其收益则是获得记账的权利,并且可以复制一份完整的数据库,单个节点无法修改数据库,从而保证了账本数据的安全可靠。

当下,采用区块链技术进行数据的组织和管理已经被广泛的应用到了各种商业领域。

发明人在实现本发明的过程中,发现现有技术存在如下缺陷:

由于各商业领域所要组织和管理的数据的多样性,例如数据内容庞大,数据分类复杂,数据之间逻辑关系复杂等,而传统的区块链技术是以链式的方式来组织数据的,这种方式的区块链的容量过小、区块链的增量数据容量过小、数据之间的逻辑表达过于简单,因此现有区块链不能满足对上述多样性的数据进行组织和管理的需求。



技术实现要素:

本发明实施例提供一种树形区块链的生成方法及系统,旨在现有区块链的基础上,根据数据的组织需要,在至少一区块的后端衍生出至少两个子区块,以满足数据的分叉组织需求。

为达到上述目的,本发明实施例提供了一种树形区块链的生成方法,包括:收集来自信息源的信息并打包形成新区块的第一区块体数据;在当前已形成的区块链上,选取一个区块作为所述新区块的父区块;将已确定的所述父区块中的区块体数据和区块头数据经不可逆算法生成固定长度的字符串,添加到所述新区块的区块头中;循环执行以上操作以形成如下形态的区块链:所述区块链整体上呈树形结构,每个区块只有一个父区块,并且存在一区块具有两个以上的子区块。

本发明实施例提供了一种树形区块链的生成系统,包括:第一数据生成模块,用于收集来自信息源的信息并打包形成新区块的第一区块体数据;区块选取模块,用于在当前已形成的区块链上,选取一个区块作为所述新区块的父区块;第二数据生成模块,用于将已确定的所述父区块中的区块体数据和区块头数据经不可逆算法生成固定长度的字符串,添加到所述新区块的区块头中;所述生成系统循环执行以上操作以形成如下形态的区块链:所述区块链整体上呈树形结构,每个区块只有一个父区块,并且存在一区块具有两个以上的子区块。

本发明实施例的树形区块链的生成方法及系统,在当前已形成的区块链上,选取一个区块作为新区块的父区块,生成具有如下形态的区块链:区块链整体上呈树形结构,每个区块只有一个父区块,并且存在一区块具有两个以上的子区块,从而形成“一父多子”的分叉链结构,以满足需要通过分叉链的形式组织数据的需求。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

图1a为本发明实施例提供的区块单元的形态图一;

图1b为本发明实施例提供的区块单元的形态图二;

图2a为本发明实施例提供的区块链的形态图一;

图2b为本发明实施例提供的区块链的形态图二;

图2c为本发明实施例提供的区块链的形态图三;

图3为本发明实施例提供的树形区块链的生成方法流程图一;

图4为本发明实施例提供的区块链的形态图四;

图5为本发明实施例提供的树形区块链的生成方法流程图二;

图6为本发明实施例提供的区块链的形态图五;

图7为本发明实施例提供的选取父区块的方法流程图一;

图8为本发明实施例提供的区块链的形态图六;

图9为本发明实施例提供的区块链的形态图七;

图10为本发明实施例提供的区块链的形态图八;

图11为本发明实施例提供的选取父区块的方法流程图二;

图12为本发明实施例提供的树形区块链的生成系统的结构示意图;

图13为本发明实施例提供的区块选取模块的结构示意图一;

图14为本发明实施例提供的区块选取模块的结构示意图二。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例一

在介绍本发明实施例的内容之前,先对以下名词进行解释:

子创世区块:在具有如下形态的区块单元中,将区块单元中的子区块记为一个子创世区块;

区块单元由至少两个子区块和一个父区块构成;

区块单元由一个子区块和两个以上父区块构成。

举例说明,如图1a所示,上述区块单元可包括两个子区块:区块B和区块C,以及一个父区块:区块A,则在该区块单元中,将区块B和区块C分别记为一个子创世区块。又例如图1b所示,上述区块单元可包括一个子区块:区块C,以及两个父区块:区块A和区块B,则在该区块单元中,将区块C记为一个子创世区块。

子区块链:包括两类,一类是基本子区块链,一类是嵌套子区块链,其中:

基本子区块链,为仅包括一个子创世区块,并且起始于该子创世区块,并结束于一个末端区块(该末端区块可以为起始的子创世区块本身,如果末端区块为另一个子创世区块,则结束于该末端区块的前一个非子创世区块)的区块链;

举例说明,如图2a所示,子区块链1为以区块B1作为子创世区块的子区块链,子区块链2为以区块B2作为子创世区块的子区块链;又例如图2b所示,子区块链1为以区块B1作为子创世区块的子区块链;子区块链2为以区块B2作为子创世区块的子区块链;子区块链3为以区块C作为子创世区块的子区块链;又例如图2c所示,子区块链1为以区块B1作为子创世区块的子区块链;子区块链2为以区块B2作为子创世区块的子区块链;

嵌套子区块链,为在上述任一种基本子区块链中再嵌套包含至少一种基本子区块链而组成的子区块链,也可以是以该方式经多层嵌套包含后产生的子区块链。

举例说明,如图2a、图2b、图2c中,当区块A为一个区块链中的子创世区块时,图2a、图2b、图2c,从整体上也可分别视为一个子区块链。

以下各实施例中如没有特殊说明,则默认提及的子区块链,均为基本子区块链。

首先需要说明的是,本发明实施例将提供一种树形区块链的生成方法,以生成具有“一父多子”的树形区块链结构。通过在当前已形成的区块链上,选取一个区块作为新区块的父区块,将已确定的父区块中的区块体数据和区块头数据经不可逆算法生成固定长度的字符串,添加到新区块的区块头中,完成一次新区块的生成过程。循环执行该操作过程,以得到整体上呈树状形态的区块链结构。这里所述的区块体数据可理解为作为实际交易数据的信息,区块头数据中包含由当前区块的父区块的所有数据经不可逆算法生成的固定长度的字符串,以及与当前区块相关的控制信息,区块体数据和区块头数据构成一个区块的完整数据。

其次需要说明的是,本发明实施例中的区块链中各区块的区块体数据记载的交易数据的信息不局限于商业中的“账本”或“金融交易”的信息,也可以广义的理解为是需要通过区块链这种数据组织形式管理的多样化的对象数据,如针对企业进行管理的企业管理数据,针对项目进行进展跟踪的项目进程管理数据等。在对这些数据进行组织和管理的过程中,可能会出现在一个区块之后,出现多个子区块,并且以这些子区块作为子创世区块延展出多个子区块链,例如,当某个链条中区块的区块体数据中记录的信息出现错误(例如黑客攻击或者重大的记录错误),而想进行修改时,可以在希望修改的区块链处重新生成新的子区块,并且进一步地以该子区块延展出新的子区块链,但同时仍保留原有认为存在错误的区块链。此外,鉴于不同团体对于区块链的可修改性的认可程度,可以让这些新生成的子区块链与原始的区块链并行延展。

以下将对本发明实施例的区块链的生成方法进行详细阐述。

图3为本发明实施例提供的树形区块链的生成方法流程图一。如图1所示,该区块链的生成方法包括如下步骤:

S310,收集来自信息源的信息并打包形成新区块的第一区块体数据。

其中,所述的第一区块体数据为每次生成的新区块中的区块体数据。

具体地,从存储区块链备用数据的信息源处,收集相关信息并汇总,其中,所述信息可以是针对企业进行管理的企业管理数据,针对项目进行进展跟踪的项目进程管理数据等;将汇总的信息按区块体数据的数据格式进行处理打包,以形成新区块的第一区块体数据。其中,数据格式可以包括内容格式,例如每条数据可以按照:“时间+数据id+数据内容”的格式进行打包,也可以包括类型格式,即数据内容为同一类型的打包在一起形成一个区块体数据。

S320,在当前已形成的区块链上,选取一个区块作为新区块的父区块。

传统的区块链结构只包含一个链,每次新生成的区块只能以当前已形成的区块链中的最末端的区块作为父区块,完成区块链的延展。本方案中与现有技术的不同之处,是在当前已形成的区块链上,任意选取一个区块(不局限于当前已形成的区块链中的末端区块)作为新区块的父区块,使得在任一区块的后面均有可能产生新的子区块链。

在当前已形成的区块链上选取新区块的父区块时,可以参考新区块中第一区块体数据的内容以及区块链上各区块的区块体数据的内容的相关度,或者根据数据组织的需要来选取父区块。

S330,将已确定的父区块中的区块体数据和区块头数据经不可逆算法生成固定长度的字符串,添加到新区块的区块头中。

具体地,根据区块链的区块验证原则,对选取出的父区块中的全部数据,包括区块头数据和区块体数据进行不可逆算法的计算,得到具有固定长度的字符串结果。采用不可逆算法为明文进入区块链的存证和不可篡改提供了保证,该不可逆算法可以为定长计算(哈希(Hash))算法,相应的,经不可逆算法得到的字符串可以为哈希值,且将上述具有固定长度的字符串结果添加到新区块的区块头中。

S340,循环执行以上操作以形成如下形态的区块链:区块链整体上呈树形结构,每个区块只有一个父区块,并且存在一区块具有两个以上的子区块。

其中,所述的一区块具有两个以上的子区块的情况中,也包含只有两个子区块的情况。

上述步骤S310~S330为单次生成新区块过程,该过程为形成图1a所述的区块单元提供了可能性和实现基础。在循环执行步骤S310~S330的操作,即连续多次生成新区块之后,可以形成如图4所示形态的区块链:区块链整体上呈树形结构,每个区块只有一个父区块,并且存在一区块具有两个以上的子区块。

图4中,各区块内的数据结构包括两部分:区块头中的数据(区块头数据)和区块体中的数据(区块体数据),其中,区块头数据包括上一个区块的散列值(如上一个区块的全部数据经不可逆算法计算得到的具有固定长度的字符串,如哈希值)和其他控制信息(可自定义),其中只有创世区块较为特殊,由于其没有父区块,其区块头中没有上一个区块的散列值;区块体数据可以为以Merkle Tree方式组织起来的交易数据的信息,该交易数据的信息从广义上讲可以为上述针对企业进行管理的企业管理数据,或针对项目进行进展跟踪的项目进程管理数据等。

本发明实施例的树形区块链的生成方法,通过收集来自信息源的信息并打包形成新区块的第一区块体数据;在当前已形成的区块链上,选取一个区块作为新区块的父区块;将已确定的父区块中的区块体数据和区块头数据经不可逆算法生成固定长度的字符串,添加到新区块的区块头中,完成单次的新区块的生成过程;循环执行以上操作以形成如下形态的区块链:区块链整体上呈树形结构,每个区块只有一个父区块,并且存在一区块具有两个以上的子区块,从而形成具有“一父多子”的树形区块链结构。该树形区块链为需要通过子区块链方式组织数据提供了可行的实现方案,并且这种树形区块链,可以组织和管理内容庞大,分类复杂,数据之间逻辑关系复杂的数据,弥补了现有区块链不能满足对多样性的数据进行组织和管理的需求。

实施例二

图5为本发明实施例提供的树形区块链的生成方法流程图二,该方法可视为图3所示方法实施例的具体实现方式。如图5所示,上述区块链的生成方法包括如下步骤:

S510,收集来自信息源的信息并打包形成新区块的第一区块体数据。步骤S510与步骤S310的内容相同。

S520,将第一区块体数据与当前已形成的区块链中各区块的第二区块体数据的内容进行比对,并根据内容相关度从区块链中选取一个区块作为新区块的父区块。步骤S520可视为步骤S320的细化步骤。

其中,第二区块体数据定义为,当前已形成的区块链中任一区块的区块体数据,且每个第二区块体数据中只包含一个类型的数据。

在已形成的树形结构的区块链中,两个相邻的父区块和子区块中的区块体数据其内容是关联的,子区块中记载的区块体数据内容可以为父区块中区块体数据的细化数据,或是父区块中区块体数据的延展数据(如对应区块中的区块体数据可依据时间进行区块的延展)。

以图6为例,对两个相邻的父区块和子区块中的区块体数据的内容关联性进行解释如下:某一企业采用本实施例中呈树形结构的区块链对其分公司的业务进行数据组织管理,该企业以区块a0“集团”作为创世区块,“集团”下设立了区块b0“娱乐”、区块b1“餐饮”、区块b2“房地产”三个并列的行业子区块,在“娱乐”行业下进一步包括区块c0“游艺厅”和区块c1“网吧”两个具体经营项目。在该企业的数据管理中,“娱乐”可视为“游艺厅”和“网吧”的上位数据,“集团”可视为“娱乐”、“餐饮”、“房地产”的上位数据;而区块c4“项目竞标”、区块c5“项目融资”、区块c6“项目施工”可视为“房地产”类别下具有延展性的数据并存形式,可视为同类别数据。当然,如果针对某一上位数据的多个下位数据之间不存在细化分类的必要,那么也可将这几个下位数据对应的区块按数据间的延展关系形成单链条的区块链结构,此时,也可称这几个区块对应的区块体数据为同类别数据。

如图6中所示,树形结构的区块链中,包含了多个线条状的子区块链,而“房地产”、“游戏厅”、“网吧”、“餐饮”这些区块就是这些子区块链的创世区块,为了区别最原始的创世区块,可以将其称作为子创世区块。

例如,区块c4至区块c6的区块体中包含了“房地产”对应的区块所在的子区块链的各种数据,在实际应用中,子创世区块中可以存储一些特殊数据,例如,针对“房地产”作为子创世区块所在的子区块链中各区块的区块体数据的整体说明等,当然,也可以将该子创世区块作为该子区块链中的一个普通区块来存储需要存储的数据。“游戏厅”和“网吧”对应的区块所在的子区块链中的区块用省略号进行示出。

整个树形结构的区块链会随着实际的应用不断延展,延展存在两种情况,一种是继某一个子区块链进行延展,另一种是产生新的子创世区块,从而会形成新的子区块链。

基于图6及上述关于区块体数据中上下位数据以及同类别数据的定义和描述,本实施例示出了一种根据区块体数据的内容的相关度选取父区块的方法流程图。具体地,如图7所示,该方法包括如下步骤:

S710,确定是否存在与第一区块体数据为同类别的第二区块体数据。

具体地,提取第一区块体数据和第二区块体数据中能够反映数据类别的实体信息,根据这些实体信息确定其所属数据类别,并将这些信息各自所属的数据类别进行比对,识别出与第一区块体数据为相同类别的第二区块体数据。

这里需要说明的是,在前期生成第一区块体数据的过程中,会参考当前已形成的区块链上各区块的区块体数据的类型,并将相同类型的数据打包在一起生成第一区块体数据。在该前提下,每次新生成的第一区块体数据中不会同时包含区块链中已存在的任意两个区块中为不同类型的区块体数据。这也保证了第一区块体数据与各第二区块体数据之间能够以区块为单位进行整体数据类型的比较。

例如,以图6所示的区块链中各区块的区块体数据为例,当第一区块体数据内容为某歌舞厅的相关数据,通过提取该相关数据的实体信息可以识别出该数据属于“娱乐”行业类别下的具体类别,但又不属于“游艺厅”或“网吧”所涉及的经营内容,即与“游艺厅”、“网吧”为同位,但不同类的经营项目,因此确定当前区块链的各区块中不存在与第一区块体数据为相同类别的第二区块体数据。

又例如,当第一区块体数据内容为“集团”下房地产行业中正在进行的项目进行考核评价的相关数据,通过提取该相关数据的实体信息可以识别出该数据属于“房地产”行业类别下的具体信息,且与已存在的“项目竞标”、“项目融资”、“项目施工”之间具有时间延展性,因此可将“项目竞标”、“项目融资”、“项目施工”分别确定为第一区块体数据的同类别数据,即当前区块链的各区块中的区块体数据中存在与第一区块体数据为相同类别的第二区块体数据。

当确定存在与第一区块体数据为同类别的第二区块体数据后,可执行步骤S720,将同类别的一个第二区块体数据对应的区块确定为新区块的父区块。

例如,当确定上述“项目竞标”、“项目融资”、“项目施工”分别为与第一区块体数据为同类别的第二区块体数据后,可在这三个数据所对应的区块中择一确定一个区块作为当前新区块的父区块。

优选地,可将与第一区块体数据为同类别的第二区块体数据对应的区块中的一个末端区块确定为新区块的父区块,该末端区块为某一子区块链的当前最末端区块。例如,以“项目施工”所在的区块(该区块是其所在子区块链的末端区块)作为当前新区块的父区块,以保证区块链在数据形式上符合某一规律(如按时间、逻辑顺序等)的延展性,新区块c7生成后整个区块链延展为如图8所示,新区块产生于“房地产”所在区块作为子创世区块的子区块链的末端,其中,新区块的区块体数据可以是与房地产相关的任何数据,如针对项目进行考核评价的相关数据。

需要说明的是,图6中“房地产”下面的“项目竞标”、“项目融资”、“项目施工”等数据作为对应区块的区块体数据的内容仅仅是示例性的,实际应用中,这些区块中的区块体数据的内容可以是任意与“房地产”相关的数据内容,例如区块c4至c6中的区块体数据可以都是“项目施工”的数据,也可是“房地产交易数据”等。

当确定不存在与第一区块体数据为同类别的第二区块体数据后,可执行步骤S730,查找能够作为第一区块体数据的上位数据的第二区块体数据。

例如,当以上述某歌舞厅的相关数据作为新区块的第一区块体数据,且确定在当前已形成的区块链的各区块中,并不存在与第一区块体数据为相同类别的第二区块体数据后,可退一步查找在第二区块体数据中能够作为第一区块体数据的上位数据的第二区块体数据。

例如,在图6中,可将“娱乐”和“娱乐”以上直属的父区块中各区块的区块体数据作为当前第一区块体数据的上位数据;默认地,可将区块链中的创世区块中的区块体数据作为任一新区块的第一区块体数据的一个上位数据。

S740,将上位数据中与第一区块体数据在内容上相关度最大的上位数据对应的区块确定为新区块的父区块。

例如,在图6中,当以上述某歌舞厅的相关数据作为新区块的第一区块体数据时,“集团”和“娱乐”均可作为第一区块数据的上位数据,而其中,“娱乐”为“歌舞厅”在内容上关联最紧密、相关度最大的上位数据。这里也可将“在内容上相关度最大的上位数据”释义为与第一区块体数据相对应的所有上位数据中最为下位的数据。

将与第一区块体数据相对应地所有上位数据中,在内容上相关度最大的上位数据对应的区块确定为新区块的父区块。例如,当以上述某歌舞厅的相关数据作为新区块的第一区块体数据时,可将“娱乐”所在的区块确定为新区块的父区块。新区块c8“歌舞厅”生成后整个区块链延展为如图9所示,新区块c8“歌舞厅”的区块体数据可以是与歌舞厅相关的任何数据。

另外,为了方便第一区块体数据与第二区块体数据的相关度对比,可预先在形成每个区块的区块体数据后,将根据区块的区块体数据的内容所形成的类别信息作为控制信息存储在当前区块的区块头中。当将第一区块体数据与当前已形成的区块链中各区块的第二区块体数据的内容进行比对时,可直接将根据第一区块体数据的内容所形成的类别信息,与根据第二区块体数据的内容所形成的类别信息进行比对,从而确定与第一区块体数据为同类别或为其上位的第二区块体数据。然后按照上述方法选取出新区块的父区块。

S530,将已确定的父区块中的区块体数据和区块头数据经不可逆算法生成固定长度的字符串,添加到新区块的区块头中。

S540,循环执行以上操作以形成如下形态的区块链:区块链整体上呈树形结构,每个区块只有一个父区块,并且存在一区块具有两个以上的子区块。

步骤S530~S540与步骤S330~S340的内容对应相同。

本发明实施例的区块链的生成方法,在图3所示实施例的基础上,对如何在当前已形成的区块链上,选取一个区块作为新区块的父区块进行了步骤细化,具体通过新区块的第一区块体数据以及区块链中已存在的各区块的第二区块体数据的内容相关度进行父区块的选取,使得区块之间的逻辑关系更加合理和多样化。

实施例三

基于图3所示的方法步骤,所形成的区块链整体上呈树形结构,每个区块只有一个父区块,并且存在一区块具有两个以上的子区块。随着新区块的不断生成,各子区块链的数据类型会逐步细化和明确,整个区块链会呈多个子区块链并行的态势延展。在生成新区块的过程中,如果没有特殊的新类型的区块体数据出现,通常不会再产生新的子区块链,新生成的区块自然也会链接在当前某一子区块链的末端。随着区块链的不断延展,区块链会形成具有至少一个如下形态的区块单元:每个区块单元由至少两个子区块和一个父区块构成,其中,区块单元中的每个子区块均可记为一个子创世区块。

例如,以图6为例,其包含的子创世区块可如图10中所示,区块b0、b1、b2可以分别作为a0的子创世区块;区块c0、c1又可以作为b0的子创世区块。

基于子创世区块的引入,在为新区块选取父区块时,可将第一区块体数据与当前已形成的区块链中各子创世区块的第三区块体数据的内容进行比对,并根据内容相关度从区块链中选取一个区块作为新区块的父区块。

其中,第三区块体数据定义为,当前已形成的区块链中任一子创世区块的区块体数据。

由于区块链中各子创世区块作为各自所在的子区块链的起始区块,已经对其后面的子区块链中各区块的区块体数据进行了类型划分,并且位于已形成的呈树形结构的区块链最末端的子创世区块,其后链接的各区块的区块体数据中也没有细化类型,因此在进行区块体数据的关联度比较时,无需再将第一区块体数据与区块链中非子创世区块中的区块体数据进行比对,以简化数据比对的过程。

具体地,如图11所示,本实施例示出了一种根据子创世区块的区块体数据选取父区块的方法流程图。

S111,将第一区块体数据与当前已形成的区块链中位于末端的各子创世区块的第三区块体数据的内容进行比对,确定是否存在与第一区块体数据为同类别的第三区块体数据。

具体地,提取第一区块体数据和位于已形成的呈树形结构的区块链末端的各子创世区块的第三区块体数据中能够反映数据类别的实体信息,根据这些实体信息确定其所属数据类别,并将这些信息各自所属的数据类别进行比对,识别出与第一区块体数据为相同类别的第三区块体数据。

例如,以图10所示的各子创世区块的区块体数据为例,当第一区块体数据内容为某歌舞厅的相关数据,通过提取该相关数据的实体信息可以识别出该数据不属于“游艺厅”、“网吧”、“餐饮”、“房地产”所涉及的经营内容,由此确定,当前位于区块链末端的各子创世区块中不存在与第一区块体数据为相同类别的第三区块体数据。

又例如,当第一区块体数据内容为“集团”下房地产行业中正在进行的项目进行考核评价的相关数据,通过提取该相关数据的实体信息可以识别出该数据属于“房地产”行业类别下的具体信息,且当前“房地产”所在子区块链中,子创世区块b2已经是区块链末端的子创世区块,因此可将“房地产”确定为第一区块体数据的同类别数据,即当前区块链中存在与第一区块体数据为相同类别的第三区块体数据,并且该第三区块体数据为位于区块链末端的子创世区块的第三区块体数据。

这里需要说明的是,为了便于区分各子区块链之间的区块的区块体数据的整体数据类型,位于各子区块链的首端的子创世区块可以是仅作为类型标识的区块链接在该子区块链的最前端,其存在的意义就是限定其所在子区块链上的各区块的区块体数据的类型。这样,该区块中可以没有实质内容的区块体数据,可以仅包括针对该子创世区块所在的子区块链中区块的区块体数据的内容类别信息,当然也可以同时包括实体的区块体数据和该子区块链中区块的区块体数据的内容类别信息,该内容类别信息用来标识其所在子区块链中的所有区块的区块体数据的内容属性或者内容类别。

基于这样的设计,上述步骤S111中,确定是否存在与第一区块体数据为同类别的第三区块体数据可以进一步包括:将第一区块体数据与第三区块体数据中包括的内容类别信息进行比较,确定第一区块体数据和第三区块体数据是否为同类别。在这种情况下的比对,就是将作为实体数据内容的第一区块体数据与作为标识信息的第三区块体数据中的内容类别信息进行比较,以快速判断该第一区块体数据是否与该子区块链上各区块的区块体数据为同类别数据,从而确定是否要链接在该子区块链上。

当一个子创世区块后面仅存在一条支链时,可视为该子创世区块与其后支链上的各区块的区块体数据为同一类型,不存在上下位关系。当然,在需要与当前支链上的数据进行类型区分时,可在该子创世区块后面再新生成一条支链,此时,该子创世区块才可视为其后两个子区块链上各区块中区块体数据的上位数据。由此可以看出,两个相邻的父、子区块之间,其区块体数据是同类型数据或是上下位数据关系是可变化的。

通过识别位于区块链末端的各子创世区块的第三区块体数据中,是否存在与第一区块体数据为同类别的第三区块体数据,可以很快锁定新区块可能会链接到的子区块链的位置,以在不增加新子区块链的前提下,更方便的寻找到新区块的父区块。

当确定存在与第一区块体数据为同类别的第三区块体数据后,可执行步骤S112,将该同类别的一个第三区块体数据对应的区块所在的子区块链中的末端区块确定为新区块的父区块。

例如,当确定上述“房地产”为与第一区块体数据为同类别的第三区块体数据后,可将其对应的区块所在的子区块链中的末端区块“项目施工”确定为新区块的父区块。

当确定不存在与第一区块体数据为同类别的第三区块体数据后,可执行步骤S113,在当前已形成的区块链中位于非末端的各子创世区块的第三区块体数据中,查找能够作为第一区块体数据的上位数据的第三区块体数据。

例如,当以上述某歌舞厅的相关数据作为新区块的第一区块体数据,且确定在当前已形成的区块链中,位于末端的各子创世区块的第三区块体数据中,并不存在与第一区块体数据为相同类别的第三区块体数据后,可退一步查找位于区块链非末端的各子创世区块的第三区块体数据中,能够作为第一区块体数据的上位数据的第三区块体数据。

例如,在图10中,可将“娱乐”和“娱乐”以上直属的父区块(除创世区块外)中各区块的区块体数据作为当前第一区块体数据的上位数据;默认地,可将区块链中的创世区块中的区块体数据作为任一新区块的第一区块体数据的一个上位数据。

S114,将上位数据中与第一区块体数据在内容上相关度最大的上位数据对应的区块确定为新区块的父区块。

例如,在图8中,当以上述某歌舞厅的相关数据作为新区块的第一区块体数据时,“集团”和“娱乐”均可作为第一区块数据的上位数据,而其中,“娱乐”为“歌舞厅”在内容上关联度最大的上位数据。这里也可将“在内容上关联度最大的上位数据”释义为与第一区块体数据相对应的所有上位数据中最为下位的数据。

将与第一区块体数据相对应地所有上位数据中,在内容上相关度最大的上位数据对应的区块确定为新区块的父区块。例如,当以上述某歌舞厅的相关数据作为新区块的第一区块体数据时,可将“娱乐”所在的区块确定为新区块的父区块。新区块c8“歌舞厅”生成后整个区块链延展为如图9所示,新区块c8“歌舞厅”的区块体数据可以是与歌舞厅相关的任何数据。区块c8“歌舞厅”也为一个子创世区块。

另外,为了方便第一区块体数据与第三区块体数据的相关度对比,可预先在形成每个子创世区块的第三区块体数据时,将针对该子创世区块所在的子区块链中的各区块的区块体数据的内容类别信息记载在该子创世区块的第三区块体数据中。当将第一区块体数据与当前已形成的区块链中各区块的第三区块体数据的内容进行比对时,可直接将第一区块体数据与第三区块体数据中包括的内容类别信息进行比较,确定第一区块体数据和第三区块体数据是否为同类别。。然后按照上述方法选取出新区块的父区块。

本发明实施例的选取父区块的方法,在图3所示实施例的基础上,对如何在当前已形成的区块链上,选取一个区块作为新区块的父区块进行了步骤细化,具体通过新区块的第一区块体数据以及区块链中,各子区块链上的子创世区块的第三区块体数据的内容相关度进行父区块的选取,使得在选取父区块时更加方便、快捷。

实施例四

图12为本发明实施例提供的树形区块链的生成系统示意图一,可以用于执行如图3所示的方法步骤。如图12所示,该区块链的生成系统包括:第一数据生成模块121、区块选取模块122和第二数据生成模块123,其中:

第一数据生成模块121,用于收集来自信息源的信息并打包形成新区块的第一区块体数据;区块选取模块122,用于在当前已形成的区块链上,选取一个区块作为新区块的父区块;第二数据生成模块123,用于将已确定的父区块中的区块体数据和区块头数据经不可逆算法生成固定长度的字符串,添加到新区块的区块头中;上述生成系统循环执行以上操作以形成如下形态的区块链:区块链整体上呈树形结构,每个区块只有一个父区块,并且存在一区块具有两个以上的子区块。

本发明实施例的树形区块链的生成系统,通过收集来自信息源的信息并打包形成新区块的第一区块体数据;在当前已形成的区块链上,选取一个区块作为新区块的父区块;将已确定的父区块中的区块体数据和区块头数据经不可逆算法生成固定长度的字符串,添加到新区块的区块头中,完成单次的新区块的生成过程;循环执行以上操作以形成如下形态的区块链:区块链整体上呈树形结构,每个区块只有一个父区块,并且存在一区块具有两个以上的子区块,从而形成具有“一父多子”的树形区块链结构。该树形区块链为需要通过子区块链方式组织数据提供了可行的实现方案,并且这种树形区块链,可以组织和管理内容庞大,分类复杂,数据之间逻辑关系复杂的数据,弥补了现有区块链不能满足对多样性的数据进行组织和管理的需求。

实施例五

本发明实施例对图12所示系统实施例进行了结构和功能的细化,细化后的结构可用于执行如图5所示的方法步骤。具体地,在图12所示结构的基础上:

区块选取模块122具体用于,将第一区块体数据与当前已形成的区块链中各区块的第二区块体数据的内容进行比对,并根据内容相关度从区块链中选取一个区块作为新区块的父区块。

进一步地,如图13所示,上述区块选取模块122具体包括:

第一数据确定单元131,用于确定是否存在与第一区块体数据为同类别的第二区块体数据;第一区块选取单元132,用于若存在同类别的第二区块体数据,则将该同类别的一个第二区块体数据对应的区块确定为新区块的父区块。

进一步地,上述第一区块选取单元132可具体用于将该同类别的第二区块体数据对应的区块中的一个末端区块确定为新区块的父区块。

在此基础上,如图13所示,上述区块选取模块122还可具体包括:

第一数据查找单元133,用于若不存在同类别的第二区块体数据,则查找能够作为第一区块体数据的上位数据的第二区块体数据;第二区块选取单元134,用于将该上位数据中与第一区块体数据在内容上相关度最大的上位数据对应的区块确定为新区块的父区块。

图13所示的区块选取模块可用于执行图7所示的方法步骤。

进一步地,上述第二区块选取单元134还可用于,将区块链中的创世区块中的区块体数据作为新区块的一个默认的上位数据。

进一步地,在各区块的区块头数据中还可包括:根据当前区块的区块体数据的内容所形成的类别信息。在此基础上,区块选取模块122还可用于,将根据第一区块体数据的内容所形成的类别信息,与根据第二区块体数据的内容所形成的类别信息进行比对。

进一步地,上述不可逆算法可为哈希算法。

进一步地,上述固定长度的字符串可为哈希值。

本发明实施例的树形区块链的生成系统,在图12所示实施例的基础上,对区块选取模块的结构和功能进行了细化,具体通过新区块的第一区块体数据以及区块链中已存在各区块的第二区块体数据的内容相关度进行父区块的选取,使得区块之间的逻辑关系更加合理和多样化。

实施例六

基于图12所示的树形区块链的生成系统的功能及结构,在形成的区块链中具有至少一个如下形态的区块单元:每个区块单元由至少两个子区块和一个父区块构成,区块单元中的每个子区块可记为一个子创世区块。

在此基础上,本实施例示出的树形区块链的生成系统中,同样包括图12中所示的功能模块,其中,第一数据生成模块121和第二数据生成模块123与图12中对应相同,而针对区块选取模块122有所改动。

如图14所示,在图13的基础上,或为图13的可替代方案,上述区块选取模块122具体还可用于,将第一区块体数据与当前已形成的区块链中各子创世区块的第三区块体数据的内容进行比对,并根据内容相关度从区块链中选取一个区块作为新区块的父区块。

具体地,区块选取模块122可具体包括:

第二数据确定单元141,用于将第一区块体数据与当前已形成的区块链中,位于末端的各子创世区块的第三区块体数据的内容进行比对,确定是否存在与第一区块体数据为同类别的第三区块体数据;第三区块选取单元142,用于若存在同类别的第三区块体数据,则将该同类别的一个第三区块体数据对应的区块所在的子区块链中的末端区块确定为新区块的父区块。

进一步地,图14中的区块选取模块122还可具体包括:第二数据查找单元143,用于若不存在同类别的第三区块体数据,则在当前已形成的区块链中位于非末端的各子创世区块的第三区块体数据中,查找能够作为第一区块体数据的上位数据的第三区块体数据;第四区块选取单元144,用于将该上位数据中与第一区块体数据在内容上相关度最大的上位数据对应的区块确定为新区块的父区块。

其中,如前面所说明的,子创世区块的第三区块体数据可以包括针对该子创世区块所在的子区块链中各区块的区块体数据的内容类别信息,

则上述的将第一区块体数据与各子创世区块的第三区块体数据的内容进行比对,并根据内容相关度从区块链中选取一个区块作为新区块的父区块的步骤可以转化为:将第一区块体数据与第三区块体数据中包括的内容类别信息进行比对,并根据内容相关度从区块链中选取一个区块作为新区块的父区块。

图14所示的区块选取模块可用于执行图11所示的方法步骤。

本发明实施例的树形区块链的生成系统,在图12、图13所示实施例的基础上,对区块选取模块的功能做了进一步细化,具体通过新区块的第一区块体数据以及区块链中,各子区块链上的子创世区块的第三区块体数据的内容相关度进行父区块的选取,使得在选取父区块时更加方便、快捷。

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

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

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1