区块链中区块生成难度调节方法、装置、设备及介质与流程

文档序号:32412159发布日期:2022-12-02 21:37阅读:113来源:国知局
区块链中区块生成难度调节方法、装置、设备及介质与流程

1.本技术属于区块链领域,尤其涉及一种区块链中区块生成难度调节方法、装置、设备及介质。


背景技术:

2.区块链系统中可包括多个节点,每个节点可存储有区块链,不同节点中的区块链需保持一致。区块链是多个区块组成的链条,每一个区块中可保存信息。区块链由于其数据难以篡改以及去中心化的特点,逐渐在各个应用领域中得到推广。
3.在平行多链结构的区块链的场景中,包括多条子区块链,由于不同子区块链的延伸速度不尽相同,且有逐渐发散的趋势,缺乏对区块链的区块生成难度调节的方法,在网络规模或算力投入等因素发生变化的情况下,区块链系统的安全性难以得到保证。


技术实现要素:

4.本技术实施例提供一种区块链中区块生成难度调节方法、装置、设备及介质,能够动态调节区块生成难度,提升区块链的安全性。
5.第一方面,本技术实施例提供一种区块链中区块生成难度调节方法,包括:在生成新区块时,根据本地节点的区块链中区块的逻辑时钟,选定新区块的引导区块,区块链包括两条以上的子区块链;基于区块链中区块之间的引导指向关系,确定新区块所在的逻辑时钟线,逻辑时钟线为沿引导指向关系指向创世区块的路径;根据期望单链延伸速度、逻辑时钟线中上一难度调整周期对应的区块生成难度和区块生成速度,确定新区块所属的当前难度调整周期对应的区块生成难度;在当前难度调整周期中,按照目标区块生成难度生成区块,目标区块生成难度大于等于当前难度调整周期对应的区块生成难度。
6.第二方面,本技术实施例提供一种区块链中区块生成难度调节装置,包括:引导区块确定模块,用于在生成新区块时,根据本地节点的区块链中区块的逻辑时钟,选定新区块的引导区块,区块链包括两条以上的子区块链;逻辑时钟线确定模块,用于基于区块链中区块之间的引导指向关系,确定新区块所在的逻辑时钟线,逻辑时钟线为沿引导指向关系指向创世区块的路径;计算模块,用于根据期望单链延伸速度、逻辑时钟线中上一难度调整周期对应的区块生成难度和区块生成速度,确定新区块所属的当前难度调整周期对应的区块生成难度;执行模块,用于在当前难度调整周期中,按照目标区块生成难度生成区块,目标区块生成难度大于等于当前难度调整周期对应的区块生成难度。
7.第三方面,本技术实施例提供一种节点设备,包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现第一方面的区块链中区块生成难度调节方法。
8.第四方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现第一方面的区块链中区块生成难度调节方法。
9.本技术实施例提供一种区块链中区块生成难度调节方法、装置、设备及介质,可在生成新区块的情况下,根据本地节点的区块链中区块之间的引导指向关系,可确定新区块所在的逻辑时钟线。利用期望单链延伸速度、逻辑时钟线中上一难度调整周期对应的区块生成难度和区块生成速度,可确定新区块所属的当前难度调整周期对应的区块生成难度。在当前难度调整周期中,按照大于或等于当前难度调整周期对应的区块生成难度的目标区块生成难度生成区块。同一个难度调整周期中的区块生成难度与区块生成速度呈负相关关系。可根据上一难度调整周期对应的区块生成速度与期望单链延伸速度的比较,来确定在上一难度调整周期对应的区块生成难度的基础上,是提高区块生成难度还是降低区块生成难度,从而得到当前难度调整周期对应的区块生成难度,以弥补上一难度调整周期对应的区块生成速度过快或过慢带来的不良影响。在网络规模或算力投入等因素发生变化的情况下,动态调节区块生成难度,使区块链的延伸速度能够与期望单链延伸速度一致或趋于一致,使得区块生成难度能够在安全的范围内,从而提高区块链系统的安全性。
附图说明
10.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
11.图1为本技术实施例提供的平行多链结构的区块链的一示例的结构示意图;
12.图2为本技术实施例提供的平行多链结构的区块链的另一示例的结构示意图;
13.图3为本技术一实施例提供的区块链中区块生成难度调节方法的流程图;
14.图4为本技术实施例提供的区块链中逻辑时钟线的一示例的示意图;
15.图5为本技术另一实施例提供的区块链中区块生成难度调节方法的流程图;
16.图6为本技术又一实施例提供的区块链中区块生成难度调节方法的流程图;
17.图7为本技术再一实施例提供的区块链中区块生成难度调节方法的流程图;
18.图8为本技术一实施例提供的区块链中区块生成难度调节装置的结构示意图;
19.图9为本技术一实施例提供的节点设备的结构示意图。
具体实施方式
20.下面将详细描述本技术的各个方面的特征和示例性实施例,为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本技术进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本技术,而不是限定本技术。对于本领域技术人员来说,本技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本技术的示例来提供对本技术更好的理解。
21.区块链系统中可包括多个节点,每个节点可存储有区块链,不同节点中的区块链需保持一致。节点可实现为一个或多个节点设备,在此并不限定节点设备的数量和类型。区块链是多个区块组成的链条,每一个区块中可保存信息。区块链由于其数据难以篡改以及去中心化的特点,逐渐在各个应用领域中得到推广。区块链的结构也比较多样,例如,区块链的结构可包括平行多链结构。平行多链结构的区块链可包括多条子区块链,每条子区块链可包括多个区块。区块链新生成的区块可随机分配到多条子区块链中的任意一条子区块
链中,因此不同子区块链的延伸速度不尽相同,且有逐渐发散的趋势。在这种情况下,缺乏对区块链的区块生成难度调节的方法,在网络规模或算力投入等因素发生变化的情况下,由于无法调节区块生成难度,会导致区块链系统的安全性难以得到保证。
22.本技术提供的区块链中区块生成难度调节方法、装置、设备及介质可应用于平行多链结构的区块链的场景中。平行多链结构的区块链可包括多条子区块链。平行多链结构的区块链可包括一个或两个以上的创世区块,创世区块为被最早构建的区块。每条子区块链包括一个创世区块。例如,图1为本技术实施例提供的平行多链结构的区块链的一示例的结构示意图,如图1所示,该平行多链结构的区块链包括三条子区块链,分别为子区块链a1、子区块链a2和子区块链a3,子区块链a1、子区块链a2和子区块链a3共用一个创世区块g1。又例如,图2为本技术实施例提供的平行多链结构的区块链的另一示例的结构示意图,如图2所示,该平行多链结构的区块链包括三条子区块链,分别为子区块链a4、子区块链a5和子区块链a6,子区块链a4和a5共用一个创世区块g2,子区块链a6包括创世区块g3。
23.本技术提供的区块链中区块生成难度调节方法、装置、设备及介质,可在生成新区块的情况下,根据本地节点的区块链中区块之间的引导指向关系,可确定新区块所在的逻辑时钟线。利用期望单链延伸速度、逻辑时钟线中上一难度调整周期对应的区块生成难度和区块生成速度,可确定新区块所属的当前难度调整周期对应的区块生成难度,在当前难度调整周期中,按照大于或等于当前难度调整周期对应的区块生成难度的目标区块生成难度生成区块,可在网络规模或算力投入等因素发生变化的情况下,动态调节区块生成难度,使区块链的延伸速度能够与期望单链延伸速度一致或趋于一致,以提高区块链系统的安全性。
24.下面对区块链中区块生成难度调节方法、装置、设备及介质分别进行说明。
25.本技术第一方面提供一种区块链中区块生成难度调节方法,该区块链中区块生成难度调节方法可由区块链中区块生成难度调节方法装置或节点设备等执行,在此并不限定。图3为本技术一实施例提供的区块链中区块生成难度调节方法的流程图,如图3所示,该区块链中区块生成难度调节方法可包括步骤s101至步骤s104。
26.在步骤s101中,在生成新区块时,根据本地节点的区块链中区块的逻辑时钟,选定新区块的引导区块。
27.区块链包括两条以上的子区块链,每条子区块链可包括多个区块,具体内容可参见上文中的相关说明,在此不再赘述。
28.区块链系统可包括多个节点。本地节点可为生成新区块的节点,即,在生成新区块时,将生成新区块的节点视为本地节点。本技术实施例中的区块链中区块生成难度调节方法可由本地节点执行。在本技术实施例中并不限定生成新区块的方式,例如,可采用基于工作量证明的方式、基于可验证延迟函数的方式、基于其他密码学原语的方式等或两个以上的方式的组合来生成新区块,但不限于此。
29.逻辑时钟可在分布式系统中用于表达事件的发生顺序。在本技术实施例中,逻辑时钟可在区块链中区分区块的出现顺序。每个区块具有一个逻辑时钟,逻辑时钟可维护一个单调递增的数字,每出现一个新的区块,该新的区块的逻辑时钟就在前一个出现的区块的逻辑时钟的基础上加一。
30.区块链中的区块具有引导指向关系,该引导指向关系可根据逻辑时钟确定。区块
链中的区块在结构上可形成有向无环图(directed acyclic graph,dag)。在本地节点中,当前出现的新区块之前最近出现的一个区块可为新区块的引导区块,即,新区块的引导区块是本地节点中在新区块之前最近出现的一个区块。新区块生成后可随机分配给多条子区块链中的任意一条子区块链,可根据区块链系统的共识规则确定区块链的全局统一顺序。
31.在一些示例中,可将区块链的各子区块链的主链中逻辑时钟最大的区块选定为新区块的引导区块。本地节点可获取区块链的各个子区块链的主链中区块的逻辑时钟,将逻辑时钟最大的区块选择为新区块的引导区块。
32.在选定新区块的引导区块后,可建立新区块与引导区块之间的引导指向关系。在一些示例中,可计算新区块的引导区块的哈希值,将哈希值作为指向标识添加至新区块的区块头字段,形成新区块与新区块之间的引导指向关系。具体地,可将新区块的引导区块的区块标识的哈希值作为该引导区块的哈希值,并将该哈希值写入新区块的区块头字段。可根据读取的某一区块的区块头字段中的哈希值,确定该区块的引导区块。
33.在步骤s102中,基于区块链中区块之间的引导指向关系,确定新区块所在的逻辑时钟线。
34.逻辑时钟线为沿引导指向关系指向创世区块的路径。可先根据新区块确定该新区块的引导区块,再根据该引导区块,确定该引导区块的引导区块,依次类推,直至查找到创世区块。逻辑时钟线中的任意一个区块的逻辑时钟可为该区块沿引导指向关系到创世区块所经区块的数目,所经区块包括创世模块但不包括该区块。
35.例如,图4为本技术实施例提供的区块链中逻辑时钟线的一示例的示意图。如图4所示,区块链包括三条子区块链,每条子区块链包括多个区块,图4中只示出了一部分区块,图4示出的区块包括区块b1至区块b12,其中示出了区块b8所在的逻辑时钟线,该逻辑时钟线可为:b8

b12

b7

b3

b6
→…→
b9

g4。
36.在步骤s103中,根据期望单链延伸速度、逻辑时钟线中上一难度调整周期对应的区块生成难度和区块生成速度,确定新区块所属的当前难度调整周期对应的区块生成难度。
37.期望单链延伸速度为单一子链架构下期望的主链的区块延伸速度,也可视为期望的逻辑时钟线的区块的延伸速度,该期望单链延伸速度可根据场景、需求、经验等设定,在此并不限定。
38.难度调整周期也可根据场景、需求、经验等设定,在此并不限定。难度调整周期的长度可按照区块数量或时间等划分,但要保证每个难度调整周期中生成至少一个区块。在一些示例中,可预先设定预设时长或预设区块数量,按照预设时长或预设区块数量划分得到难度调整周期,难度调整周期的长度可为预设时长或预设区块数量。预设时长内至少生成一个区块,预设区间数量大于等于1。
39.区块所在的难度调整周期即为当前难度调整周期。当前难度调整周期之前且最接近的一个难度调整周期为上一难度调整周期。在得到新区块所在的逻辑时钟线的情况下,可在逻辑时钟线中,按照难度调整周期的长度,得到各难度调整周期,从而从中得到上一难度调整周期。可根据上一难度调整周期中的区块的时间信息和数量信息,得到上一难度调整周期对应的区块生成速度。上一难度调整周期中生成区块的数量与上一难度调整周期所占的时长的比即为上一难度调整周期对应的区块生成速度,例如,若上一难度调整周期所
占的时长为10秒,生成区块的数量为30,则上一难度调整周期对应的区块生成速度为3个区块/秒。上一难度调整周期对应的区块生成难度可直接获取得到。区块生成难度可为区块链系统的共识协议中合法区块生成的难度的下限要求。在一些示例中,区块的哈希值的倒数可用于衡量区块的区块生成难度。
40.新区块所属的当前难度调整周期对应的区块生成难度能够使得区块链整体的延伸速度与期望单链延伸速度一致或区域一致。同一个难度调整周期中的区块生成难度与区块生成速度呈负相关关系,即,在同一个难度调整周期中,区块生成难度越高,区块生成速度越慢,对应地,区块生成难度越低,区块生成速度越块。因此,可根据上一难度调整周期对应的区块生成速度与期望单链延伸速度的比较,来确定在上一难度调整周期对应的区块生成难度的基础上,是提高区块生成难度还是降低区块生成难度,即,当前难度调整周期对应的区块生成难度应该大于上一难度调整周期对应的区块生成难度,还是小于上一难度调整周期对应的区块生成难度,以弥补上一难度调整周期对应的区块生成速度过快或过慢带来的不良影响。当然,若上一难度调整周期对应的区块生成速度适宜,当前难度调整周期对应的区块生成难度可与上一难度调整周期对应的区块生成难度保持一致。
41.在一些示例中,在上一难度调整周期对应的区块生成速度小于所述期望单链延伸速度的情况下,可减小区块生成速度,即,当前难度调整周期对应的区块生成难度小于上一难度调整周期对应的区块生成难度。在上一难度调整周期对应的区块生成速度大于所述期望单链延伸速度的情况下,可增大区块生成速度,即,当前难度调整周期对应的区块生成难度大于上一难度调整周期对应的区块生成难度。
42.在一些示例中,在上一难度调整周期对应的区块生成速度小于所述期望单链延伸速度的情况下,第一难度差值与上一难度调整周期对应的区块生成难度的比值小于第二预设比值。第一难度差值为上一难度调整周期对应的区块生成难度与当前难度调整周期对应的区块生成难度的差值,即,第一难度差值为当前难度调整周期相对于上一难度调整周期的区块生成难度的降低值。由于区块生成难度越低,受到网络攻击的可能性越大,因此,即使在上一难度调整周期对应的区块生成速度小于所述期望单链延伸速度的情况下降低区块生成难度,但区块生成难度的下降幅度不宜过大,可通过第二预设比值以及第一难度差值与上一难度调整周期对应的区块生成难度的比值来限定区块生成难度的下降幅度,以防止可能的网络攻击。第二预设比值可根据场景、需求、经验等设定,在此并不限定,例如,第二预设比值可为30%。
43.在步骤s104中,在当前难度调整周期中,按照目标区块生成难度生成区块。
44.可根据当前难度调整周期对应的区块生成难度,得到目标区块生成难度。目标区块生成难度大于等于当前难度调整周期对应的区块生成难度。
45.在区块链每一次生成新区块的情况下,都可执行上述步骤s101至步骤s104,动态调节区块生成难度。需要说明的是,由于第一个难度调整周期不存在上一难度调整周期,第一个难度调整周期对应的区块生成速度可设定为期望单链延伸速度,第一个难度调整周期对应的区块生成难度可设定为一个预设难度,该预设难度可根据期望单链延伸速度确定。
46.在本技术实施例中,可在生成新区块的情况下,根据本地节点的区块链中区块之间的引导指向关系,可确定新区块所在的逻辑时钟线。利用期望单链延伸速度、逻辑时钟线中上一难度调整周期对应的区块生成难度和区块生成速度,可确定新区块所属的当前难度
调整周期对应的区块生成难度。在当前难度调整周期中,按照大于或等于当前难度调整周期对应的区块生成难度的目标区块生成难度生成区块。同一个难度调整周期中的区块生成难度与区块生成速度呈负相关关系。可根据上一难度调整周期对应的区块生成速度与期望单链延伸速度的比较,来确定在上一难度调整周期对应的区块生成难度的基础上,是提高区块生成难度还是降低区块生成难度,从而得到当前难度调整周期对应的区块生成难度,以弥补上一难度调整周期对应的区块生成速度过快或过慢带来的不良影响。在网络规模或算力投入等因素发生变化的情况下,动态调节区块生成难度,使区块链的延伸速度能够与期望单链延伸速度一致或趋于一致,使得区块生成难度能够在安全的范围内,从而提高区块链系统的安全性。而且,动态调节区块生成难度,使区块链的延伸速度能够与期望单链延伸速度一致或趋于一致,也能够避免区块链系统性能的下降。
47.在一些实施例中,为了尽量减少不必要的调整,可只在上一难度调整周期对应的区块生成速度与期望单链延伸速度相差较大时,才进行区块生成难度的调节,以节省区块生成难度动态调整所占用的资源。图5为本技术另一实施例提供的区块链中区块生成难度调节方法的流程图。图5与图3的不同之处在于,图3中的步骤s103可具体细化为图5中的步骤s1031,图5所示的区块链中区块生成难度调节方法还可包括步骤s105。
48.在步骤s1031中,在第一速度绝对值占期望单链延伸速度的比值大于第一预设比值的情况下,根据期望单链延伸速度、上一难度调整周期对应的区块生成难度和区块生成速度,确定当前难度调整周期对应的区块生成难度。
49.第一速度绝对值为上一难度调整周期对应的区块生成速度与期望单链延伸速度的差值的绝对值。第一速度绝对值占期望单链延伸速度的比值可表征上一难度调整周期对应的区块生成速度相较于期望单链延伸速度增大或减小的程度。第一预设比值用于判定上一难度调整周期对应的区块生成速度相较于期望单链延伸速度增大或减小的程度是否超出可接受范围,可根据场景、需求、经验等设定,在此并不限定。第一速度绝对值占期望单链延伸速度的比值大于第一预设比值,表示上一难度调整周期对应的区块生成速度相较于期望单链延伸速度增大或减小的程度超出可接受范围,需要调节区块生成难度。
50.在步骤s105中,在第一速度绝对值占期望单链延伸速度的比值小于等于第一预设比值的情况下,将上一难度调整周期对应的区块生成难度确定为当前难度调整周期对应的区块生成难度。
51.第一速度绝对值占期望单链延伸速度的比值小于等于第一预设比值,表示上一难度调整周期对应的区块生成速度相较于期望单链延伸速度增大或减小的程度在可接受范围内,不需调节区块生成难度,保持区块生成难度不变即可。
52.只在第一速度绝对值占期望单链延伸速度的比值大于第一预设比值时,才进行区块生成难度的调节,能够尽量减少不必要的调整,节省区块生成难度动态调整所占用的资源。
53.在一些实施例中,可按照一定比例,在上一难度调整周期对应的区块生成难度的基础上增大或降低,得到当前难度调整周期对应的区块生成难度。图6为本技术又一实施例提供的区块链中区块生成难度调节方法的流程图。图6与图3的不同之处在于,图3中的步骤s103可具体细化为图6中的步骤s1032至步骤s1034。
54.在步骤s1032中,根据期望单链延伸速度和上一难度调整周期对应的区块生成速
度,计算得到调节比例。
55.具体地,调节比例可为上一难度调整周期对应的区块生成速度与期望单链延伸速度的比值,可如下式(1)计算得到:
[0056][0057]
其中,d为调节比例;v1为上一难度调整周期对应的区块生成速度;v0为期望单链延伸速度。
[0058]
在步骤s1033中,在上一难度调整周期对应的区块生成速度小于期望单链延伸速度的情况下,按照调节比例,减小上一难度调整周期对应的区块生成难度,得到当前难度调整周期对应的区块生成难度。
[0059]
在上一难度调整周期对应的区块生成速度小于期望单链延伸速度的情况下,表示上一难度调整周期对应的区块生成速度较慢,需要在当前难度调整周期内提高区块生成速度,以弥补上一难度调整周期对应的区块生成速度过慢带来的不良影响。可按照调节比例,同比例减小上一难度调整周期对应的区块生成难度,得到当前难度调整周期对应的区块生成难度。当前难度调整周期对应的区块生成难度小于上一难度调整周期对应的区块生成难度。当前难度调整周期对应的区块生成难度可根据下式(2)计算得到:
[0060]
e2=e1×dꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0061]
其中,e2为当前难度调整周期对应的区块生成难度;e1为上一难度调整周期对应的区块生成难度;d为调节比例,调节比例的计算可参见上式(1)。在上一难度调整周期对应的区块生成速度小于期望单链延伸速度的情况下,上式(2)中的调节比例d小于1。
[0062]
在步骤s1034中,在上一难度调整周期对应的区块生成速度大于期望单链延伸速度的情况下,按照调节比例,增大上一难度调整周期对应的区块生成难度,得到当前难度调整周期对应的区块生成难度。
[0063]
在上一难度调整周期对应的区块生成速度大于期望单链延伸速度的情况下,表示上一难度调整周期对应的区块生成速度较快,需要在当前难度调整周期内降低区块生成速度,以弥补上一难度调整周期对应的区块生成速度过快带来的不良影响。可按照调节比例,同比例增大上一难度调整周期对应的区块生成难度,得到当前难度调整周期对应的区块生成难度。当前难度调整周期对应的区块生成难度大于上一难度调整周期对应的区块生成难度。当前难度调整周期对应的区块生成难度也可根据上式(2)计算得到。但在上一难度调整周期对应的区块生成速度大于期望单链延伸速度的情况下,上式(2)中的调节比例d大于1。
[0064]
此外,在上一难度调整周期对应的区块生成速度等于期望单链延伸速度的情况下,可保持当前难度调整周期对应的区块生成难度可与上一难度调整周期对应的区块难度相同,即保持区块生成难度不变。在这种情况下,也可视为调节比例等于1。
[0065]
在一些实施例中,在本地节点接收到其他节点生成的区块的情况下,可对其他节点生成的区块所属的难度调整周期对应的区块生成难度进行验证,以确定其他节点生成的区块是否具有合法性。图7为本技术再一实施例提供的区块链中区块生成难度调节方法的流程图。图7与图3的不同之处在于,图7所示的区块链中区块生成难度调节方法还可包括步骤s106至步骤s109。
[0066]
在步骤s106中,在接收到第一区块的情况下,根据第一区块所在的时钟逻辑线,计
算得到第一区块的实际区块生成难度。
[0067]
第一区块包括非本地节点生成的区块。非本地节点包括区块链系统中除本地节点之外的其他节点。非本地节点生成新区块后,需要将新区块传递给本地节点。虽然上述实施例中区块链中区块生成难度调节方法添加进了区块链系统的共识规则,本地节点可确定生成的新区块的难度是按照上述实施例中区块链中区块生成难度调节方法进行调节的,但本地节点不能确定非本地节点生成的区块的难度是否按照上述实施例中区块链中区块生成难度调节方法进行调节。因此需要对非本地节点生成的区块的难度调节是否按照上述实施例中区块链中区块生成难度调节方法进行调节进行验证。
[0068]
第一区块所在的时钟逻辑线可基于区块链中区块之间的引导指向关系得到。第一区块所在的时钟逻辑线为从第一区块沿引导指向关系指向创世区块的路径。
[0069]
根据第一区块所在的时钟逻辑线,可获取该时钟逻辑线中的区块的相关信息,从而可得到第一区块的实际区块生成难度。
[0070]
在步骤s107中,判断实际生成难度是否小于第一区块所属的难度调整周期对应的区块生成难度。
[0071]
第一区块所属的难度调整周期对应的区块生成难度可根据上述实施例中区块链中区块生成难度调节方法,基于第一区块所属的难度调整周期的前一难度调整周期对应的区块生成难度、区块生成速度和期望单链延伸速度确定。
[0072]
根据实际生成难度与第一区块所属的难度调整周期对应的区块生成难度的对比,可确定第一区块所属的难度调整周期对应的区块生成难度是否按照上述实施例中区块链中区块生成难度调节方法进行调节。
[0073]
在步骤s108中,若实际生成难度小于第一区块所属的难度调整周期对应的区块生成难度,拒绝将区块分配至本地节点的子区块链中。
[0074]
实际生成难度小于第一区块所属的难度调整周期对应的区块生成难度,表示第一区块所属的难度调整周期对应的区块生成难度未按照上述实施例中区块链中区块生成难度调节方法进行调节,即第一区块为非法区块,拒绝将非法区块添加到区块链中的任意一子区块链中。
[0075]
在步骤s109中,若实际生成难度大于或等于第一区块所属的难度调整周期对应的区块生成难度,将区块分配至本地节点的子区块链中。
[0076]
实际生成难度大于或等于第一区块所属的难度调整周期对应的区块生成难度,表示第一区块所属的难度调整周期对应的区块生成难度按照上述实施例中区块链中区块生成难度调节方法进行调节,即第一区块为合法区块,将合法区块添加到区块链中的某一子区块链中。
[0077]
通过对非本地节点生成的区块所属的难度调整周期对应的区块生成难度进行验证,能够避免将非法区块添加入区块链,保证了区块链系统的安全性和可靠性。
[0078]
需要说明的是,本技术实施例中对信息、数据的获取、存储、使用、处理、应用等均得到用户或相关机构的授权,符合国家法律法规的相关规定。
[0079]
本技术第二方面提供一种区块链中区块生成难度调节装置。图8为本技术一实施例提供的区块链中区块生成难度调节装置的结构示意图。如图8所示,区块链中区块生成难度调节装置200可包括引导区块确定模块201、逻辑时钟线确定模块202、计算模块203和执
行模块204。
[0080]
引导区块确定模块201可用于在生成新区块时,根据本地节点的区块链中区块的逻辑时钟,选定新区块的引导区块。
[0081]
区块链包括两条以上的子区块链。
[0082]
逻辑时钟线确定模块202可用于基于区块链中区块之间的引导指向关系,确定新区块所在的逻辑时钟线。
[0083]
逻辑时钟线为沿引导指向关系指向创世区块的路径。
[0084]
计算模块203可用于根据期望单链延伸速度、逻辑时钟线中上一难度调整周期对应的区块生成难度和区块生成速度,确定新区块所属的当前难度调整周期对应的区块生成难度。
[0085]
在一些示例中,难度调整周期根据预设时长或预设区块数量划分,预设时长内至少生成一个区块,预设区块数量大于等于1。
[0086]
执行模块204可用于在当前难度调整周期中,按照目标区块生成难度生成区块,目标区块生成难度大于等于当前难度调整周期对应的区块生成难度。
[0087]
在本技术实施例中,可在生成新区块的情况下,根据本地节点的区块链中区块之间的引导指向关系,可确定新区块所在的逻辑时钟线。利用期望单链延伸速度、逻辑时钟线中上一难度调整周期对应的区块生成难度和区块生成速度,可确定新区块所属的当前难度调整周期对应的区块生成难度。在当前难度调整周期中,按照大于或等于当前难度调整周期对应的区块生成难度的目标区块生成难度生成区块。同一个难度调整周期中的区块生成难度与区块生成速度呈负相关关系。可根据上一难度调整周期对应的区块生成速度与期望单链延伸速度的比较,来确定在上一难度调整周期对应的区块生成难度的基础上,是提高区块生成难度还是降低区块生成难度,从而得到当前难度调整周期对应的区块生成难度,以弥补上一难度调整周期对应的区块生成速度过快或过慢带来的不良影响。在网络规模或算力投入等因素发生变化的情况下,动态调节区块生成难度,使区块链的延伸速度能够与期望单链延伸速度一致或趋于一致,使得区块生成难度能够在安全的范围内,从而提高区块链系统的安全性。而且,动态调节区块生成难度,使区块链的延伸速度能够与期望单链延伸速度一致或趋于一致,也能够避免区块链系统性能的下降。
[0088]
在一些实施例中,引导区块确定模块201可用于:将区块链的各子区块链的主链中逻辑时钟最大的区块选定为新区块的引导区块。
[0089]
在一些实施例中,上述区块链中区块生成难度调节装置200还可包括引导指向关系建立模块。该引导指向关系建立模块可用于:计算新区块的引导区块的哈希值;将哈希值作为指向标识添加至新区块的区块头字段,形成新区块与新区块之间的引导指向关系。
[0090]
在一些实施例中,计算模块203可用于:在第一速度绝对值占期望单链延伸速度的比值大于第一预设比值的情况下,根据期望单链延伸速度、上一难度调整周期对应的区块生成难度和区块生成速度,确定当前难度调整周期对应的区块生成难度,其中,第一速度绝对值为上一难度调整周期对应的区块生成速度与期望单链延伸速度的差值的绝对值。
[0091]
在一些实施例中,计算模块203还可用于:在第一速度绝对值占期望单链延伸速度的比值小于等于第一预设比值的情况下,将上一难度调整周期对应的区块生成难度确定为当前难度调整周期对应的区块生成难度。
[0092]
在一些实施例中,计算模块203可用于:根据期望单链延伸速度和上一难度调整周期对应的区块生成速度,计算得到调节比例;在上一难度调整周期对应的区块生成速度小于期望单链延伸速度的情况下,按照调节比例,减小上一难度调整周期对应的区块生成难度,得到当前难度调整周期对应的区块生成难度;在上一难度调整周期对应的区块生成速度大于期望单链延伸速度的情况下,按照调节比例,增大上一难度调整周期对应的区块生成难度,得到当前难度调整周期对应的区块生成难度。
[0093]
在一些示例中,在上一难度调整周期对应的区块生成速度小于期望单链延伸速度的情况下,第一难度差值与上一难度调整周期对应的区块生成难度的比值小于第二预设比值。其中,第一难度差值为上一难度调整周期对应的区块生成难度与当前难度调整周期对应的区块生成难度的差值。
[0094]
在一些实施例中,上述区块链中区块生成难度调节装置200还可包括验证模块。验证模块可用于:在接收到第一区块的情况下,根据第一区块所在的时钟逻辑线,计算得到第一区块的实际区块生成难度,第一区块包括非本地节点生成的区块;判断实际生成难度是否小于第一区块所属的难度调整周期对应的区块生成难度;若实际生成难度小于第一区块所属的难度调整周期对应的区块生成难度,拒绝将区块分配至本地节点的子区块链中。
[0095]
本技术第三方面还提供了一种节点设备。图9为本技术一实施例提供的节点设备的结构示意图。如图9所示,节点设备300包括存储器301、处理器302及存储在存储器301上并可在处理器302上运行的计算机程序。
[0096]
在一些示例中,上述处理器302可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
[0097]
存储器301可包括只读存储器(read-only memory,rom),随机存取存储器(random access memory,ram),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本技术实施例中区块链中区块生成难度调节方法所描述的操作。
[0098]
处理器302通过读取存储器301中存储的可执行程序代码来运行与可执行程序代码对应的计算机程序,以用于实现上述实施例中的区块链中区块生成难度调节方法。
[0099]
在一些示例中,节点设备300还可包括通信接口303和总线304。其中,如图9所示,存储器301、处理器302、通信接口303通过总线304连接并完成相互间的通信。
[0100]
通信接口303,主要用于实现本技术实施例中各模块、装置、单元和/或设备之间的通信。也可通过通信接口303接入输入设备和/或输出设备。
[0101]
总线304包括硬件、软件或两者,将节点设备300的部件彼此耦接在一起。举例来说而非限制,总线304可包括加速图形端口(accelerated graphics port,agp)或其他图形总线、增强工业标准架构(enhanced industry standard architecture,eisa)总线、前端总线(front side bus,fsb)、超传输(hyper transport,ht)互连、工业标准架构(industry standard architecture,isa)总线、无限带宽互连、低引脚数(low pin count,lpc)总线、存储器总线、微信道架构(micro channel architecture,mca)总线、外围组件互连
(peripheral component interconnect,pci)总线、pci-express(pci-e)总线、串行高级技术附件(serial advanced technology attachment,sata)总线、视频电子标准协会局部(video electronics standards association local bus,vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线304可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
[0102]
本技术第四方面还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,该计算机程序指令被处理器执行时可实现上述实施例中的区块链中区块生成难度调节方法,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,上述计算机可读存储介质可包括非暂态计算机可读存储介质,如只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等,在此并不限定。
[0103]
本技术实施例提供一种计算机程序产品,该计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备可执行上述实施例中的区块链中区块生成难度调节方法,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0104]
需要明确的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。对于装置实施例、设备实施例、计算机可读存储介质实施例、计算机程序产品实施例而言,相关之处可以参见方法实施例的说明部分。本技术并不局限于上文所描述并在图中示出的特定步骤和结构。本领域的技术人员可以在领会本技术的精神之后,作出各种改变、修改和添加,或者改变步骤之间的顺序。并且,为了简明起见,这里省略对已知方法技术的详细描述。
[0105]
上面参考根据本技术的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本技术的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
[0106]
本领域技术人员应能理解,上述实施例均是示例性而非限制性的。在不同实施例中出现的不同技术特征可以进行组合,以取得有益效果。本领域技术人员在研究附图、说明书及权利要求书的基础上,应能理解并实现所揭示的实施例的其他变化的实施例。在权利要求书中,术语“包括”并不排除其他装置或步骤;数量词“一个”不排除多个;术语“第一”、“第二”用于标示名称而非用于表示任何特定的顺序。权利要求中的任何附图标记均不应被理解为对保护范围的限制。权利要求中出现的多个部分的功能可以由一个单独的硬件或软件模块来实现。某些技术特征出现在不同的从属权利要求中并不意味着不能将这些技术特征进行组合以取得有益效果。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1