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

一种区块链信息处理方法及装置、电子设备、存储介质与流程

2022-11-13 12:02:32 来源:中国专利 TAG:


1.本技术涉及区块链技术领域,特别涉及一种区块链信息处理方法及装置、电子设备、存储介质。


背景技术:

2.区块链是构建分布式网络的新兴技术,其用一致性算法以分布式方式运行。一致性算法允许所有网络参与者,即区块链中的所有节点,对某个提议的数据具有相同的结果,作为共识的结果。
3.当前区块链在进行共识时,即验证生成的区块的合法性时,需要计算上一个区块哈希和当前区块记录的父哈希是否一致,而上一个区块的哈希值又需要根据上上一个区块的哈希值进行哈希计算得到,所以若是区块链存在n个区块,则需要进行n次哈希计算,计算量比较大。
4.所以当前对于区块链中的节点,不仅需要其具有加大的电池容量和存储容量,并且还需要具有足够的计算资源。所以对于轻节点,即对于存储容量和计算资源较少的节点,由于无法满足计算需求,因此其无法加入到区块链中,仅是能存储区块链的部分信息。


技术实现要素:

5.基于上述现有技术的不足,本技术提供了一种区块链信息处理方法及装置、电子设备、存储介质,以解决现有技术无法让轻节点加入区块链中的问题。
6.为了实现上述目的,本技术提供了以下技术方案:
7.本技术第一方面提供了一种区块链信息处理方法,包括:
8.在生成区块链的新区块时,对所述区块链中在所述新区块前的各个区块的哈希值的哈希计算结果的和,逐级进行哈希计算,直至仅得到一个所述哈希计算结果;其中,各个所述区块的哈希值的哈希计算结果通过对各个所述区块中的哈希值进行哈希计算得到;
9.将最终仅得到的所述哈希计算结果确定为所述新区块对应的压缩标识;
10.将所述新区块对应的压缩标识存储至所述新区块的区块头中。
11.可选地,在上述的区块链信息处理方法中,所述对所述区块链中在所述新区块前的各个区块的哈希值的哈希计算结果的和,逐级进行哈希计算,直至仅得到一个所述哈希计算结果,包括:
12.获取所述区块链中在所述新区块前的各个所述区块的哈希值;
13.分别对获取到的在所述新区块前的各个所述区块的哈希值进行哈希计算,得到第一级的各个所述哈希计算结果;
14.从第一级开始,依次对下一级的每两个所述哈希计算结果的和进行哈希计算,得到上一级的所述计算结果,直至得到最高级的所述哈希计算结果。
15.可选地,在上述的区块链信息处理方法中,所述对所述区块链中在所述新区块前的各个区块的哈希值的哈希计算结果的和,逐级进行哈希计算,直至仅得到一个所述哈希
计算结果,包括:
16.从所述新区块的前一块所述区块的区块头中,提取出所述新区块的前一块所述区块对应的压缩标识;
17.从所述新区块的区块头中提取所述新区块的前一块所述区块的哈希值;
18.对所述新区块的前一块所述区块对应的压缩标识及其哈希值的哈希计算结果的和进行哈希计算,得到一个所述哈希计算结果。
19.可选地,在上述的区块链信息处理方法中,所述将所述新区块对应的压缩标识存储至所述新区块的区块体中之后,还包括:
20.判断当前所述区块链中的各个所述区块的数量是否满足预设数量阈值;
21.若判断出当前所述区块链中的各个所述区块的数量满足预设数量阈值,则至少基于当前所述区块链中的各个所述区块的哈希值,在所述区块链上生成当前前置信息存储区块;其中,所述前置信息存储区块的区块体中至少包括当前所述区块链中的各个所述区块的哈希值;
22.将所述区块链中在所述当前前置信息存储区块后的各个所述区块移除。
23.本技术第二方面提供了一种区块链信息处理装置,包括:
24.计算单元,用于在生成区块链的新区块时,对所述区块链中在所述新区块前的各个区块的哈希值的哈希计算结果的和,逐级进行哈希计算,直至仅得到一个所述哈希计算结果;其中,各个所述区块的哈希值的哈希计算结果通过对各个所述区块中的哈希值进行哈希计算得到;
25.确定单元,用于将最终仅得到的所述哈希计算结果确定为所述新区块对应的压缩标识;
26.存储单元,用于将所述新区块对应的压缩标识存储至所述新区块的区块头中。
27.可选地,在上述的区块链信息处理装置中,所述计算单元,包括:
28.获取单元,用于获取所述区块链中在所述新区块前的各个所述区块的哈希值;
29.第一计算单元,用于分别对获取到的在所述新区块前的各个所述区块的哈希值进行哈希计算,得到第一级的各个所述哈希计算结果;
30.第二计算单元,用于从第一级开始,依次对下一级的每两个所述哈希计算结果的和进行哈希计算,得到上一级的所述计算结果,直至得到最高级的所述哈希计算结果。
31.可选地,在上述的区块链信息处理装置中,所述计算单元,包括:
32.第一提取单元,用于从所述新区块的前一块所述区块的区块头中,提取出所述新区块的前一块所述区块对应的压缩标识;
33.第二提取单元,用于从所述新区块的区块头中提取所述新区块的前一块所述区块的哈希值;
34.第三计算单元,用于对所述新区块的前一块所述区块对应的压缩标识及其哈希值的哈希计算结果的和进行哈希计算,得到一个所述哈希计算结果。
35.可选地,在上述的区块链信息处理装置中,还包括:
36.判断单元,用于判断当前所述区块链中的各个所述区块的数量是否满足预设数量阈值;
37.生成单元,用于在判断出当前所述区块链中的各个所述区块的数量满足预设数量
阈值时,至少基于当前所述区块链中的各个所述区块的哈希值,在所述区块链上生成当前前置信息存储区块;其中,所述前置信息存储区块的区块体中至少包括当前所述区块链中的各个所述区块的哈希值;
38.移除单元,用于将所述区块链中在所述当前前置信息存储区块后的各个所述区块移除。
39.本技术第三方面提供了一种电子设备,包括:
40.存储器和处理器;
41.其中,所述存储器用于存储程序;
42.所述处理器用于执行所述程序,所述程序被执行时,具体用于实现如上述任意一项所述的区块链信息处理方法。
43.本技术第四方面提供了一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,用于实现如上述任意一项所述的区块链信息处理方法。
44.本技术提供了一种区块链信息处理方法,在生成区块链的新区块时,对区块链中在新区块前的各个区块的哈希值的哈希计算结果的和,逐级进行哈希计算,直至仅得到一个哈希计算结果,其中,各个区块的哈希值的哈希计算结果通过对各个区块中的哈希值进行哈希计算得到。最后,将最终仅得到的哈希计算结果确定为新区块对应的压缩标识,将新区块对应的压缩标识存储至新区块的区块头中。从而通过对区块的区块头进行改进,并基于此提供了新的共识方法,对哈希值的哈希计算的和进行运行,不再是对单个区块的哈希值进行计算,所以有效减少了计算量,进而降低了对计算资源的需求,使得轻节点也能加入到区块链中。
附图说明
45.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
46.图1为本技术实施例提供的一种区块链信息处理方法的流程图;
47.图2为本技术实施例提供的一种计算压缩标识的方法的流程图;
48.图3为本技术实施例提供的一个计算压缩标识的方法的示例的示意图;
49.图4为本技术另一实施例提供的另一种计算压缩标识的方法的流程图;
50.图5为本技术另一实施例提供的一种前置信息存储区块的生成方法的流程图;
51.图6为本技术另一实施例提供的一种区块链信息处理装置的架构示意图;
52.图7为本技术另一实施例提供的一种电子设备的架构示意图。
具体实施方式
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.在本技术中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
55.本技术实施例公开了一种区块链信息处理方法,如图1所示,具体包括以下步骤:
56.s101、在生成区块链的新区块时,对区块链中在新区块前的各个区块的哈希值的哈希计算结果的和,逐级进行哈希计算,直至仅得到一个哈希计算结果。
57.其中,各个区块的哈希值的哈希计算结果通过对各个区块中的哈希值进行哈希计算得到。
58.需要说明的是,一个完整的区块由区块头和区块体构成。区块头中包含有版本号、前一个区块的哈希值、当前区块的难度、当前区块经过pow解出的随机值;当前区块的时间戳以及当前区块所有交易的merkle根。区块体中包含当前区块内的交易数量以及所有经过验证后的交易。
59.所以现有验证区块的合法性,则需要计算上一个区块的哈希值和当前区块记录的父哈希是否一致。而上一个区块的哈希值又需要通过上上一个区块的哈希值进行计算得到,所以若是当前区块前有n个区块,则需要进行n次哈希计算,这对于计算资源较少的轻节点而言是比较难实现的。
60.所以在本技术实施例中,提供了一种新的共识算法,其基于在区块头中增加的压缩标识实现,而该压缩标识通过对区块链中在新区块前的各个区块的哈希值的哈希计算结果的和,逐级进行哈希计算,直至仅得到一个哈希计算结果获得。
61.具体的,在本技术实施例中,对各个区块中的哈希值进行哈希计算得到各个区块的哈希值的哈希计算结果,然后分别对多个哈希计算结果的和进行哈希计算,得到多个新的哈希计算结果,然后再分别对多个新的哈希计算结果进行哈希计算,如此不断地逐级进行计算,最终仅得到一个哈希计算结果,无法再继续进行求和并进行哈希计算。
62.由于是多个哈希计算结果进行求和后再进行哈希计算,所以可以有效地减少计算量,从而可以更适用于轻节点。
63.可选地,在本技术实施例中,步骤s101中的对区块链中在新区块前的各个区块的哈希值的哈希计算结果的和,逐级进行哈希计算,直至仅得到一个哈希计算结果的一种具体实施方式,即一种计算压缩标识的实施方式,如图2所示,包括:
64.s201、获取区块链中在新区块前的各个区块的哈希值。
65.具体的,可以从区块链中在新区块前的各个区块的区块头中提取到各个区块的哈希值。
66.s202、分别对获取到的在新区块前的各个区块的哈希值进行哈希计算,得到第一级的各个哈希计算结果。
67.需要说明的是,在本技术实施例中,采用二叉树的方式进行哈希计算,所以先分别对获取到的在新区块前的各个区块的哈希值进行哈希计算,得到最低一级的哈希计算结
果。
68.s203、从第一级开始,依次对下一级的每两个哈希计算结果的和进行哈希计算,得到上一级的计算结果,直至得到最高级的哈希计算结果。
69.具体的,在本技术实施例中,采用二叉树的方式进行计算。所以具体先将第一级的每两个哈希计算结果的求和,然后对求和结果进行哈希计算,从而得到新的哈希计算结果,即得到第二级的哈希计算结果,然后再将第二级的每两个哈希计算结果的求和,然后对求和结果进行哈希计算,从而得到第三级的哈希计算结果,不断地对下一级的每两个哈希计算结果的和进行哈希计算,得到上一级的计算结果,直至最后仅能得到一个哈希计算结果,不再能继续进行计算,此时得到的该哈希计算结果即为最高级的哈希计算结果。
70.例如,如图3所示,在新区块前有a、b、c、d四个区块。先分别对这四个区块的哈希值进行还需计算,得到四个第一级的哈希计算结果。然后对a的哈希计算结果和b的哈希计算结果的和进行哈希计算,以及对c和d的哈希计算结果的和进行哈希计算,得到两个第二级的哈希计算结果,则对两个第二级的哈希计算结果的和进行哈希计算,仅得到一个哈希计算结果,即为最高级的哈希计算结果。
71.通过这样的共识算法,显然可以有效地减少验证的计算量。当然在本技术实施例中,逐级对每两个哈希计算结果的和进行哈希计算是一种可选地方式,也可以是对更多的哈希计算结果的和进行哈希计算。
72.可选地,当在新区块后的区块的数量为奇数时,可以选择将剩余的一个区块的哈希值的哈希计算结果与其中的一个第二级的哈希计算结果合并。具体合并方式,可以是将两者进行求和并进行哈希计算,从而除第一级外的各级的哈希计算结果均为偶数。
73.需要说明的是,若是新区块为区块链的第一区块,则由于其后不存在区块,所以可以不需要进行压缩标识的计算。而当新区块为区块链的第二区块时,其后仅存在一个区块,由于不存在其他的哈希计算结果进行求和,所以其后的区块的哈希值的哈希计算结果即为最高级的好像计算结果。
74.可选地,在本技术另一实施例中,步骤s101中的对区块链中在新区块前的各个区块的哈希值的哈希计算结果的和,逐级进行哈希计算,直至仅得到一个哈希计算结果的另一种具体实施方式,即另一种计算压缩标识的实施方式如图4所示,包括:
75.s401、从新区块的前一块区块的区块头中,提取出新区块的前一块区块对应的压缩标识。
76.s402、从新区块的区块头中提取新区块的前一块区块的哈希值。
77.s403、对新区块的前一块区块对应的压缩标识及其哈希值的哈希计算结果的和进行哈希计算,得到一个哈希计算结果。
78.需要说明的是,在本技术实施例中,是直接对新区块的前一块区块对应的压缩标识和前一块区块的哈希值的和进行哈希计算,得到压缩标识。而新区块的前一块区块对应的压缩标识则是在前一块区块生成时,基于该区块的前一个区块的压缩标识和哈希值的哈希计算结果得到的,所以依次类推,新区块的压缩标识即利用到的其前面的所有区块的哈希值的哈希计算结果得到的。
79.通过这样的方式,不仅可以明显减少计算量,并且在计算时不需要从前一块区块前的区块中获取信息,所以对于存储空间有限的请节点可以选择只存储区块链中的部分区
块,即在新区块的前一个区块前的区块可以移除。
80.s102、将最终仅得到的哈希计算结果确定为新区块对应的压缩标识。
81.s103、将新区块对应的压缩标识存储至新区块的区块头中。
82.可选地,在本技术另一实施例中,在执行步骤s103之后,还可以进一步生成前置信息存储区块。如图5所示,本技术实施例提供的一种前置信息存储区块的生成方法,包括:
83.s501、判断当前区块链中的各个区块的数量是否满足预设数量阈值。
84.为了避免频繁地生成前置信息存储区块,占用大量的计算资源,但是又要考虑到轻节点存储空间,所以本技术实施例中,需要在其所存储的区块链中区块的数量达到一定量时,才进行前置信息存储区块的生成,从而不仅避免占有轻节点有限的计算资源,也能保证区块链的数据量超过其存储空间。
85.因此,在本技术实施例中,在判断出当前区块链中的各个区块的数量满足预设数量阈值时,才执行步骤s502。
86.s502、至少基于当前区块链中的各个区块的哈希值,在区块链上生成当前前置信息存储区块。
87.其中,前置信息存储区块的区块体中至少包括当前区块链中的各个区块的哈希值。
88.需要说明的是,前置信息存储区块的区块体与本技术实施例中生成的普通的区块没有区别,即也会包括有压缩标识等。但是其区块体中存储的是之前所有区块的哈希值,以便于后续生成新的区块时,可以获取到各个区块的哈希值,而不再是与普通区块体一样存储的是交易信息。
89.具体的,可以当前区块链中的各个普通区块的区块头中获取相应的哈希值,以及从区块链中先前生成的前置信息存储区块的区块体中获取存储的各个哈希值,然后存储到当前前置信息存储区块的区块体中。
90.s503、将区块链中在当前前置信息存储区块后的各个区块移除。
91.对于轻节点,生成当前前置信息存储区块是为了能减少需要存储的数据量,所以此时需要将区块链中在当前前置信息存储区块后的各个区块移除,即当前轻节点存储的区块链仅包括当前前置信息存储区块。
92.本技术实施例提供了一种区块链信息处理方法,在生成区块链的新区块时,对区块链中在新区块前的各个区块的哈希值的哈希计算结果的和,逐级进行哈希计算,直至仅得到一个哈希计算结果,其中,各个区块的哈希值的哈希计算结果通过对各个区块中的哈希值进行哈希计算得到。最后,将最终仅得到的哈希计算结果确定为新区块对应的压缩标识,将新区块对应的压缩标识存储至新区块的区块头中。从而通过对区块的区块头进行改进,并基于此提供了新的共识方法,对哈希值的哈希计算的和进行运行,有效减少了计算量,进而降低了对计算资源的需求,使得轻节点也能加入到区块链中。
93.需要说明的是,附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示
的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
94.虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。
95.本技术另一实施例提供了一种区块链信息处理装置,如图6所示,包括以下单元:
96.计算单元601,用于在生成区块链的新区块时,对区块链中在新区块前的各个区块的哈希值的哈希计算结果的和,逐级进行哈希计算,直至仅得到一个哈希计算结果。
97.其中,各个区块的哈希值的哈希计算结果通过对各个区块中的哈希值进行哈希计算得到。
98.确定单元602,用于将最终仅得到的哈希计算结果确定为新区块对应的压缩标识。
99.存储单元603,用于将新区块对应的压缩标识存储至新区块的区块头中。
100.可选地,在本技术另一实施例提供的区块链信息处理装置中,计算单元,包括:
101.获取单元,用于获取区块链中在新区块前的各个区块的哈希值。
102.第一计算单元,用于分别对获取到的在新区块前的各个区块的哈希值进行哈希计算,得到第一级的各个哈希计算结果。
103.第二计算单元,用于从第一级开始,依次对下一级的每两个哈希计算结果的和进行哈希计算,得到上一级的计算结果,直至得到最高级的哈希计算结果。
104.可选地,在本技术另一实施例提供的区块链信息处理装置中,计算单元,包括:
105.第一提取单元,用于从新区块的前一块区块的区块头中,提取出新区块的前一块区块对应的压缩标识。
106.第二提取单元,用于从新区块的区块头中提取新区块的前一块区块的哈希值。
107.第三计算单元,用于对新区块的前一块区块对应的压缩标识及其哈希值的哈希计算结果的和进行哈希计算,得到一个哈希计算结果。
108.可选地,在本技术另一实施例提供的区块链信息处理装置中,还可以进一步包括:
109.判断单元,用于判断当前区块链中的各个区块的数量是否满足预设数量阈值。
110.生成单元,用于在判断出当前区块链中的各个区块的数量满足预设数量阈值时,至少基于当前区块链中的各个区块的哈希值,在区块链上生成当前前置信息存储区块。
111.其中,前置信息存储区块的区块体中至少包括当前区块链中的各个区块的哈希值。
112.移除单元,用于将区块链中在当前前置信息存储区块后的各个区块移除。
113.需要说明的是,本技术上述实施例提供的各个单元的具体工作过程,可相应地参考上述方法实施例中的相应的步骤,此处不再赘述。
114.本技术另一实施例提供了一种电子设备,如图7所示,包括:
115.存储器701和处理器702。
116.其中,存储器701用于存储程序。
117.处理器702用于执行存储器701存储的程序,该程序被执行时,具体用于实现如上述任意一个实施例提供的区块链信息处理方法。
118.需要说明的是,具体的实现过程可相应地参考上述方法实施例的具体实施步骤,此处不再赘述。
119.本技术另一实施例提供了一种计算机存储介质,用于存储计算机程序,计算机程序被执行时,用于实现如上述任意一个实施例提供的区块链信息处理方法。
120.计算机存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
121.需要说明的是,本发明提供的一种区块链信息处理方法及装置、电子设备、存储介质可用于区块链领域、大数据领域或金融领域。上述仅为示例,并不对本发明提供的一种区块链信息处理方法及装置、电子设备、存储介质的应用领域进行限定。
122.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
123.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献