一种委员会节点共识的方法及装置与流程

文档序号:33562163发布日期:2023-03-22 15:37阅读:53来源:国知局
一种委员会节点共识的方法及装置与流程

1.本技术涉及区块链技术领域,更具体的说,是涉及一种委员会节点共识的方法及装置。


背景技术:

2.随着信息技术的不断发展,大量的数据涌入到整个互联网中,世界进入了“大数据时代”。与此同时,信息安全问题受到重视,各式各样的数据均需要受到安全保护。目前区块链技术对数据存取的安全系数高,当区块链中的信息需要更改时,必须征得区块链半数以上节点的同意并修改所有节点中的信息,因此具有数据难以篡改和去中心化的特点。
3.当区块链中有交易需要执行时,区块链需要达成共识,而区块链达成共识严重依赖委员会构成,在委员会的各个节点共识成功后才允许执行交易操作,委员会所包括多个节点均需保证是靠且状态正常的,但是当节点的网络或设备或故障等原因导致该节点或其他节点状态异常时,会导致共识速度变慢甚至失败,使得共识效率低下。


技术实现要素:

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.当所述委员会中存在节点的状态发生异常时,在所述目标委员会版本中删除状态异常的节点,得到删除状态异常的节点的更新后的目标委员会版本,所述更新后的目标委员会版本的版本号,等于更新前的目标委员会版本的版本号与1相加的值。
30.可选的,该方法还包括:
31.实时监控所述区块链中各个节点的状态,当所述区块链中状态异常的节点恢复正常状态时,更新所述目标委员会版本,得到新的目标委员会版本。
32.可选的,所述目标委员会版本具备其对应的版本号;
33.当所述区块链中状态异常的节点恢复正常状态时,更新所述目标委员会版本,得到新的目标委员会版本,包括:
34.当所述区块链中状态异常的节点恢复正常状态时,在所述目标委员会版本中添加状态恢复正常的节点,得到添加状态恢复正常的节点的更新后的目标委员会版本,所述更新后的目标委员会版本的版本号,等于更新前的目标委员会版本的版本号与1相加的值。
35.一种委员会节点共识的装置,应用于委员会节点,所述委员会节点与若干个其他委员会节点组成委员会,所述委员会中的每个委员会节点预先存储了所述委员会的参考委
员会版本,所述参考委员会版本为所述委员会中在最近一次节点共识成功的各个节点的节点信息;
36.该装置包括:
37.目标委员会版本获取单元,用于当接收到交易处理请求指令时,从预设的委员会状态监控模块中获取目标委员会版本,所述目标委员会版本为所述委员会状态监控模块实时监控所述参考委员会版本中的各个节点的状态,更新初始目标委员会版本得到的,所述初始目标委员会版本为所述委员会状态监控模块,基于所述委员会在其最近一次节点共识的各个节点的节点信息生成的;
38.委员会版本比较单元,用于判断所述参考委员会版本与所述目标委员会版本是否相同,若否,则执行委员会版本更新单元;
39.所述委员会版本更新单元,用于将所述委员会的参考委员会版本更新为所述目标委员会版本,以供所述目标委员会版本所对应的各个节点进行节点共识。
40.可选的,该装置还包括:
41.目标委员会版本存储单元,用于在所述目标委员会版本所对应的各个节点达成共识之后,存储所述目标委员会版本。
42.可选的,该装置还包括:
43.第一共识单元,用于若所述参考委员会版本与所述目标委员会版本相同,根据所述参考委员会版本,与若干个所述其他委员会节点进行节点共识。
44.可选的,该装置还包括:
45.第二共识单元,用于若所述目标委员会版本所对应的各个节点中包含所述委员会节点,根据经更新后的参考委员会版本,与各个节点中除所述委员会节点的其他节点进行节点共识。
46.可选的,所述目标委员会版本具备其对应的版本号,所述参考委员会版本具备其对应的版本号;
47.该装置还包括:
48.第一版本号比较单元,用于若所述参考委员会版本的版本号等于所述目标委员会版本的版本号,根据所述参考委员会版本,与若干个所述其他委员会节点进行节点共识;
49.第二版本号比较单元,用于若所述参考委员会版本的版本号小于所述目标委员会版本的版本号,将所述委员会的参考委员会版本更新为所述目标委员会版本,以供所述目标委员会版本所对应的各个节点进行节点共识;
50.第三版本号比较单元,用于若所述参考委员会版本的版本号大于所述目标委员会版本的版本号,拒绝所述交易处理请求指令。
51.一种委员会节点共识的装置,应用于委员会状态监控模块,该装置包括:
52.节点信息获取单元,用于在委员会成功共识后,获取所述委员会中的各个节点的节点信息;
53.目标委员会版本生成单元,用于根据所述委员会中各个节点的节点信息,生成目标委员会版本;
54.目标委员会版本更新单元,用于实时监控所述委员会中各个节点的状态,并在所述委员会中存在节点的状态发生异常时,更新所述目标委员会版本,得到新的目标委员会
版本;
55.目标委员会版本提供单元,用于当所述委员会中的各个节点接收到交易处理请求指令时,向所述委员会中的各个节点提供所述目标委员会版本,以当所述委员会的参考委员会版本与所述目标委员会版本不同时,区块链的每个节点将所述委员会的参考委员会版本更新为所述目标委员会版本,且,所述目标委员会版本所对应的各个节点进行节点共识。
56.可选的,所述目标委员会版本具备其对应的版本号;
57.所述目标委员会版本更新单元,包括:
58.异常节点删除单元,用于当所述委员会中存在节点的状态发生异常时,在所述目标委员会版本中删除状态异常的节点,得到删除状态异常的节点的更新后的目标委员会版本,所述更新后的目标委员会版本的版本号,等于更新前的目标委员会版本的版本号与1相加的值。
59.可选的,该装置还包括:
60.节点恢复版本更新单元,用于实时监控所述区块链中各个节点的状态,当所述区块链中状态异常的节点恢复正常状态时,更新所述目标委员会版本,得到新的目标委员会版本。
61.可选的,所述目标委员会版本具备其对应的版本号;
62.所述节点恢复版本更新单元,包括:
63.恢复节点添加单元,用于当所述区块链中状态异常的节点恢复正常状态时,在所述目标委员会版本中添加状态恢复正常的节点,得到添加状态恢复正常的节点的更新后的目标委员会版本,所述更新后的目标委员会版本的版本号,等于更新前的目标委员会版本的版本号与1相加的值。
64.借由上述技术方案,本技术在委员会节点接收到交易处理请求指令时,从预设的委员会状态监控模块中获取目标委员会版本,所述目标委员会版本为所述委员会状态监控模块实时监控所述参考委员会版本中的各个节点的状态,更新所述参考委员会版本得到的,判断所述参考委员会版本与所述目标委员会版本是否相同,若否,将所述委员会的参考委员会版本更新为所述目标委员会版本,以供所述目标委员会版本所对应的各个节点进行节点共识。由此可见,通过设计委员会状态监控模块,监控委员会中的各个节点的状态,及时更新目标委员会版本,并在委员会需要进行节点共识时,能够及时发现委员会从上次节点共识至当前的结构变化,保证了区块链共识的速度,提高了共识的成功率和效率。
附图说明
65.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
66.图1为本技术实施例提供的一种委员会节点实施委员会节点共识的流程示意图;
67.图2为本技术实施例提供的一种委员会状态监控模块实施委员会节点共识的流程示意图;
68.图3为本技术实施例提供的一种委员会节点实施委员会节点共识的装置结构示意图;
69.图4为本技术实施例提供的一种委员会状态监控模块实施委员会节点共识的装置结构示意图;
70.图5为本技术实施例提供的一种委员会节点共识的设备的结构示意图。
具体实施方式
71.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
72.本技术方案可以基于具备数据处理能力的终端实现,该终端可以是区块链中的委员会节点和委员会状态监控模块。
73.具体的,所述区块链中可以包括委员会节点和非委员会节点,当前委员会节点与若干个其他委员会节点组成委员会。
74.其中,所述委员会中的每个委员会节点可以预先存储所述委员会的参考委员会版本,所述参考委员会版本为所述委员会中在最近一次节点共识成功的各个节点的节点信息,因此,在委员会进行共识时,委员会中的每个委员会节点可以根据参考委员会版本与其他成员进行共识,并收集其他成员的节点信息或向其他成员提供本委员会节点的节点信息。
75.接下来,结合图1所述,本技术的委员会节点实施委员会节点共识的方法可以包括以下步骤:
76.步骤s110、当接收到交易处理请求指令时,从预设的委员会状态监控模块中获取目标委员会版本。
77.具体的,交易处理请求指令可以是请求方基于需区块链处理的事件向区块链发出请求,并由区块链向各个委员会节点下达的指令,需区块链处理的事件例如交易请求,区块链在每一笔交易执行前,需要委员会中的各个委员会节点进行一次共识,在共识成功后方可执行该交易。
78.其中,所述目标委员会版本可以为所述委员会状态监控模块实时监控所述参考委员会版本中的各个节点的状态,更新初始目标委员会版本得到的,所述初始目标委员会版本可以为所述委员会状态监控模块,基于所述委员会在其最近一次节点共识的各个节点的节点信息生成的。
79.步骤s120、判断所述参考委员会版本与所述目标委员会版本是否相同,若否,则执行步骤s130。
80.可以理解的是,接收到交易处理请求指令的时间,与参考委员会版本生成的时间(上一次委员会中的各个委员会节点成功共识的时间)已相距一段时间,在这段时间内,委员会中的部分节点可能由于状态的改变,而使委员会状态监控模块对初始目标委员会版本更新,得到更新后的版本,进一步地,随着委员会中的节点的状态不断改变,委员会状态监控模块会不断更新版本,并最终得到目标委员会版本。此时,将最终得到的目标委员会版本与所述参考委员会版本相比以判断两版本是否相同,也即判断所组成委员会的各个委员会节点在这一段时间后是否发生变化,若所组成委员会的各个委员会节点在这一段时间后发
生了变化,则所述参考委员会版本与所述目标委员会版本是否相同的判断结果为否,执行步骤s130。
81.步骤s130、将所述委员会的参考委员会版本更新为所述目标委员会版本,以供所述目标委员会版本所对应的各个节点进行节点共识。
82.可以理解的是,每个委员会节点已预先存储了参考委员会版本,其目的是用于下一次或后续更多次的节点共识,当收到交易处理请求指令后需要根据参考委员会版本确定所需共识的委员会节点,而在当前所有有效的、能正常进行共识的委员会节点均被所述目标委员会版本所记录,因此可以将所述委员会的参考委员会版本更新为所述目标委员会版本,以供所述目标委员会版本所对应的各个节点进行节点共识。
83.本实施例提供的委员会节点的共识方法,通过接收到交易处理请求指令时,从预设的委员会状态监控模块中获取目标委员会版本,所述目标委员会版本为所述委员会状态监控模块实时监控所述参考委员会版本中的各个节点的状态,更新所述参考委员会版本得到的,判断所述参考委员会版本与所述目标委员会版本是否相同,若否,将所述委员会的参考委员会版本更新为所述目标委员会版本,以供所述目标委员会版本所对应的各个节点进行节点共识。由此可见,通过设计委员会状态监控模块,监控委员会中的各个节点的状态,及时更新目标委员会版本,并在委员会需要进行节点共识时,能够及时发现委员会从上次节点共识至当前的结构变化,保证了区块链共识的速度,提高了共识的成功率和效率。
84.考虑到在委员会中的各个委员会节点每次成功共识之后,可以表示其委员会中的各个委员会节点状态正常,暂时可以作为后续委员会共识的各个委员会节点,基于此,在本技术的一些实施例中,上述实施例提到的委员会节点共识的方法还可以包括存储目标委员会版本的过程,具体的,该过程可以包括:
85.在所述目标委员会版本所对应的各个节点达成共识之后,存储所述目标委员会版本。
86.具体的,在在所述目标委员会版本所对应的各个节点达成共识之后,本委员会节点可以存储所述目标委员会版本,以供下次或后续更多次进行节点共识,与此同时,区块链中的各个节点均可以存储所述目标委员会版本。
87.本实施例提供的委员会节点的共识方法,通过在所述目标委员会版本所对应的各个节点达成共识之后,存储所述目标委员会版本,使委员会节点后续进行节点共识时能够参考当前成功共识的各个节点。
88.在本技术的一些实施例中,考虑到在接收到交易处理请求指令的时间,与参考委员会版本生成的时间所相距的这段时间内,所组成委员会的各个委员会节点没有发生变化,那么可以无需更新参考委员会版本,可以直接根据参考委员会版本进行节点共识,具体为:
89.若所述参考委员会版本与所述目标委员会版本相同,根据所述参考委员会版本,与若干个所述其他委员会节点进行节点共识。
90.可以理解的是,在接收到交易处理请求指令的时间,与参考委员会版本生成的时间所相距的这段时间内,若各个委员会节点的状态均未发生过改变,或部分委员会节点的状态发生改变但最终的目标委员会版本中的各个委员会节点的节点信息,与参考委员会版本中的各个委员会节点的节点信息相同,则可以直接根据参考委员会版本,与若干个所述
其他委员会节点进行节点共识。
91.本实施例提供的委员会节点的共识方法,若所述参考委员会版本与所述目标委员会版本相同,根据所述参考委员会版本,与若干个所述其他委员会节点进行节点共识,减少了更新目标委员会版本的过程,提高了区块链节点共识的效率。
92.考虑到经过更新后得到的目标委员会版本与所述参考委员会版本不同,且参考委员会版本中的部分委员会节点可能已经变更为非委员会节点,基于此,在本技术的一些实施例中,上述实施例所提到的委员会节点共识的方法还可以包括以下过程:
93.若所述目标委员会版本所对应的各个节点中包含所述委员会节点,根据经更新后的参考委员会版本,与各个节点中除所述委员会节点的其他节点进行节点共识。
94.可以理解的是,当本地节点在当前仍为委员会中的委员会节点时,可以根据经更新后的参考委员会版本,与各个节点中除所述委员会节点的其他节点进行节点共识。那么,参考委员会版本中区别于目标委员会版本的节点,即已变更状态的非委员会节点则不参与节点共识。
95.在本技术的一些实施例中,上述实施例提到的目标委员会版本具备其对应的版本号,参考委员会版本也具备其对应的版本号,其中,目标委员会版本的版本号可以为在委员会状态监控模块每次更新目标委员会版本后,对更新前的目标委员会版本的版本号加1得到的,参考委员会版本的版本号可以为每次委员会成功共识后,对上一次委员会成功共识所存储的参考委员会版本的版本号加1得到的,基于此,本技术所提供的委员会节点实现委员会节点共识的方法还可以包括根比较参考委员会版本的版本号与目标委员会版本的版本号,并对交易处理请求指令的作出应对动作的过程,该过程可以包括以下三种情况:
96.第一种、若所述参考委员会版本的版本号等于所述目标委员会版本的版本号,根据所述参考委员会版本,与若干个所述其他委员会节点进行节点共识。
97.可以理解的是,参考委员会版本的版本号与目标委员会版本的版本号一致,可以表示参考委员会版本与目标委员会版本相同,因此可以根据所述参考委员会版本,与若干个所述其他委员会节点进行节点共识。
98.第二种、若所述参考委员会版本的版本号小于所述目标委员会版本的版本号,将所述委员会的参考委员会版本更新为所述目标委员会版本,以供所述目标委员会版本所对应的各个节点进行节点共识。
99.可以理解的是,若所述参考委员会版本的版本号小于所述目标委员会版本的版本号,可以表示目标委员会版本已被更新过,更新后的目标委员会版本与参考委员会版本不一致,因此可以将所述委员会的参考委员会版本更新为所述目标委员会版本。
100.第三种、若所述参考委员会版本的版本号大于所述目标委员会版本的版本号,拒绝所述交易处理请求指令。
101.可以理解的是,若所述参考委员会版本的版本号小于所述目标委员会版本的版本号,可以表示参考委员会版本的版本更新速度比委员会状态监控模块所监控的目标委员会版本的版本更新速度更快,从而可以确定委员会状态监控模块出现了故障导致目标委员会版本不再更新,因此考虑到委员会节点共识的安全性,可以拒绝所述交易处理请求指令。
102.接下来,从委员会状态监控模块的角度对委员会节点共识的方法进行介绍。
103.结合图2所述,本技术的委员会状态监控模块实施委员会节点共识的方法可以包
括以下步骤:
104.步骤s210、在委员会成功共识后,获取所述委员会中的各个节点的节点信息。
105.具体的,委员会状态监控模块可以在委员会成功共识后,可以获取所述委员会中的各个节点的节点信息,由于委员会成功共识,委员会中的各个委员会节点状态正常,委员会状态监控模块可以同步所监控得到状态正常的各个委员会节点构成的委员会版本。
106.步骤s220、根据所述委员会中各个节点的节点信息,生成目标委员会版本。
107.具体的,基于在委员会成功共识后,获取所述委员会中的各个节点的节点信息,而生成的目标委员会版本可以作为初始的目标委员会版本,后续所需发生更改的版本可以在初始的目标委员会版本上进行更新。
108.步骤s230、实时监控所述委员会中各个节点的状态,并在所述委员会中存在节点的状态发生异常时,更新所述目标委员会版本,得到新的目标委员会版本。
109.可以理解的是,当委员会中存在节点的状态发生异常时,则该状态异常的节点不能够参与节点共识,但每个委员会节点所存储的参考委员会版本中仍包含该节点的节点信息,并计划将该节点作为下一次节点共识的对象,基于此,委员会状态监控模块可以在该节点的状态发生异常时,更新所述目标委员会版本,以将更新后的目标委员会版本在下一次节点共识前与参考委员会版本校对。
110.步骤s240、当所述委员会中的各个节点接收到交易处理请求指令时,向所述委员会中的各个节点提供所述目标委员会版本,以当所述委员会的参考委员会版本与所述目标委员会版本不同时,区块链的每个节点将所述委员会的参考委员会版本更新为所述目标委员会版本,且,所述目标委员会版本所对应的各个节点进行节点共识。
111.可以理解的是,在委员会需要进行节点共识之前,需要确定委员会中的各个节点的状态是否正常,因此可以将参考委员会版本与最新的目标委员会版本进行校对,若参考委员会版本与最新的目标委员会版本不同,可以表明上一次节点共识成功的各个节点中存在节点的状态异常,因此区块链的每个节点将所述委员会的参考委员会版本更新为所述目标委员会版本,并使所述目标委员会版本所对应的各个节点进行节点共识。
112.本实施例提供的委员会节点的共识方法,通过委员会状态监控模块在委员会成功共识后,获取所述委员会中的各个节点的节点信息,根据所述委员会中各个节点的节点信息,生成目标委员会版本,实时监控所述委员会中各个节点的状态,并在所述委员会中存在节点的状态发生异常时,更新所述目标委员会版本,得到新的目标委员会版本,当所述委员会中的各个节点接收到交易处理请求指令时,向所述委员会中的各个节点提供所述目标委员会版本,以当所述委员会的参考委员会版本与所述目标委员会版本不同时,区块链的每个节点将所述委员会的参考委员会版本更新为所述目标委员会版本,且,所述目标委员会版本所对应的各个节点进行节点共识。可见,通过设计委员会状态监控模块,监控委员会中的各个节点的状态,及时更新目标委员会版本,并在委员会需要进行节点共识时,能够及时发现委员会从上次节点共识至当前的结构变化,保证了区块链共识的速度,提高了共识的成功率和效率。
113.在本技术的一些实施例中,上述实施例提到的目标委员会版本可以具备其对应的版本号,版本号的数值类型可以为整型数值,在此基础上,对上述实施例提到的、在所述委员会中存在节点的状态发生异常时,更新所述目标委员会版本,得到新的目标委员会版本
的过程进行介绍,该过程可以包括:
114.当所述委员会中存在节点的状态发生异常时,在所述目标委员会版本中删除状态异常的节点,得到删除状态异常的节点的更新后的目标委员会版本。
115.具体的,所述更新后的目标委员会版本的版本号,等于更新前的目标委员会版本的版本号与1相加的值。
116.示例如,在委员会状态监控模块生成了初始的目标委员会版本后,确定初始的目标委员会版本的版本号为100,监控到委员会中的节点状态出现异常,则更新初始的目标委员会版本得到更新后的目标委员会版本,并确定更新后的目标委员会版本的版本号为100+1=101。
117.进一步地,通过版本号对目标委员会版本进行标记,以供参考委员会版本和目标委员会版本能够按照版本号进行比较,并对交易处理请求指令的作出应对动作。
118.示例如,若参考委员会版本的版本号等于目标委员会版本的版本号,委员会节点可以根据参考委员会版本,与若干个其他委员会节点进行节点共识,若参考委员会版本的版本号小于目标委员会版本的版本号,委员会节点可以将委员会的参考委员会版本更新为目标委员会版本,以供目标委员会版本所对应的各个节点进行节点共识,若参考委员会版本的版本号大于目标委员会版本的版本号,委员会节点可以拒绝交易处理请求指令。
119.在本技术的一些实施例中,考虑到异常节点恢复正常后,可以重新加入委员会以进行节点共识,本技术所提及的委员会节点共识的方法还可以包括以下过程:
120.实时监控所述区块链中各个节点的状态,当所述区块链中状态异常的节点恢复正常状态时,更新所述目标委员会版本,得到新的目标委员会版本。
121.其中,目标委员会版本可以具备其对应的版本号,版本号的数值类型可以为整型数值。
122.在此基础上,当所述区块链中状态异常的节点恢复正常状态时,更新所述目标委员会版本,得到新的目标委员会版本的过程可以包括:
123.当所述区块链中状态异常的节点恢复正常状态时,在所述目标委员会版本中添加状态恢复正常的节点,得到添加状态恢复正常的节点的更新后的目标委员会版本,所述更新后的目标委员会版本的版本号,等于更新前的目标委员会版本的版本号与1相加的值。
124.下面对本技术实施例提供的实现委员会节点共识的装置进行描述,下文描述的实现委员会节点共识的装置与上文描述的实现委员会节点共识的方法可相互对应参照。
125.首先,结合图3,对应用于委员会节点的委员会节点共识的装置进行介绍,如图3所示,该委员会节点共识的装置可以包括:
126.目标委员会版本获取单元11,用于当接收到交易处理请求指令时,从预设的委员会状态监控模块中获取目标委员会版本,所述目标委员会版本为所述委员会状态监控模块实时监控所述参考委员会版本中的各个节点的状态,更新初始目标委员会版本得到的,所述初始目标委员会版本为所述委员会状态监控模块,基于所述委员会在其最近一次节点共识的各个节点的节点信息生成的;
127.委员会版本比较单元12,用于判断所述参考委员会版本与所述目标委员会版本是否相同,若否,则执行委员会版本更新单元;
128.所述委员会版本更新单元13,用于将所述委员会的参考委员会版本更新为所述目
标委员会版本,以供所述目标委员会版本所对应的各个节点进行节点共识。
129.可选的,该装置还包括:
130.目标委员会版本存储单元,用于在所述目标委员会版本所对应的各个节点达成共识之后,存储所述目标委员会版本。
131.可选的,该装置还包括:
132.第一共识单元,用于若所述参考委员会版本与所述目标委员会版本相同,根据所述参考委员会版本,与若干个所述其他委员会节点进行节点共识。
133.可选的,该装置还包括:
134.第二共识单元,用于若所述目标委员会版本所对应的各个节点中包含所述委员会节点,根据经更新后的参考委员会版本,与各个节点中除所述委员会节点的其他节点进行节点共识。
135.可选的,所述目标委员会版本具备其对应的版本号,所述参考委员会版本具备其对应的版本号;
136.该装置还包括:
137.第一版本号比较单元,用于若所述参考委员会版本的版本号等于所述目标委员会版本的版本号,根据所述参考委员会版本,与若干个所述其他委员会节点进行节点共识;
138.第二版本号比较单元,用于若所述参考委员会版本的版本号小于所述目标委员会版本的版本号,将所述委员会的参考委员会版本更新为所述目标委员会版本,以供所述目标委员会版本所对应的各个节点进行节点共识;
139.第三版本号比较单元,用于若所述参考委员会版本的版本号大于所述目标委员会版本的版本号,拒绝所述交易处理请求指令。
140.进一步,结合图4,对应用于委员会状态监控模块的委员会节点共识的装置进行介绍,如图4所示,该委员会节点共识的装置可以包括:
141.节点信息获取单元21,用于在委员会成功共识后,获取所述委员会中的各个节点的节点信息;
142.目标委员会版本生成单元22,用于根据所述委员会中各个节点的节点信息,生成目标委员会版本;
143.目标委员会版本更新单元23,用于实时监控所述委员会中各个节点的状态,并在所述委员会中存在节点的状态发生异常时,更新所述目标委员会版本,得到新的目标委员会版本;
144.目标委员会版本提供单元24,用于当所述委员会中的各个节点接收到交易处理请求指令时,向所述委员会中的各个节点提供所述目标委员会版本,以当所述委员会的参考委员会版本与所述目标委员会版本不同时,区块链的每个节点将所述委员会的参考委员会版本更新为所述目标委员会版本,且,所述目标委员会版本所对应的各个节点进行节点共识。
145.可选的,所述目标委员会版本具备其对应的版本号;
146.所述目标委员会版本更新单元,包括:
147.异常节点删除单元,用于当所述委员会中存在节点的状态发生异常时,在所述目标委员会版本中删除状态异常的节点,得到删除状态异常的节点的更新后的目标委员会版
本,所述更新后的目标委员会版本的版本号,等于更新前的目标委员会版本的版本号与1相加的值。
148.可选的,该装置还包括:
149.节点恢复版本更新单元,用于实时监控所述区块链中各个节点的状态,当所述区块链中状态异常的节点恢复正常状态时,更新所述目标委员会版本,得到新的目标委员会版本。
150.可选的,所述目标委员会版本具备其对应的版本号;
151.所述节点恢复版本更新单元,包括:
152.恢复节点添加单元,用于当所述区块链中状态异常的节点恢复正常状态时,在所述目标委员会版本中添加状态恢复正常的节点,得到添加状态恢复正常的节点的更新后的目标委员会版本,所述更新后的目标委员会版本的版本号,等于更新前的目标委员会版本的版本号与1相加的值。
153.本技术实施例提供的委员会节点共识的装置可应用于委员会节点共识的设备,如委员会节点和委员会状态监控模块。可选的,图5示出了委员会节点共识的设备的硬件结构框图,参照图5,委员会节点共识的设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
154.在本技术实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
155.处理器1可能是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
156.存储器3可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
157.其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:实现前述委员会节点在委员会节点共识的方法汇总各个处理流程,或实现前述委员会状态监控模块在委员会节点共识的方法汇总各个处理流程。
158.本技术实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于实现前述委员会节点在委员会节点共识的方法汇总各个处理流程,或实现前述委员会状态监控模块在委员会节点共识的方法汇总各个处理流程。
159.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
160.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
161.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1