基于区块链网络的节点管理方法、装置、设备及存储介质转让专利

申请号 : CN202110329773.4

文献号 : CN112714196B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘攀

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请实施例公开了一种基于区块链网络的节点管理方法、装置、设备及存储介质,该基于区块链网络的节点管理方法包括:响应关于目标设备的节点注册请求,根据节点注册请求对目标设备进行共识处理;在目标设备通过共识处理后,获取索引参数,索引参数是根据共识委员会中的各个成员节点的节点信息确定的;按照索引分配策略,采用索引参数为目标设备分配第一索引值,并通知目标设备加入区块链网络,第一索引值处于不可用状态;在确定目标设备具有记账权限后,将第一索引值设置为可用状态,使得目标设备基于可用状态的第一索引值,作为共识委员会中的新成员节点参与区块链的记账处理。采用本申请实施例,可以对区块链网络中的共识委员会进行有效管理。

权利要求 :

1.一种基于区块链网络的节点管理方法,其特征在于,所述区块链网络包括共识委员会,所述共识委员会中包括一个或多个成员节点,每个成员节点均具有对区块链的记账权限;所述方法由所述共识委员会中的目标成员节点执行,所述方法包括:响应关于目标设备的节点注册请求,根据所述节点注册请求对所述目标设备进行共识处理;

在所述目标设备通过共识处理后,获取索引参数,所述索引参数是根据所述共识委员会中的各个成员节点的节点信息确定的;

按照索引分配策略,采用所述索引参数为所述目标设备分配第一索引值,并通知所述目标设备加入所述区块链网络,所述第一索引值处于不可用状态;

在确定所述目标设备具有记账权限后,将所述第一索引值设置为可用状态,使得所述目标设备基于所述可用状态的第一索引值,作为所述共识委员会中的新成员节点参与所述区块链的记账处理。

2.如权利要求1所述的方法,其特征在于,所述共识委员会中的任一成员节点的节点信息包括所述任一成员节点的索引值;所述节点注册请求包括治理合约的合约哈希,所述治理合约中包括全局索引的当前值,所述全局索引的当前值是根据所述各个成员节点的索引值确定的;

所述获取索引参数,包括:从所述合约哈希对应的治理合约中,获取所述全局索引的当前值,并将所述全局索引的当前值作为所述索引参数;

所述按照索引分配策略,采用所述索引参数为所述目标设备分配第一索引值,包括:将所述索引参数作为所述第一索引值,分配给所述目标设备。

3.如权利要求2所述的方法,其特征在于,所述全局索引的当前值等于:对基于所述各个成员节点的索引值所确定的最大索引值,进行原子自增处理后的值;

其中,所述最大索引值是从所述各个成员节点的索引值和其他节点的索引值中确定的;所述共识委员会是从所述区块链网络中的多个共识节点中选举得到的,所述其他节点包括:所述多个共识节点中除所述共识委员会以外的各个共识节点,或者所述区块链网络中除所述共识委员会以外的各个节点。

4.如权利要求2或3所述的方法,其特征在于,所述将所述索引参数作为所述第一索引值,分配给所述目标设备之后,所述方法还包括:在所述治理合约中对所述全局索引的当前值进行原子自增处理,以更新所述全局索引的当前值;

将更新后的当前值记录至所述区块链中,所述更新后的当前值用于为下一个加入所述区块链网络的设备确定索引值。

5.如权利要求2或3所述的方法,其特征在于,所述从所述合约哈希对应的治理合约中,获取所述全局索引的当前值之前,所述方法还包括:若接收到关于所述治理合约的部署请求,则获取所述治理合约的签名信息,并对所述签名信息进行信息校验,所述信息校验包括以下至少一项:有效性校验和格式校验;

若通过所述信息校验,则调用虚拟机将所述治理合约的合约哈希和所述治理合约的合约内容关联写入所述区块链网络的智能合约,以更新所述智能合约;

对更新后的智能合约进行共识处理,并在所述更新后的智能合约通过共识处理后,将所述更新后的智能合约存储至所述区块链。

6.如权利要求2所述的方法,其特征在于,所述方法还包括:若接收到关于所述目标设备的节点退出请求,则解析所述节点退出请求,得到所述合约哈希;

获取所述合约哈希对应的治理合约,所述治理合约中还包括节点退出策略;

按照所述节点退出策略,将所述目标设备从所述区块链网络中移除。

7.如权利要求6所述的方法,其特征在于,在所述目标设备被分配所述第一索引值后,所述目标设备的节点标识被添加至所述治理合约管理的节点列表中;所述按照所述节点退出策略,将所述目标设备从所述区块链网络中移除,包括:获取所述治理合约所管理的节点列表,所述节点列表包括一个或多个节点的节点标识;

在所述节点列表中删除所述目标设备的节点标识,以及删除所述第一索引值,以将所述目标设备从所述区块链网络中移除。

8.如权利要求1所述的方法,其特征在于,所述共识委员会是从所述区块链网络中的多个共识节点中选举得到的,所述共识委员会中的任一成员节点的节点信息包括所述任一成员节点的节点标识,所述目标设备通过共识处理后成为了所述区块链网络中的共识节点;

所述获取索引参数,包括:对所述区块链网络中的各个共识节点的节点标识进行按序排列,得到所述目标设备的排列位置信息,并将所述排列位置信息作为所述索引参数;

所述按照索引分配策略,采用所述索引参数为所述目标设备分配第一索引值,包括:根据所述排列位置信息确定位于所述目标设备之前的共识节点的节点数,根据所述节点数计算第一索引值,并将计算得到的所述第一索引值分配给所述目标设备。

9.如权利要求1所述的方法,其特征在于,所述目标成员节点具有第二索引值,所述第二索引值处于可用状态;所述方法还包括:若检测到针对所述共识委员会的更新事件,则获取新的委员会信息,所述新的委员会信息包括:更新后的共识委员会中的各个成员节点的索引值;

采用所述目标成员节点的所述第二索引值,对所述新的委员会信息进行索引值命中处理;

若命中失败,则将所述第二索引值设置为不可用状态,以指示所述目标成员节点不属于所述更新后的共识委员会。

10.如权利要求1所述的方法,其特征在于,所述方法还包括:获取关于所述目标设备的共识委员申请请求,所述共识委员申请请求用于请求将所述目标设备加入至所述共识委员会中,所述共识委员申请请求包括所述目标设备的共识委员评估信息;

根据所述共识委员评估信息检测所述目标设备的记账资格;

若确定所述目标设备具有所述记账资格,则确定所述目标设备具有所述记账权限。

11.如权利要求1所述的方法,其特征在于,所述节点注册请求包括:所述目标设备的节点类型以及所述节点类型对应的设备评估信息,所述节点注册请求用于指示所述目标设备欲成为所述节点类型下的节点;

所述根据所述节点注册请求对所述目标设备进行共识处理,包括:获取所述节点类型对应的节点评估标准;

根据所述节点评估标准和所述设备评估信息,对所述目标设备进行能力检测,得到所述目标设备的能力检测结果;

根据所述能力检测结果,对所述目标设备进行共识处理。

12.如权利要求11所述的方法,其特征在于,所述节点注册请求还包括所述目标设备的节点标识;所述方法还包括:

获取所述区块链网络的节点列表和黑名单列表,所述节点列表包括一个或多个节点的节点标识;

在所述节点列表中查找所述目标设备的节点标识,以及在所述黑名单列表中查找所述目标设备的节点标识;

若在所述节点列表和所述黑名单列表中均查找失败,则执行获取所述节点类型对应的节点评估标准的步骤。

13.一种基于区块链网络的节点管理装置,其特征在于,所述区块链网络包括共识委员会,所述共识委员会中包括一个或多个成员节点,每个成员节点均具有对区块链的记账权限;所述装置设置于所述共识委员会的目标成员节点中,所述装置包括:处理单元,用于响应关于目标设备的节点注册请求,根据所述节点注册请求对所述目标设备进行共识处理;

获取单元,用于在所述目标设备通过共识处理后,获取索引参数,所述索引参数是根据所述共识委员会中的各个成员节点的节点信息确定的;

所述处理单元,还用于按照索引分配策略,采用所述索引参数为所述目标设备分配第一索引值,并通知所述目标设备加入所述区块链网络,所述第一索引值处于不可用状态;以及,在确定所述目标设备具有记账权限后,将所述第一索引值设置为可用状态,使得所述目标设备基于所述可用状态的第一索引值,作为所述共识委员会中的新成员节点参与所述区块链的记账处理。

14.一种基于区块链网络的节点管理设备,其特征在于,所述区块链网络包括共识委员会,所述共识委员会中包括一个或多个成员节点,每个成员节点均具有对区块链的记账权限;所述设备是所述共识委员会中的目标成员节点,所述设备包括:处理器,适于实现计算机程序;以及,计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1至12任一项所述的基于区块链网络的节点管理方法。

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,所述计算机程序适于由处理器加载并执行如权利要求1至12任一项所述的基于区块链网络的节点管理方法。

说明书 :

基于区块链网络的节点管理方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及计算机技术领域,具体涉及区块链技术领域,尤其涉及一种基于区块链网络的节点管理方法、装置、设备及存储介质。

背景技术

[0002] 区块链网络中的共识委员会包括一个或多个成员节点,共识委员会中的每个成员节点均具有对区块链的记账权限,所谓记账权限是指提案区块以及对提案的区块进行共识
投票的权限。对共识委员会进行管理,能够促进对区块链的记账权限进行治理,有利于区块
链网络提供稳定的服务。目前,区块链网络中不支持对共识委员会进行管理,因此如何对共
识委员会进行有效管理成为当前研究的热点话题。

发明内容

[0003] 本申请实施例提供了一种基于区块链网络的节点管理方法、装置、设备及存储介质,可以对区块链网络中的共识委员会进行有效管理。
[0004] 一方面,本申请实施例提供一种基于区块链网络的节点管理方法,区块链网络包括共识委员会,共识委员会中包括一个或多个成员节点,每个成员节点均具有对区块链的
记账权限;该方法由共识委员会中的目标成员节点执行,该方法包括:
[0005] 响应关于目标设备的节点注册请求,根据节点注册请求对目标设备进行共识处理;
[0006] 在目标设备通过共识处理后,获取索引参数,索引参数是根据共识委员会中的各个成员节点的节点信息确定的;
[0007] 按照索引分配策略,采用索引参数为目标设备分配第一索引值,并通知目标设备加入区块链网络,第一索引值处于不可用状态;
[0008] 在确定目标设备具有记账权限后,将第一索引值设置为可用状态,使得目标设备基于可用状态的第一索引值,作为共识委员会中的新成员节点参与区块链的记账处理。
[0009] 另一方面,本申请实施例提供一种基于区块链网络的节点管理装置,区块链网络包括共识委员会,共识委员会中包括一个或多个成员节点,每个成员节点均具有对区块链
的记账权限;该装置设置于共识委员会中的目标成员节点中该装置包括:
[0010] 处理单元,用于响应关于目标设备的节点注册请求,根据节点注册请求对目标设备进行共识处理;
[0011] 获取单元,用于在目标设备通过共识处理后,获取索引参数,索引参数是根据共识委员会中的各个成员节点的节点信息确定的;
[0012] 处理单元,还用于按照索引分配策略,采用索引参数为目标设备分配第一索引值,并通知目标设备加入区块链网络,第一索引值处于不可用状态;以及,在确定目标设备具有
记账权限后,将第一索引值设置为可用状态,使得目标设备基于可用状态的第一索引值,作
为共识委员会中的新成员节点参与区块链的记账处理。
[0013] 在一种实现方式中,共识委员会中的任一成员节点的节点信息包括任一成员节点的索引值;节点注册请求包括治理合约的合约哈希,治理合约中包括全局索引的当前值,全
局索引的当前值是根据各个成员节点的索引值确定的;
[0014] 获取单元,用于获取索引参数时,具体用于执行如下步骤:从合约哈希对应的治理合约中,获取全局索引的当前值,并将全局索引的当前值作为索引参数;
[0015] 处理单元,用于按照索引分配策略,采用索引参数为目标设备分配第一索引值时,具体用于执行如下步骤:将索引参数作为第一索引值,分配给目标设备。
[0016] 在一种实现方式中,全局索引的当前值等于:对基于各个成员节点的索引值所确定的最大索引值,进行原子自增处理后的值;
[0017] 其中,最大索引值是从各个成员节点的索引值和其他节点的索引值中确定的;共识委员会是从区块链网络中的多个共识节点中选举得到的,其他节点包括:多个共识节点
中除共识委员会以外的各个共识节点,或者区块链网络中除共识委员会以外的各个节点。
[0018] 在一种实现方式中,处理单元,用于将全局索引值作为第一索引值,分配给目标设备之后,还用于执行如下步骤:
[0019] 在治理合约中对全局索引的当前值进行原子自增处理,以更新全局索引的当前值;
[0020] 将更新后的当前值记录至区块链中,更新后的当前值用于为下一个加入区块链网络的设备确定索引值。
[0021] 在一种实现方式中,获取单元,用于从合约哈希对应的治理合约中,获取全局索引的当前值之前,还用于执行如下步骤:
[0022] 若接收到关于治理合约的部署请求,则获取治理合约的签名信息,并对签名信息进行信息校验,信息校验包括以下至少一项:有效性校验和格式校验;
[0023] 若通过信息校验,则调用虚拟机将治理合约的合约哈希和所述治理合约的合约内容关联写入区块链网络的智能合约,以更新智能合约;
[0024] 对更新后的智能合约进行共识处理,并在更新后的智能合约通过共识处理后,将更新后的智能合约存储至区块链。
[0025] 在一种实现方式中,获取单元,还用于执行如下步骤:
[0026] 若接收到关于目标设备的节点退出请求,则解析节点退出请求,得到合约哈希;
[0027] 获取合约哈希对应的治理合约,治理合约中还包括节点退出策略;
[0028] 按照节点退出策略,将目标设备从区块链网络中移除。
[0029] 在一种实现方式中,在目标设备被分配第一索引值后,目标设备的节点标识被添加至治理合约管理的节点列表中;获取单元,用于按照节点退出策略,将目标设备从区块链
网络中移除时,具体用于执行如下步骤:
[0030] 获取治理合约所管理的节点列表,节点列表包括一个或多个节点的节点标识;
[0031] 在节点列表中删除目标设备的节点标识,以及删除第一索引值,以将目标设备从区块链网络中移除。
[0032] 在一种实现方式中,共识委员会是从区块链网络中的多个共识节点中选举得到的,共识委员会中的任一成员节点的节点信息包括任一成员节点的节点标识,目标设备通
过共识处理后成为了区块链网络中的共识节点;
[0033] 获取单元,用于获取索引参数时,具体用于执行如下步骤:对区块链网络中的各个共识节点的节点标识进行按序排列,得到目标设备的排列位置信息;并将排列位置信息作
为索引参数;
[0034] 处理单元,用于按照索引分配策略,采用索引参数为目标设备分配第一索引值时,具体用于执行如下步骤:根据排列位置信息确定位于目标设备之前的共识节点的节点数,
根据节点数计算第一索引值,并将计算得到的第一索引值分配给目标设备。
[0035] 在一种实现方式中,目标成员节点具有第二索引值,第二索引值处于可用状态;处理单元,还用于执行如下步骤:
[0036] 若检测到针对共识委员会的更新事件,则获取新的委员会信息,新的委员会信息包括:更新后的共识委员会中的各个成员节点的索引值;
[0037] 采用目标成员节点的第二索引值,对新的委员会信息进行索引值命中处理;
[0038] 若命中失败,则将第二索引值设置为不可用状态,以指示目标成员节点不属于更新后的共识委员会。
[0039] 在一种实现方式中,处理单元,还用于执行如下步骤:
[0040] 获取关于目标设备的共识委员申请请求,共识委员申请请求用于请求将目标设备加入至共识委员会中,共识委员申请请求包括目标设备的共识委员评估信息;
[0041] 根据共识委员评估信息检测目标设备的记账资格;
[0042] 若确定目标设备具有记账资格,则确定目标设备具有记账权限。
[0043] 在一种实现方式中,共识委员会从区块链网络中的多个共识节点中选举得到的;节点注册请求包括:目标设备的节点类型以及节点类型对应的设备评估信息,节点注册请
求用于指示目标设备欲成为所述节点类型下的节点;处理单元,用于根据节点注册请求对
目标设备进行共识处理时,具体用于执行如下步骤:
[0044] 获取节点类型对应的节点评估标准;
[0045] 根据节点评估标准和设备评估信息,对目标设备进行能力检测,得到目标设备的能力检测结果;
[0046] 根据能力检测结果,对目标设备进行共识处理。
[0047] 在一种实现方式中,节点注册请求还包括目标设备的节点标识;处理单元,还用于执行如下步骤:
[0048] 获取区块链网络的节点列表和黑名单列表,节点列表包括一个或多个节点的节点标识;
[0049] 在节点列表中查找目标设备的节点标识,以及在黑名单列表中查找目标设备的节点标识;
[0050] 若在节点列表和黑名单列表中均查找失败,则执行获取节点类型对应的节点评估标准的步骤。
[0051] 另一方面,本申请实施例提供一种基于区块链网络的节点管理设备,区块链网络包括共识委员会,共识委员会中包括一个或多个成员节点,每个成员节点均具有对区块链
的记账权限;该设备是共识委员会中的目标成员节点,该设备包括:
[0052] 处理器,适于实现计算机程序;
[0053] 以及,计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序适于由处理器加载并执行上述的基于区块链网络的节点管理方法。
[0054] 另一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备
执行上述的基于区块链网络的节点管理方法。
[0055] 另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算
机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使
得该计算机设备执行上述的基于区块链网络的节点管理方法。
[0056] 本申请实施例中,在欲加入区块链网络的目标设备通过共识处理后,可以采用获取到的索引参数为目标设备分配第一索引值,并通知目标设备加入区块链网络,分配的第
一索引值处于不可用状态;不可用状态的第一索引值指示目标设备不属于区块链网络的共
识委员会;在确定目标设备具有记账权限后,可以将第一索引值设置为可用状态,使得目标
设备基于可用状态的第一索引值,作为共识委员会中的新成员节点参与区块链的记账处
理;由此可见,为加入区块链网络的设备分配索引值后,通过索引值的不同状态(包括可用
状态或不可用状态),可以对区块链网络的共识委员会进行有效管理,从而对区块链的记账
权限进行有效治理。

附图说明

[0057] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获
得其他的附图。
[0058] 图1A是本申请实施例提供的一种数据共享系统的架构示意图;
[0059] 图1B是本申请实施例提供的一种区块链的结构示意图;
[0060] 图1C是本申请实施例提供的一种区块生成过程的流程示意图;
[0061] 图2是本申请实施例提供的一种区块链网络的架构示意图;
[0062] 图3是本申请实施例提供的一种基于区块链网络的节点管理方法的流程示意图;
[0063] 图4是本申请实施例提供的另一种基于区块链网络的节点管理方法的流程示意图;
[0064] 图5是本申请实施例提供的另一种基于区块链网络的节点管理方法的流程示意图;
[0065] 图6是本申请实施例提供的一种基于区块链网络的节点管理装置的结构示意图;
[0066] 图7是本申请实施例提供的一种基于区块链网络的节点管理设备的结构示意图。

具体实施方式

[0067] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于
本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他
实施例,都属于本申请保护的范围。
[0068] 为了能够更清楚地理解本申请实施例,下面对本申请实施例涉及的区块链网络以及区块链技术进行介绍:
[0069] 参见图1A所示的数据共享系统(或称为区块链网络),图1A是本申请实施例提供的一种数据共享系统的架构示意图,数据共享系统10是指用于进行节点与节点之间数据共享
的系统,该数据共享系统中可以包括多个节点101,多个节点101可以是指数据共享系统中
各个客户端。每个节点101在进行正常工作时可以接收到输入信息,并基于接收到的输入信
息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系
统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。
例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其他节点便根
据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共
享系统中全部节点上存储的数据均一致。
[0070] 对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其他节点的节点标识,以便后续根据其他节
点的节点标识,将生成的区块广播至数据共享系统中的其他节点。每个节点中可维护一个
如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,
节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用
于标识该节点的信息,表1中仅以IP地址为例进行说明:
[0071] 表1
[0072] 节点名称 节点标识节点1 117.114.151.174
节点2 117.116.189.145
… …
节点N 119.123.789.258
[0073] 数据共享系统中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1B,图1B是本申请实施例提供的一种区块链的结构示意图,区块链由多个区块组成,
创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度
值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包
括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征
值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与
父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
[0074] 在生成区块链中的各个区块时,参见图1C,图1C是本申请实施例提供的一种区块生成过程的流程示意图,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完
成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更
新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得
计算得到的特征值可以满足下述公式:
[0075] SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))
[0076] 其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输
入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定
值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值
可以根据nbits确定得到。
[0077] 这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其他节点的节点标
识,将新生成的区块分别发送给其所在的数据共享系统中的其他节点,由其他节点对新生
成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
[0078] 区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法
相关联产生的数据块(即通过图1C所示的流程生成的区块),每一个数据块中包含了一批次
网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
[0079] 本申请实施例提供一种基于区块链网络的节点管理方案,该基于区块链网络的节点管理方案引入索引值以及索引值所处的状态,为加入至区块链网络中的设备分配索引
值,并通过设置索引值的不同状态(包括可用状态或不可用状态),对区块链网络中的共识
委员会进行有效管理。可用状态的索引值指示该索引值对应的设备属于共识委员会,不可
用状态的索引值指示该索引值对应的设备不属于共识委员会;并且为每个设备分配的索引
值在区块链网络中是唯一存在的,也就是说,不同的设备不可能具有相同的索引值,保证共
识委员会管理过程的准确性。
[0080] 共识委员会中包括一个或多个成员节点,共识委员会中的每个成员节点均具有对区块链的记账权限;对共识委员会进行有效管理,有利于对区块链的记账权限进行治理,从
而保证区块链网络能够提供稳定的服务。所谓记账权限是指提案区块以及对提案的区块进
行共识投票的权限;提案区块可以理解为将交易数据打包成为区块,并将打包的区块发布
至区块链网络中进行共识投票的过程;共识投票也可以称为共识处理,是指采用共识机制
对区块进行校验的过程;共识机制可以包括但不限于以下至少一种:工作量证明(Proof of 
Work,PoW)机制、权益证明(Proof of Stake,PoS)机制、股份授权证明(Delegated Proof 
of Stake,DPoS)机制、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)机
制等等。
[0081] 为了更加清楚地理解本申请实施例提供的基于区块链网络的节点管理方案,下面对本申请实施例适用的区块链网络进行介绍,本申请实施例适用的区块链网络可参见如下
图2:
[0082] 图2是本申请实施例提供的一种区块链网络的架构示意图,如图2所示,区块链网络20由共识节点和非共识节点组成,图2所示的灰色圆表示区块链网络中的共识节点,白色
圆表示区块链网络中的非共识节点;区块链网络中的非共识节点可以包括但不限于以下至
少一种:路由节点、服务节点等等;路由节点用于支持区块链网络中的各个节点之间的通
信,服务节点用于提供区块链服务(例如执法存证服务、商品溯源服务等等)。需要说明的
是,图2所示的区块链网络仅用于示例,在实际场景中,区块链网络中共识节点的数量和非
共识节点的数量可以根据实际需求设定。
[0083] 区块链网络20包括共识委员会201,共识委员会201中包括一个或多个成员节点;共识委员会201是按照选举规则从区块链网络20中的多个共识节点中选举得到的,共识节
点具备对成员节点提案的区块进行共识投票的权限;选举规则可以包括:共识委员会成员
数量、共识委员会任期、共识委员会任期切换周期、共识委员会选举算法等等。
[0084] 本申请实施例提供的基于区块链网络的节点管理方案由共识委员会中的目标成员节点执行,目标成员节点可以是共识委员会中的任一个成员节点,或者目标成员节点也
可以是共识会员会中指定的某一个节点,例如目标成员节点是共识委员会中业务能力最强
(例如执行的历史业务数量最多)的节点。区块链网络中的各个节点可以是终端或服务器;
终端可以包括智能手机、平板电脑、笔记本电脑、台式计算机、车载设备、智能音箱、智能手
表、智能可穿戴设备等,但并不局限于此;服务器可以是独立的物理服务器,也可以是多个
物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器,本
申请实施例在此不作限制。区块链网络中的各个节点之间可以通过无线通信方式或有线通
信方式进行直接或间接地连接。
[0085] 可以理解的是,本申请实施例描述的区块链网络是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人
员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类
似的技术问题,同样适用。
[0086] 结合图2所示的区块链网络20,下面对本申请实施例提供的基于区块链网络的节点管理方案进行介绍。图3是本申请实施例提供的一种基于区块链网络的节点管理方法的
流程示意图,区块链网络包括共识委员会,共识委员会中包括一个或多个成员节点,每个成
员节点均具有对区块链的记账权限,该基于区块链网络的节点管理方法由共识委员会中的
目标成员节点执行;该基于区块链网络的节点管理方法可以包括以下步骤S301至步骤
S304:
[0087] S301,响应关于目标设备的节点注册请求,根据节点注册请求对目标设备进行共识处理。
[0088] 在步骤S301之前,目标成员节点获取节点注册请求的签名信息,并对节点注册请求的签名信息进行信息校验,在节点注册请求的签名信息通过信息校验之后,从节点注册
请求的签名信息中解析出节点注册请求;信息校验可以包括以下至少一项:有效性校验、格
式校验;节点注册请求用于请求将目标设备加入至区块链网络中。
[0089] 在一种实现方式中,节点注册请求的签名信息可以是由治理委员会发送至目标成员节点的。治理委员会获取欲加入区块链网络的目标设备的节点注册信息;目标设备的节
点注册信息可以包括但不限于以下至少一种:目标设备的节点标识、目标设备欲加入区块
链网络的节点类型以及目标设备的附加信息;目标设备的节点标识可以包括:目标设备的
CA(Certificate Authority,证书颁发机构)证书的证书编号、目标设备的IP地址等等;目
标设备的附加信息可以包括目标设备对应机构(例如公司或企业等等)的机构信息(例如机
构地址、机构统一社会信用代码、纳税人识别号等等)。治理委员会获取到目标设备的节点
注册信息之后,对目标设备的节点注册信息进行校验;例如对目标设备的CA证书的证书编
号进行校验,对目标设备对应机构的机构信息进行校验等等;在目标设备的节点注册信息
校验通过后,治理委员会根据目标设备的节点注册信息生成节点注册请求,对节点注册请
求进行加密(例如采用治理委员会的私钥对节点注册请求进行加密)得到节点注册请求的
签名信息,并将节点注册请求的签名信息发送至目标成员节点。
[0090] 节点注册请求的签名信息由治理委员会发送至目标成员节点可以包括以下两种情况:①治理委员会包括一个或多个治理节点,治理委员会是从区块链网络中选举得到的;
在治理委员会中的目标治理节点对目标设备的节点注册信息校验通过后,根据目标设备的
节点注册信息生成节点注册请求,并将节点注册请求的签名信息(例如采用目标治理节点
的私钥对节点注册请求进行加密,得到节点注册请求的签名信息)发送至目标成员节点;目
标治理节点可以是治理委员会中的任一个治理节点,目标治理节点也可以是治理委员会中
指定的一个治理节点。②治理委员会由区块链网络之外的一些治理机构组成;在目标治理
机构对应的治理设备对目标设备的节点注册信息校验通过后,根据目标设备的节点注册信
息生成节点注册请求,并将节点注册请求的签名信息(例如采用治理设备的私钥对节点注
册请求进行加密,得到节点注册请求的签名信息)发送至目标成员节点;目标治理机构可以
是治理委员会中的任一个治理机构,目标治理机构也可以是治理委员会中指定的一个治理
机构。
[0091] 在另一种实现方式中,节点注册请求的签名信息可以是由目标设备发送至目标成员节点的。目标设备根据目标设备的节点注册信息生成节点注册请求,对节点注册请求进
行加密(例如采用目标设备的私钥对节点注册请求进行加密)得到节点注册请求的签名信
息,并将节点注册请求的签名信息发送至目标成员节点。
[0092] 需要说明的是,目标成员节点对节点注册请求的签名信息进行有效性校验可以包括:采用治理委员会的公钥(例如目标治理节点的公钥或目标治理机构对应的治理设备的
公钥等等)对节点注册请求的签名信息进行有效性校验,公钥解密成功则表示有效性校验
通过,公钥解密失败则表示有效性校验未通过;或者,采用目标设备的公钥对节点注册请求
的签名信息进行有效性校验,公钥解密成功则表示有效性校验通过,公钥解密失败则表示
有效性校验未通过;或者,节点注册请求的签名信息包括节点注册请求的签名信息的生成
时间戳,获取目标成员节点接收到节点注册请求的签名信息的接收时间戳,若接收时间戳
与生成时间戳之间的差值小于第一时间阈值,则表示有效性校验通过,若接收时间戳与生
成时间戳之间的差值大于或等于第一时间阈值,则表示有效性校验未通过。目标成员节点
对节点注册请求的签名信息进行格式校验可以是指:对节点注册请求的签名信息的格式进
行检查,若格式为第一格式(例如签名信息中包括某个特定字符,签名信息中由字母或数字
组成等等)则格式校验通过,若格式不是第一格式则格式校验未通过。
[0093] 步骤S301中,节点注册请求可以包括目标设备的欲加入至区块链网络中的节点类型以及节点类型对应的设备评估信息,节点类型可以包括共识类型或非共识类型。设备评
估信息可以包括目标设备的信用评估得分,信用评估得分可以用于指示目标设备的信用
度;目标设备的信用评估得分越高,表明目标设备的信用度越高,则目标设备被区块链网络
信任的可能性越高;目标设备的信用评估得分越低,表明目标设备的信用度越低,则目标设
备被区块链网络信任的可能性越低。在节点注册请求的签名信息由治理委员会发送至目标
成员节点的情况中,目标设备的设备评估信息可以是治理委员会对目标设备进行信用评估
后生成的,治理委员会根据目标设备的节点注册信息和目标设备的设备评估信息生成节点
注册请求。通过这种方式,治理委员会参与目标设备的信用评估,使得目标设备的共识过程
更加公正。在节点注册请求的签名信息由目标设备发送至目标成员节点的情况中,目标设
备的设备评估信息是目标设备请求信用评估机构对目标设备进行信用评估后生成的,目标
设备根据目标设备的节点注册信息和目标设备的设备评估信息生成节点注册请求。
[0094] 根据节点注册请求对目标设备进行共识处理可以包括:①获取节点类型对应的节点评估标准;共识类型对应的节点评估标准为第一信用阈值,非共识类型对应的节点评估
标准为第二信用阈值,第一信用阈值高于第二信用阈值,表明区块链网络对共识节点的信
用度的要求高于对非共识节点的信用度的要求。②根据节点评估标准和设备评估信息,对
目标设备进行能力检测,得到目标设备的能力检测结果。具体地,若节点类型为共识类型,
则采用第一信用阈值对目标设备的信用评估得分进行能力检测;若目标设备的信用评估得
分大于第一信用阈值,则生成检测成功的能力检测结果;若目标设备的信用评估得分小于
或等于第一信用阈值,则生成检测失败的能力检测结果。若节点类型为非共识类型,则采用
第二信用阈值对目标设备的信用评估得分进行能力检测;若目标设备的信用评估得分大于
第二信用阈值,则生成检测成功的能力检测结果;若目标设备的信用评估得分小于或等于
第二信用阈值,则生成检测失败的能力检测结果。③根据能力检测结果,对所述目标设备进
行共识处理。此处共识处理是指:根据能力检测结果生成区块,并将生成的区块上传至区块
链中,区块链网络中的各个共识节点从区块链中获取包括能力检测结果的区块;若各个共
识节点中对能力检测结果表示认同的共识节点的数量大于或等于共识数量阈值(例如共识
数量阈值为共识节点总数的三分之二),则表示能力检测结果通过共识处理;若各个共识节
点中对能力检测结果表示认同的共识节点的数量小于共识数量阈值,则表示能力检测结果
未通过共识处理。当目标设备欲加入区块链网络中的节点类型为共识类型时,若检测成功
的能力检测结果通过共识处理,则允许目标设备成为区块链网络中的共识节点。当目标设
备欲加入区块链网络中的节点类型为非共识类型时,若检测成功的能力检测结果通过共识
处理,则允许目标设备成为区块链网络中的非共识节点。
[0095] 节点注册请求还可以包括目标设备的节点标识,在对目标设备进行能力检测之前,还可以获取区块链网络的节点列表和黑名单列表,节点列表包括属于区块链网络的一
个或多个节点的节点标识;在节点列表中查找目标设备的节点标识,即检查目标设备是否
已加入至区块链网络中,以及在黑名单列表中查找目标设备的节点标识,即判断目标设备
是否为不允许加入至区块链网络中的设备;若在节点列表和黑名单列表中均查找失败,即
目标设备未加入至区块链网络中,且目标设备不是不允许加入至区块链网络中的设备,则
进一步对目标设备进行能力检测。
[0096] S302,在目标设备通过共识处理后,获取索引参数。
[0097] S303,按照索引分配策略,采用索引参数为目标设备分配第一索引值,并通知目标设备加入区块链网络。
[0098] 步骤S302至步骤S303中,在目标设备通过共识处理之后,可以获取索引参数,并按照索引分配策略为目标设备分配第一索引值,并通知目标设备加入区块链网络中;此时第
一索引值处于不可用状态。其中,为目标设备分配第一索引值可以是指:生成目标设备的对
象实例,将目标设备的节点标识(例如IP地址、CA证书的证书编号等等)、目标设备的节点类
型、目标设备的附加信息以及第一索引值一并分配给目标设备的对象实例。索引参数是根
据共识委员会中的各个成员节点的节点信息确定的。
[0099] 在一种实现方式中,索引分配策略包括治理合约分配策略,此时共识委员会中任一成员节点的节点信息包括该任一成员节点的索引值。具体来说,可以在区块链网络中部
署一个治理合约,治理合约包括区块链网络的治理相关信息,治理相关信息可以包括:区块
链网络中的节点数量、区块链网络的节点列表、共识委员会成员数量、共识委员会任期、共
识委员会任期切换周期、共识委员会的选举规则以及全局索引的当前值等等;区块链网络
的节点列表包括区块链网络中的各个节点的节点标识;全局索引的当前值是根据各个成员
节点的索引值确定的。治理合约分配策略是指:将治理合约中的全局索引的当前值作为索
引参数,将索引参数作为第一索引值,分配给目标设备的策略。治理合约中的全局索引单调
递增,全局索引的初始值为0;采用治理合约中的全局索引的当前值进行索引值分配之后,
可以对全局索引的当前值进行更新,并将更新后的全局索引的当前值记录至区块链中,更
新后的全局索引的当前值用于为下一个加入区块链网络的设备确定索引值,通过这种方
式,保证分配的索引值在区块链网络中是唯一存在的,能够准确地对区块链网络中的共识
委员会进行管理。此实现方式中治理合约的部署过程、第一索引值的确定过程、以及全局索
引的当前值的更新过程具体可以参见下述图4所示实施例的描述。
[0100] 在另一种实现方式中,索引分配策略包括节点标识排序策略,节点标识排序策略适用于目标设备已成为区块链网络中的共识节点的情况,此时共识委员会中任一成员节点
的节点信息包括该任一成员节点的节点标识。具体来说,目标成员节点的索引分配组件获
取共识列表,共识列表中包括各个共识节点的节点标识;索引分配组件对共识列表中的各
个共识节点的节点标识进行按序排列,得到排序后的共识列表;索引分配组件按照排序后
的共识列表中的各个共识节点的节点标识的排列顺序,将一组单调递增的数值按序分配各
个共识节点,实现共识节点的节点标识与索引值之间的一一映射,一组数值中数值的数量
与共识列表中的共识节点的节点标识的数量相同。节点标识排序策略可以有效避免对治理
合约中的全局索引的依赖,并且分配的索引值在区块链网络是唯一存在的,能够准确地对
区块链网络中的共识委员会进行管理。此实现方式中第一索引值的确定过程具体可以参见
下述图5所示实施例的描述。
[0101] 需要说明的是,在上述两种索引分配策略(即治理合约分配策略和节点标识排序策略)中,区块链网络可以选择其中任一种作为区块链网络所使用的索引分配策略,选中的
索引分配策略需要进行共识处理;若选中的索引分配策略通过共识处理,则可将选中的索
引分配策略作为区块链网络使用的索引分配策略;若选中的索引分配策略未通过共识处
理,则需要重新选择索引分配策略进行共识处理,直到选中的索引分配策略通过共识处理。
[0102] S304,在确定目标设备具有记账权限后,将第一索引值设置为可用状态,使得目标设备基于可用状态的第一索引值,作为共识委员会中的新成员节点参与区块链的记账处
理。
[0103] 在确定目标设备具有记账权限后,可以将第一索引值设置为可用状态,可用状态的第一索引值指示目标设备成为共识委员会中的新的成员节点,使得目标设备基于可用状
态的第一索引值,作为共识委员会中的新成员节点参与区块链的记账处理。确定目标设备
具有记账权限的过程可以包括:①获取关于目标设备的共识委员申请请求,共识委员申请
请求用于请求将目标设备加入至共识委员会中,共识委员申请请求包括目标设备的共识委
员评估信息;共识委员评估信息可以包括目标设备的历史业务数量(例如目标设备已处理
业务的数量)。共识委员申请请求可以是由治理委员会对目标设备进行共识委员评估后生
成并发送至目标成员节点的;共识委员申请请求还可以是目标设备请求治理委员会对目标
设备进行共识委员评估后,由目标设备发送至目标成员节点的。②根据共识委员评估信息
检测目标设备的记账资格。例如,可以根据目标设备的历史业务数量对目标设备的记账资
格进行检测;若目标设备的历史业务数量大于或等于业务量阈值,则确定目标设备具有记
账资格;若目标设备的历史业务数量小于业务量阈值,则确定目标设备不具有记账资格。③
若确定目标设备具有记账资格,则确定目标设备具有记账权限。通过这种方式,目标设备可
以主动申请成为共识委员会成员,治理委员会参与目标设备的共识委员评估,使得记账资
格的检测过程更加公正。
[0104] 区块链网络在运行过程中,治理合约会定期检查是否需要进行共识委员会切换,若当前共识委员会任期已满,则治理合约会按照选举规则从区块链网络的各个共识节点中
选举出新的共识委员会。此时,目标成员节点的共识模块在检测到针对所述共识委员会的
更新事件时,可以获取新的委员会信息,新的委员会信息包括:更新后的共识委员会中的各
个成员节点的索引值;目标成员节点的共识模块采用目标成员节点的第二索引值,对新的
委员会信息进行索引值命中处理,即检查更新后的共识委员会中的各个成员节点的索引值
中是否存在目标成员节点的第二索引值。若命中失败,即更新后的共识委员会中的各个成
员节点的索引值中不存在目标成员节点的第二索引值,则将第二索引值设置为不可用状
态,以指示目标成员节点不属于更新后的共识委员会,目标成员节点不具备对区块链的记
账权限,降低了对区块链网络中的存储空间的占用;在此情况下,如果目标成员节点重新加
入共识委员会,可重新将目标成员节点的第二索引值设置为可用状态,使得目标成员节点
基于可用状态的第二索引值,重新参与区块链的记账处理。若命中成功,即更新后的共识委
员会中的各个成员节点的索引值中存在目标成员节点的第二索引值,则保持第二索引值的
可用状态不变。
[0105] 本申请实施例中,治理合约分配策略基于治理合约中的全局索引的当前值,为目标设备分配索引值,且分配完成后对全局索引的当前值进行更新,并采用更新后的全局索
引的索引值为下一个加入至区块链网络的节点分配索引值,这样能够保证分配的索引值在
区块链网络中是唯一存在的,从而可以准确地对区块链网络中的共识委员会进行管理。另
外,节点标识排序策略可以有效避免对治理合约中的全局索引的依赖,并且分配的索引值
在区块链网络是唯一存在的,能够准确地对区块链网络中的共识委员会进行管理。共识委
员会更新后,可以采用目标成员节点的第二索引值,对新的委员会信息进行索引值命中处
理,并根据命中结果切换第二索引值的状态,实现对共识委员会的有效管理。
[0106] 图4是本申请实施例提供的另一种基于区块链网络的节点管理方法的流程示意图,区块链网络包括共识委员会,共识委员会中包括一个或多个成员节点,每个成员节点均
具有对区块链的记账权限,该基于区块链网络的节点管理方法由共识委员会中的目标成员
节点执行;该基于区块链网络的节点管理方法可以包括以下步骤S401至步骤S404:
[0107] S401,响应关于目标设备的节点注册请求,根据节点注册请求对目标设备进行共识处理。
[0108] 本申请实施例中步骤S401的执行过程可参见图3所示实施例中步骤S301的描述。
[0109] 需要说明的是,在采用治理合约分配策略为目标设备分配第一索引值的方案中,节点注册请求中还包括治理合约的合约哈希。在节点列表中查找目标设备的节点标识,以
及在黑名单列表中查找目标设备的节点标识之前,目标成员节点调用虚拟机按照节点注册
请求中的合约哈希查找合约哈希对应的治理合约,治理合约中包括节点新增策略;若治理
合约查找成功,则判断节点注册请求中是否包含节点新增策略所需的参数(例如目标设备
的节点标识、目标设备的节点类型、目标设备的附加信息等等);若节点注册请求中包含节
点新增策略所需的参数,则在节点列表中查找目标设备的节点标识,以及在黑名单列表中
查找目标设备的节点标识。
[0110] S402,在目标设备通过共识处理后,从合约哈希对应的治理合约中,获取全局索引的当前值,并将全局索引的当前值作为索引参数。
[0111] 步骤S402之前,需要在区块链网络中部署治理合约。目标成员节点对治理合约的部署过程可以包括:①若接收到治理合约的部署请求,则获取治理合约的签名信息,治理合
约的签名信息是治理委员会发送的,治理合约的签名信息是治理委员会对治理合约进行加
密(例如采用治理委员会的私钥(例如目标治理节点的私钥或目标治理机构对应的治理设
备的私钥)对治理合约进行加密)得到的。②对治理合约的签名信息进行信息校验,信息校
验包括以下至少一项:有效性校验和格式校验。对治理合约的签名信息进行有效性校验可
以包括:采用治理委员会的公钥(例如目标治理节点的公钥或目标治理机构对应的治理设
备的公钥等等)对治理合约的签名信息进行有效性校验,公钥解密成功则表示有效性校验
通过,公钥解密失败则表示有效性校验未通过;或者,治理合约的签名信息包括治理合约的
签名信息的生成时间戳,获取目标成员节点接收到治理合约的签名信息的接收时间戳,若
接收时间戳与生成时间戳之间的差值小于第二时间阈值,则表示有效性校验通过,若接收
时间戳与生成时间戳之间的差值大于或等于第二时间阈值,则表示有效性校验未通过。对
治理合约的签名信息进行格式校验可以是指:对治理合约的签名信息的格式进行检查,若
格式为第二格式(例如签名信息中包括某个特定字符,签名信息中由字母或数字组成等等)
则格式校验通过,若格式不是第二格式则格式校验未通过。③若治理合约的签名信息通过
信息校验,则调用虚拟机将治理合约的合约哈希和治理合约的合约内容关联写入区块链网
络的智能合约,以更新智能合约。将治理合约的合约哈希和治理合约的合约内容关联写入
区块链网络的智能合约可以包括:将治理合约的合约哈希作为关键字,将治理合约的合约
内容作为关键字对应的值,并将治理合约的合约哈希和治理合约的合约内容所组成的键值
对写入区块链网络的智能合约中,以更新智能合约。④对更新后的智能合约进行共识处理,
并在更新后的智能合约通过共识处理后,将更新后的智能合约存储至区块链。更新后的智
能合约的共识处理可以包括:根据更新后的智能合约生成区块,并将生成的区块上传至区
块链中,区块链网络中的各个共识节点从区块链中获取包括更新后的智能合约的区块;若
各个共识节点中对更新后的智能合约表示认同的共识节点的数量大于或等于共识数量阈
值(例如共识数量阈值为共识节点总数的三分之二),则表示更新后的智能合约通过共识处
理;若各个共识节点中对更新后的智能合约表示认同的共识节点的数量小于共识数量阈
值,则表示更新后的智能合约未通过共识处理。⑤将治理合约的合约哈希发送至治理委员
会中,以便于治理委员会生成节点注册请求的过程中,根据目标设备的节点注册信息和治
理合约的合约哈希生成节点注册请求。
[0112] 步骤S402中,在目标设备通过共识处理后,从合约哈希对应的治理合约中,获取全局索引的当前值,并将全局索引的当前值作为索引参数。全局索引的当前值是根据各个成
员节点的索引值确定的。全局索引的当前值等于:对基于各个成员节点的索引值所确定的
最大索引值,进行原子自增处理后的值。最大索引值是从各个成员节点的索引值和其他节
点的索引值中确定的。在一种实现方式中,目标设备成为区块链网络中的共识节点,目标成
员节点为加入至区块链网络中的共识节点分配索引值。此时,其他节点包括:多个共识节点
中除共识委员会以外的各个共识节点;也就是说,最大索引值是根据各个成员节点的索引
值,以及多个共识节点中除共识委员会以外的各个共识节点的索引值确定的;更进一步地,
最大索引值是指各个成员节点的索引值,以及多个共识节点中除共识委员会以外的各个共
识节点的索引值中数值最大的索引值。在另一种实现方式中,目标设备成为区块链网络中
的节点,目标成员节点为加入至区块链网络中的节点分配索引值。此时,其他节点包括:区
块链网络中除共识委员会以外的各个节点;也就是说,最大索引值是根据各个成员节点的
索引值,以及区块链网络中除共识委员会以外的各个节点的索引值确定的;更进一步地,最
大索引值是指各个成员节点的索引值,以及区块链网络中除共识委员会以外的各个节点的
索引值中数值最大的索引值。此处对最大索引值进行原子自增处理是指:采用目标数值(例
如是1)对最大索引值进行更新,得到全局索引的当前值的过程,例如全局索引的当前值等
于最大索引值加上目标数值。并且采用目标数值对最大索引值进行更新的进程不会被其他
进程打断;举例来说,为第一设备分配索引值,需要采用目标数值对最大索引值进行更新,
得到全局索引的当前值;在最大索引值的更新过程中,存在为第二设备分配索引值的需求;
在原子自增处理模式下,先执行为第一设备分配索引值的进程,后执行为第二设备分配索
引值的过程,两个过程相互不影响,保证分配的索引值在区块链网络中是唯一存在的,有效
提高索引值分配过程的准确性。
[0113] S403,将索引参数作为第一索引值,分配给目标设备,并通知目标设备加入区块链网络。
[0114] 将索引参数作为第一索引值,分配给目标设备,并通知目标设备加入区块链网络,将目标设备的节点标识添加至治理合约管理的区块链网络的节点列表中。
[0115] 将索引参数作为第一索引值,分配给目标设备之后,可以在治理合约中对全局索引的当前值进行原子自增处理,以更新全局索引的当前值;并对更新后的当前值进行共识
处理,对更新后的当前值进行共识处理的过程,与对更新后的智能合约进行共识处理的过
程类似,可参见对更新后的智能合约进行共识处理的过程;若更新后的当前值通过共识处
理后,可以将更新后的当前值记录至区块链中,更新后的当前值用于为下一个加入区块链
网络的设备确定索引值。
[0116] S404,在确定目标设备具有记账权限后,将第一索引值设置为可用状态,使得目标设备基于可用状态的第一索引值,作为共识委员会中的新成员节点参与区块链的记账处
理。
[0117] 本申请实施例中步骤S404的执行过程可参见图3所示实施例中步骤S304的具体描述。
[0118] 目标设备可以申请退出区块链网络,目标设备申请退出区块链网络的可以包括以下两种情况:
[0119] (1)节点退出请求的签名信息由治理委员会发送至目标成员节点。首先,目标成员节点获取节点退出请求的签名信息,并对节点退出请求的签名信息进行信息校验,在节点
退出请求的签名信息通过信息校验之后,从节点退出请求的签名信息中解析出节点退出请
求,节点退出请求可以包括合约哈希和目标设备的节点标识,从而可以解析节点退出请求,
得到合约哈希和目标设备的节点标识。其次,目标成员节点调用虚拟机按照节点退出请求
中的合约哈希查找合约哈希对应的治理合约,治理合约中包括节点退出策略;若治理合约
查找成功,获取合约哈希对应的治理合约;则可以按照节点退出策略,将目标设备从区块链
网络中移除。
[0120] 按照节点退出策略,将目标设备从区块链网络中移除可以包括:判断节点退出请求中是否包含节点退出策略所需的参数(例如目标设备的节点标识);若节点退出请求中包
含节点退出策略所需的参数,则获取治理合约所管理的节点列表,节点列表包括一个或多
个节点的节点标识;在目标设备被分配第一索引值后,目标设备的节点标识被添加至治理
合约管理的节点列表中;若节点列表中存在目标设备的节点标识,则在节点列表中删除目
标设备的节点标识,以及删除第一索引值,以将目标设备从区块链网络中移除,降低了对区
块链网络中的存储空间的占用。
[0121] 其中,对节点退出请求的签名信息进行信息校验可以包括以下至少一项:对节点退出请求的签名细腻进行有效性校验、对节点退出请求的签名信息进行格式校验。目标成
员节点对节点退出请求的签名信息进行有效性校验可以包括:采用治理委员会的公钥(例
如目标治理节点的公钥或目标治理机构对应的治理设备的公钥等等)对节点退出请求的签
名信息进行有效性校验,公钥解密成功则表示有效性校验通过,公钥解密失败则表示有效
性校验未通过;或者,节点退出请求的签名信息包括节点退出请求的签名信息的生成时间
戳,获取目标成员节点接收到节点退出请求的签名信息的接收时间戳,若接收时间戳与生
成时间戳之间的差值小于第三时间阈值,则表示有效性校验通过,若接收时间戳与生成时
间戳之间的差值大于或等于第三时间阈值,则表示有效性校验未通过。目标成员节点对节
点退出请求的签名信息进行格式校验可以是指:对节点退出请求的签名信息的格式进行检
查,若格式为第三格式(例如签名信息中包括某个特定字符,签名信息中由字母或数字组成
等等)则格式校验通过,若格式不是第三格式则格式校验未通过。
[0122] (2)节点退出请求的签名信息由目标设备发送至目标成员节点。首先,目标成员节点获取节点退出请求的签名信息,并对节点退出请求的签名信息进行信息校验,在节点退
出请求的签名信息通过信息校验之后,从节点退出请求的签名信息中解析出节点退出请
求,节点退出请求可以包括目标设备的节点标识。然后,目标成员节点从区块链网络中获取
节点列表,节点列表包括一个或多个节点的节点标识;在目标设备被分配第一索引值后,目
标设备的节点标识被添加至治理合约管理的节点列表中;若节点列表中存在目标设备的节
点标识,则在节点列表中删除目标设备的节点标识,以及删除第一索引值,以将目标设备从
区块链网络中移除,降低了对区块链网络中的存储空间的占用。
[0123] 通过这种方式,目标设备退出区块链网络,则为目标设备分配的第一索引值不会保留在区块链网络中,这样不会对全局索引的当前值产生影响。如果目标设备重新加入区
块链网络,则可以通过治理合约分配策略为目标设备分配一个新的索引值。
[0124] 本申请实施例中,治理合约分配策略基于治理合约中的全局索引的当前值,为目标设备分配索引值,且分配完成后对全局索引的当前值进行更新,并采用更新后的全局索
引的索引值为下一个加入至区块链网络的节点分配索引值,这样能够保证分配的索引值在
区块链网络中是唯一存在的,从而可以准确地对区块链网络中的共识委员会进行管理。另
外,在共识委员会更新后,退出共识委员会的成员节点的索引值设置为不可用状态,共识委
员会的新成员节点的索引值设置为可用状态,从而可以在共识委员会产生切换的情况下能
够顺利地过渡到新的共识委员会,并且对新的共识委员会进行有效管理,以便于对区块链
的记账权限进行有效治理。此外,目标设备可以申请退出区块链网络,目标设备退出区块链
网络,则为目标设备分配的第一索引值不会保留在区块链网络中,这样不会对全局索引的
当前值产生影响,从而能够准确地对共识委员会进行管理。另外,引入治理委员会,由治理
委员会向共识委员会发起节点注册请求、节点删除请求、治理合约的部署请求,使得管理过
程更加公正透明。
[0125] 图5是本申请实施例提供的另一种基于区块链网络的节点管理方法的流程示意图,区块链网络包括共识委员会,共识委员会中包括一个或多个成员节点,每个成员节点均
具有对区块链的记账权限,该基于区块链网络的节点管理方法由共识委员会中的目标成员
节点执行;该基于区块链网络的节点管理方法可以包括以下步骤S501至步骤S504:
[0126] S501,响应关于目标设备的节点注册请求,根据节点注册请求对目标设备进行共识处理。
[0127] 本申请实施例中步骤S501的执行过程可参见图3所示实施例中步骤S301的描述。
[0128] S502,在目标设备通过共识处理后,对区块链网络中的各个共识节点的节点标识进行按序排列,得到目标设备的排列位置信息,并将排列位置信息作为索引参数。
[0129] 在目标设备通过共识处理后,目标设备成为了区块链网络中的共识节点,此时可以获取区块链网络的共识列表,区块链网络的共识列表包括区块链网络中的各个共识节点
的节点标识,每个共识节点的节点标识可以包括由英文字母和数字组成的字符串。下述表2
示出了一种示例性的共识列表:
[0130] 表2
[0131] 共识节点 共识节点的节点标识共识节点1 1Z
共识节点2 1A
共识节点3 1W
[0132] 如上述表2所示,区块链网络中包括3个共识节点,分别是:共识节点1、共识节点2和共识节点3,共识节点1的节点标识为“1Z”,共识节点2的节点标识为“1A”,共识节点3的节
点标识为“1W”。
[0133] 获取到共识列表之后,可以对区块链网络中的各个共识节点的节点标识进行按序排列,得到排序后的共识列表;可以在排序后的共识列表中确定目标设备的排列位置信息,
并将目标设备的排列位置信息作为索引参数;目标设备的排列位置信息指示目标设备的节
点标识在排序后的共识列表中的排列位置,例如目标设备的节点标识在排序后的共识列表
中排列于第三位,则目标设备的节点标识排列位置信息为“3”。
[0134] 对区块链网络中的各个共识节点的节点标识进行按序排列,得到排序后的共识列表可以包括:计算每个共识节点的节点标识对应的转换值,每个共识节点的节点标识对应
的转换值是根据该共识节点的节点标识中包含的各个字符的ASCII(American Standard 
Code for Information Interchange,美国信息交换标准代码)计算得到的,例如每个共识
节点的节点标识对应的转换值等于该共识节点的节点标识中包含的各个字符的ASCII之
和;例如对于共识节点1的节点标识,字符“1”对应的十进制ASCII为“1”,字符“Z”对应的十
进制ASCII为“106”,则共识节点1的节点标识对应的转换值为107;按照各个共识节点的节
点标识对应的转换值,对各个共识节点的节点标识进行升序或降序排列,得到排列后的共
识列表。下述表3示出了对表2所示的共识列表中的各个共识节点的节点标识进行升序排列
后得到的排序后的共识列表:
[0135] 表3
[0136] 共识节点 共识节点的节点标识共识节点2 1A
共识节点3 1W
共识节点1 1Z
[0137] 如上述表3可知,排序后的共识列表中,共识节点2的节点标识排列于第一位,共识节点3的节点标识排列于第二位,共识节点1的节点标识排列于第三位。
[0138] S503,采用排列位置信息为目标设备分配第一索引值。
[0139] 具体地,可以根据排列位置信息确定位于目标设备之前的共识节点的节点数,根据节点数计算第一索引值,并将计算得到的第一索引值分配给目标设备。第一索引值可以
等于节点数,或者第一索引值可以是根据节点数和目标数值计算得到的,例如第一索引值
等于节点数与目标数值(例如目标数值为1)之和。举例来说,共识节点1(例如目标设备为共
识节点1)的节点标识在排序后的共识列表中排列于第三位,则共识节点1的节点标识排列
位置信息为“3”,则确定位于共识节点1之前的共识节点的节点数为“2”;若第一索引值等于
节点数,则第一索引值为“2”;若第一索引值等于节点数与目标数值(例如目标数值为1)之
和,则第一索引值为“3”。下述表4示出了对表2所示的共识列表中的各个共识节点分配的索
引值:
[0140] 表4
[0141] 共识节点 索引值共识节点2 0
共识节点3 1
共识节点1 2
[0142] S504,在确定目标设备具有记账权限后,将第一索引值设置为可用状态,使得目标设备基于可用状态的第一索引值,作为共识委员会中的新成员节点参与区块链的记账处
理。
[0143] 目标设备可以申请退出区块链网络,目标设备申请退出区块链网络的可以包括以下两种情况:
[0144] (1)节点退出请求的签名信息由治理委员会发送至目标成员节点。首先,目标成员节点获取节点退出请求的签名信息,并对节点退出请求的签名信息进行信息校验,在节点
退出请求的签名信息通过信息校验之后,从节点退出请求的签名信息中解析出节点退出请
求,节点退出请求可以包括目标设备的节点标识,从而可以解析节点退出请求,得到目标设
备的节点标识。其次,获取治理合约所管理的节点列表,节点列表包括一个或多个节点的节
点标识;在目标设备被分配第一索引值后,目标设备的节点标识被添加至治理合约管理的
节点列表中;若节点列表中存在目标设备的节点标识,则在节点列表中删除目标设备的节
点标识,以及删除第一索引值,以将目标设备从区块链网络中移除,降低了对区块链网络中
的存储空间的占用。
[0145] (2)节点退出请求的签名信息由目标设备发送至目标成员节点。首先,目标成员节点获取节点退出请求的签名信息,并对节点退出请求的签名信息进行信息校验,在节点退
出请求的签名信息通过信息校验之后,从节点退出请求的签名信息中解析出节点退出请
求,节点退出请求可以包括目标设备的节点标识。然后,目标成员节点从区块链网络中获取
节点列表,节点列表包括一个或多个节点的节点标识;在目标设备被分配第一索引值后,目
标设备的节点标识被添加至治理合约管理的节点列表中;若节点列表中存在目标设备的节
点标识,则在节点列表中删除目标设备的节点标识,以及删除第一索引值,以将目标设备从
区块链网络中移除,降低了对区块链网络中的存储空间的占用。
[0146] 通过这种方式,目标设备退出区块链网络,则为目标设备分配的第一索引值不会保留在区块链网络中,这样不会对全局索引的当前值产生影响。如果目标设备重新加入区
块链网络,则可以通过治理合约分配策略为目标设备分配一个新的索引值。
[0147] 本申请实施例中,在采用节点标识排序策略为目标设备分配第一索引值的过程中,节点标识排序策略可以有效避免对治理合约中的全局索引的依赖,并且分配的索引值
在区块链网络是唯一存在的,能够准确地对区块链网络中的共识委员会进行管理。另外,区
块链网络中每新加入一个共识节点,便采用区块链网络中的共识列表进行重新排序,重新
分配索引值,以对共识委员会进行有效管理。区块链网络中涉及节点的动态加入和节点的
动态退出,由区块链对节点的动态加入过程和节点的动态退出过程进行记录,保证公平公
正透明。
[0148] 上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
[0149] 请参见图6,图6是本申请提供的一种基于区块链网络的节点管理装置的结构示意图,节点管理装置60可以设置于节点管理设备中,节点管理设备可以是上述实施例中提及
的目标成员节点;节点管理装置60可以用于执行图3至图5所示的方法实施例中的相应步
骤,该节点管理装置60可以包括如下单元:
[0150] 处理单元601,用于响应关于目标设备的节点注册请求,根据节点注册请求对目标设备进行共识处理;
[0151] 获取单元602,用于在目标设备通过共识处理后,获取索引参数,索引参数是根据共识委员会中的各个成员节点的节点信息确定的;
[0152] 处理单元601,还用于按照索引分配策略,采用索引参数为目标设备分配第一索引值,并通知目标设备加入区块链网络,第一索引值处于不可用状态;以及,在确定目标设备
具有记账权限后,将第一索引值设置为可用状态,使得目标设备基于可用状态的第一索引
值,作为共识委员会中的新成员节点参与区块链的记账处理。
[0153] 在一种实现方式中,共识委员会中的任一成员节点的节点信息包括任一成员节点的索引值;节点注册请求包括治理合约的合约哈希,治理合约中包括全局索引的当前值,全
局索引的当前值是根据各个成员节点的索引值确定的;
[0154] 获取单元602,用于获取索引参数时,具体用于执行如下步骤:从合约哈希对应的治理合约中,获取全局索引的当前值,并将全局索引的当前值作为索引参数;
[0155] 处理单元601,用于按照索引分配策略,采用索引参数为目标设备分配第一索引值时,具体用于执行如下步骤:将索引参数作为第一索引值,分配给目标设备。
[0156] 在一种实现方式中,全局索引的当前值等于:对基于各个成员节点的索引值所确定的最大索引值,进行原子自增处理后的值;
[0157] 其中,最大索引值是从各个成员节点的索引值和其他节点的索引值中确定的;共识委员会是从区块链网络中的多个共识节点中选举得到的,其他节点包括:多个共识节点
中除共识委员会以外的各个共识节点,或者区块链网络中除共识委员会以外的各个节点。
[0158] 在一种实现方式中,处理单元601,用于将全局索引值作为第一索引值,分配给目标设备之后,还用于执行如下步骤:
[0159] 在治理合约中对全局索引的当前值进行原子自增处理,以更新全局索引的当前值;
[0160] 将更新后的当前值记录至区块链中,更新后的当前值用于为下一个加入区块链网络的设备确定索引值。
[0161] 在一种实现方式中,获取单元602,用于从合约哈希对应的治理合约中,获取全局索引的当前值之前,还用于执行如下步骤:
[0162] 若接收到关于治理合约的部署请求,则获取治理合约的签名信息,并对签名信息进行信息校验,信息校验包括以下至少一项:有效性校验和格式校验;
[0163] 若通过信息校验,则调用虚拟机将治理合约的合约哈希和所述治理合约的合约内容关联写入区块链网络的智能合约,以更新智能合约;
[0164] 对更新后的智能合约进行共识处理,并在更新后的智能合约通过共识处理后,将更新后的智能合约存储至区块链。
[0165] 在一种实现方式中,获取单元602,还用于执行如下步骤:
[0166] 若接收到关于目标设备的节点退出请求,则解析节点退出请求,得到合约哈希;
[0167] 获取合约哈希对应的治理合约,治理合约中还包括节点退出策略;
[0168] 按照节点退出策略,将目标设备从区块链网络中移除。
[0169] 在一种实现方式中,在目标设备被分配第一索引值后,目标设备的节点标识被添加至治理合约管理的节点列表中;获取单元602,用于按照节点退出策略,将目标设备从区
块链网络中移除时,具体用于执行如下步骤:
[0170] 获取治理合约所管理的节点列表,节点列表包括一个或多个节点的节点标识;
[0171] 在节点列表中删除目标设备的节点标识,以及删除第一索引值,以将目标设备从区块链网络中移除。
[0172] 在一种实现方式中,共识委员会是从区块链网络中的多个共识节点中选举得到的,共识委员会中的任一成员节点的节点信息包括任一成员节点的节点标识,目标设备通
过共识处理后成为了区块链网络中的共识节点;
[0173] 获取单元602,用于获取索引参数时,具体用于执行如下步骤:对区块链网络中的各个共识节点的节点标识进行按序排列,得到目标设备的排列位置信息;并将排列位置信
息作为索引参数;
[0174] 处理单元601,用于按照索引分配策略,采用索引参数为目标设备分配第一索引值时,具体用于执行如下步骤:根据排列位置信息确定位于目标设备之前的共识节点的节点
数,根据节点数计算第一索引值,并将计算得到的第一索引值分配给目标设备。
[0175] 在一种实现方式中,目标成员节点具有第二索引值,第二索引值处于可用状态;处理单元601,还用于执行如下步骤:
[0176] 若检测到针对共识委员会的更新事件,则获取新的委员会信息,新的委员会信息包括:更新后的共识委员会中的各个成员节点的索引值;
[0177] 采用目标成员节点的第二索引值,对新的委员会信息进行索引值命中处理;
[0178] 若命中失败,则将第二索引值设置为不可用状态,以指示目标成员节点不属于更新后的共识委员会。
[0179] 在一种实现方式中,处理单元601,还用于执行如下步骤:
[0180] 获取关于目标设备的共识委员申请请求,共识委员申请请求用于请求将目标设备加入至共识委员会中,共识委员申请请求包括目标设备的共识委员评估信息;
[0181] 根据共识委员评估信息检测目标设备的记账资格;
[0182] 若确定目标设备具有记账资格,则确定目标设备具有记账权限。
[0183] 在一种实现方式中,共识委员会从区块链网络中的多个共识节点中选举得到的;节点注册请求包括:目标设备的节点类型以及节点类型对应的设备评估信息,节点注册请
求用于指示目标设备欲成为所述节点类型下的节点;处理单元601,用于根据节点注册请求
对目标设备进行共识处理时,具体用于执行如下步骤:
[0184] 获取节点类型对应的节点评估标准;
[0185] 根据节点评估标准和设备评估信息,对目标设备进行能力检测,得到目标设备的能力检测结果;
[0186] 根据能力检测结果,对目标设备进行共识处理。
[0187] 在一种实现方式中,节点注册请求还包括目标设备的节点标识;处理单元601,还用于执行如下步骤:
[0188] 获取区块链网络的节点列表和黑名单列表,节点列表包括一个或多个节点的节点标识;
[0189] 在节点列表中查找目标设备的节点标识,以及在黑名单列表中查找目标设备的节点标识;
[0190] 若在节点列表和黑名单列表中均查找失败,则执行获取节点类型对应的节点评估标准的步骤。
[0191] 根据本申请的一个实施例,图6所示的节点管理装置60中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功
能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效
果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个
单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该节点管理
装置60也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可
以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括例如中央处理单元
(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的通用计算机
的通用计算设备上运行能够执行如图3至图5中所示的相应方法所涉及的各步骤的计算机
程序(包括程序代码),来构造如图6中所示的节点管理装置60,以及来实现本申请实施例的
基于区块链网络的节点管理方法。计算机程序可以记载于例如计算机可读存储介质上,并
通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
[0192] 本申请实施例中,在欲加入区块链网络的目标设备通过共识处理后,可以采用获取到的索引参数为目标设备分配第一索引值,并通知目标设备加入区块链网络,分配的第
一索引值处于不可用状态;不可用状态的第一索引值指示目标设备不属于区块链网络的共
识委员会;在确定目标设备具有记账权限后,可以将第一索引值设置为可用状态,使得目标
设备基于可用状态的第一索引值,作为共识委员会中的新成员节点参与区块链的记账处
理;由此可见,为加入区块链网络的设备分配索引值后,通过索引值的不同状态(包括可用
状态或不可用状态),可以对区块链网络的共识委员会进行有效管理,从而对区块链的记账
权限进行有效治理。
[0193] 请参见图7,图7是本申请实施例提供的一种基于区块链网络的节点管理设备的结构示意图,该节点管理设备70至少包括处理器701、计算机可读存储介质702以及通信接口
703。其中,处理器701、计算机可读存储介质702以及通信接口703可通过总线或者其它方式
连接。通信接口703可以用于接收或者发送数据。计算机可读存储介质702可以存储在存储
器中,计算机可读存储介质702用于存储计算机程序,计算机程序包括计算机指令。处理器
701用于执行计算机指令。处理器701(或称CPU(Central Processing Unit,中央处理器))
是节点管理设备70的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适
于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
[0194] 本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是节点管理设备70中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读
存储介质702既可以包括节点管理设备70中的内置存储介质,当然也可以包括节点管理设
备70所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了节点
管理设备70的操作系统。并且,在该存储空间中还存放了适于被处理器701加载并执行的一
条或多条的计算机指令,这些计算机指令可以是一个或多个的计算机程序(包括程序代
码)。需要说明的是,此处的计算机可读存储介质702可以是高速RAM存储器,也可以是非不
稳定的存储器(Non‑Volatile Memory),例如至少一个磁盘存储器;可选的还可以是至少一
个位于远离前述处理器701的计算机可读存储介质。
[0195] 该节点管理设备70可以是上述方法实施例中提及的目标成员节点,该计算机可读存储介质702中存储有计算机程序,计算机程序包括一条或多条计算机指令;由处理器701
加载并执行一条或多条计算机指令,以实现图3至图5所示方法实施例中的相应步骤;具体
实现中,计算机可读存储介质702中的计算机指令由处理器701加载并执行如下步骤:
[0196] 响应关于目标设备的节点注册请求,根据节点注册请求对目标设备进行共识处理;
[0197] 在目标设备通过共识处理后,获取索引参数,索引参数是根据共识委员会中的各个成员节点的节点信息确定的;
[0198] 按照索引分配策略,采用索引参数为目标设备分配第一索引值,并通知目标设备加入区块链网络,第一索引值处于不可用状态;
[0199] 在确定目标设备具有记账权限后,将第一索引值设置为可用状态,使得目标设备基于可用状态的第一索引值,作为共识委员会中的新成员节点参与区块链的记账处理。
[0200] 在一种实现方式中,共识委员会中的任一成员节点的节点信息包括任一成员节点的索引值;节点注册请求包括治理合约的合约哈希,治理合约中包括全局索引的当前值,全
局索引的当前值是根据各个成员节点的索引值确定的;
[0201] 计算机可读存储介质702中的计算机指令由处理器701加载并且执行在获取索引参数时,具体用于执行如下步骤:从合约哈希对应的治理合约中,获取全局索引的当前值,
并将全局索引的当前值作为索引参数;
[0202] 计算机可读存储介质702中的计算机指令由处理器701加载并且执行在按照索引分配策略,采用索引参数为目标设备分配第一索引值时,具体用于执行如下步骤:将索引参
数作为第一索引值,分配给目标设备。
[0203] 在一种实现方式中,全局索引的当前值等于:对基于各个成员节点的索引值所确定的最大索引值,进行原子自增处理后的值;
[0204] 其中,最大索引值是从各个成员节点的索引值和其他节点的索引值中确定的;共识委员会是从区块链网络中的多个共识节点中选举得到的,其他节点包括:多个共识节点
中除共识委员会以外的各个共识节点,或者区块链网络中除共识委员会以外的各个节点。
[0205] 在一种实现方式中,计算机可读存储介质702中的计算机指令由处理器701加载并且执行在将全局索引值作为第一索引值,分配给目标设备之后,还用于执行如下步骤:
[0206] 在治理合约中对全局索引的当前值进行原子自增处理,以更新全局索引的当前值;
[0207] 将更新后的当前值记录至区块链中,更新后的当前值用于为下一个加入区块链网络的设备确定索引值。
[0208] 在一种实现方式中,计算机可读存储介质702中的计算机指令由处理器701加载并且执行在从合约哈希对应的治理合约中,获取全局索引的当前值之前,还用于执行如下步
骤:
[0209] 若接收到关于治理合约的部署请求,则获取治理合约的签名信息,并对签名信息进行信息校验,信息校验包括以下至少一项:有效性校验和格式校验;
[0210] 若通过信息校验,则调用虚拟机将治理合约的合约哈希和所述治理合约的合约内容关联写入区块链网络的智能合约,以更新智能合约;
[0211] 对更新后的智能合约进行共识处理,并在更新后的智能合约通过共识处理后,将更新后的智能合约存储至区块链。
[0212] 在一种实现方式中,计算机可读存储介质702中的计算机指令由处理器701加载并且还用于执行如下步骤:
[0213] 若接收到关于目标设备的节点退出请求,则解析节点退出请求,得到合约哈希;
[0214] 获取合约哈希对应的治理合约,治理合约中还包括节点退出策略;
[0215] 按照节点退出策略,将目标设备从区块链网络中移除。
[0216] 在一种实现方式中,在目标设备被分配第一索引值后,目标设备的节点标识被添加至治理合约管理的节点列表中;计算机可读存储介质702中的计算机指令由处理器701加
载并且执行在按照节点退出策略,将目标设备从区块链网络中移除时,具体用于执行如下
步骤:
[0217] 获取治理合约所管理的节点列表,节点列表包括一个或多个节点的节点标识;
[0218] 在节点列表中删除目标设备的节点标识,以及删除第一索引值,以将目标设备从区块链网络中移除。
[0219] 在一种实现方式中,共识委员会是从区块链网络中的多个共识节点中选举得到的,共识委员会中的任一成员节点的节点信息包括任一成员节点的节点标识,目标设备通
过共识处理后成为了区块链网络中的共识节点;
[0220] 计算机可读存储介质702中的计算机指令由处理器701加载并且执行在获取索引参数时,具体用于执行如下步骤:对区块链网络中的各个共识节点的节点标识进行按序排
列,得到目标设备的排列位置信息;并将排列位置信息作为索引参数;
[0221] 计算机可读存储介质702中的计算机指令由处理器701加载并且执行在按照索引分配策略,采用索引参数为目标设备分配第一索引值时,具体用于执行如下步骤:根据排列
位置信息确定位于目标设备之前的共识节点的节点数,根据节点数计算第一索引值,并将
计算得到的第一索引值分配给目标设备。
[0222] 在一种实现方式中,目标成员节点具有第二索引值,第二索引值处于可用状态;计算机可读存储介质702中的计算机指令由处理器701加载并且还用于执行如下步骤:
[0223] 若检测到针对共识委员会的更新事件,则获取新的委员会信息,新的委员会信息包括:更新后的共识委员会中的各个成员节点的索引值;
[0224] 采用目标成员节点的第二索引值,对新的委员会信息进行索引值命中处理;
[0225] 若命中失败,则将第二索引值设置为不可用状态,以指示目标成员节点不属于更新后的共识委员会。
[0226] 在一种实现方式中,计算机可读存储介质702中的计算机指令由处理器701加载并且还用于执行如下步骤:
[0227] 获取关于目标设备的共识委员申请请求,共识委员申请请求用于请求将目标设备加入至共识委员会中,共识委员申请请求包括目标设备的共识委员评估信息;
[0228] 根据共识委员评估信息检测目标设备的记账资格;
[0229] 若确定目标设备具有记账资格,则确定目标设备具有记账权限。
[0230] 在一种实现方式中,共识委员会从区块链网络中的多个共识节点中选举得到的;节点注册请求包括:目标设备的节点类型以及节点类型对应的设备评估信息,节点注册请
求用于指示目标设备欲成为所述节点类型下的节点;计算机可读存储介质702中的计算机
指令由处理器701加载并且执行在根据节点注册请求对目标设备进行共识处理时,具体用
于执行如下步骤:
[0231] 获取节点类型对应的节点评估标准;
[0232] 根据节点评估标准和设备评估信息,对目标设备进行能力检测,得到目标设备的能力检测结果;
[0233] 根据能力检测结果,对目标设备进行共识处理。
[0234] 在一种实现方式中,节点注册请求还包括目标设备的节点标识;计算机可读存储介质702中的计算机指令由处理器701加载并且还用于执行如下步骤:
[0235] 获取区块链网络的节点列表和黑名单列表,节点列表包括一个或多个节点的节点标识;
[0236] 在节点列表中查找目标设备的节点标识,以及在黑名单列表中查找目标设备的节点标识;
[0237] 若在节点列表和黑名单列表中均查找失败,则执行获取节点类型对应的节点评估标准的步骤。
[0238] 本申请实施例中,在欲加入区块链网络的目标设备通过共识处理后,可以采用获取到的索引参数为目标设备分配第一索引值,并通知目标设备加入区块链网络,分配的第
一索引值处于不可用状态;不可用状态的第一索引值指示目标设备不属于区块链网络的共
识委员会;在确定目标设备具有记账权限后,可以将第一索引值设置为可用状态,使得目标
设备基于可用状态的第一索引值,作为共识委员会中的新成员节点参与区块链的记账处
理;由此可见,为加入区块链网络的设备分配索引值后,通过索引值的不同状态(包括可用
状态或不可用状态),可以对区块链网络的共识委员会进行有效管理,从而对区块链的记账
权限进行有效治理。
[0239] 根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算
机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使
得该计算机设备执行上述各种可选方式中提供的基于区块链网络的节点管理方法。
[0240] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。