CN111711537B - 备用主节点列表更新方法、装置及设备 - Google Patents
备用主节点列表更新方法、装置及设备 Download PDFInfo
- Publication number
- CN111711537B CN111711537B CN202010509115.9A CN202010509115A CN111711537B CN 111711537 B CN111711537 B CN 111711537B CN 202010509115 A CN202010509115 A CN 202010509115A CN 111711537 B CN111711537 B CN 111711537B
- Authority
- CN
- China
- Prior art keywords
- updating
- node list
- main node
- familiarity
- indication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种备用主节点列表更新方法、装置及设备,涉及数据传输技术领域。该方法包括:根据当前区块链中各节点之间的熟悉度,确定备用主节点列表更新指示;其中,熟悉度为根据各节点之间的交易量和共同在网时间确定的字段值数据,用于表示各节点之间的熟悉程度;根据所述备用主节点列表更新指示,对所述备用主节点列表进行更新。相对于现有技术,避免了同一区块链网络不能应用于不同的场景,若应用场景不同,则需要构建不同的区块链网络的问题,提高了区块链网络的使用率。
Description
技术领域
本申请涉及数据传输技术领域,具体而言,涉及一种备用主节点列表更新方法、装置及设备。
背景技术
随着互联网技术的发展,区块链的应用越来越广泛,区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任“基础,创造了可靠的“合作”机制,具有广阔的运用前景。
现有技术中,在某些应用场景中,通过主节点可以直接向各从节点发送指令,对应从节点接收到主节点发送的指令后,根据指令执行;在某些应用场景中,对于主节点发送的指令,需要当前区块链内一半以上的从节点共识后,才会执行;即不同的应用场景对应不同的区块链共识机制。
但是这种方式使得对于不用的应用场景,需要构建具有不同共识机制的区块链,这就降低了区块链的使用率,增加了成本。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种备用主节点列表更新方法、装置及设备,以解决现有技术中同一区块链网络不能应用于不同的场景,若应用场景不同,则需要构建不同的区块链网络的问题,提高了区块链网络的使用率。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请一实施例提供了一种备用主节点列表更新法,应用于区块链网络中的主节点,所述方法包括:
根据当前区块链中各节点之间的熟悉度,确定备用主节点列表更新指示;其中,所述熟悉度为根据各节点之间的交易量和共同在网时间确定的字段值数据,用于表示各节点之间的熟悉程度;
根据所述备用主节点列表更新指示,对所述备用主节点列表进行更新。
可选地,所述根据所述备用主节点列表更新指示,对所述备用主节点列表进行更新之后,该方法还包括:
获取各从节点发送的更新成功反馈,确定所述更新成功反馈的数量;
判断所述更新成功反馈的数量是否超过预设阈值;
若超过,则确定所述备用主节点列表更新完成。
可选地,所述根据当前区块链中各节点之间的熟悉度,确定备用主节点列表更新指示,包括:
若所述当前区块链中,各节点之间的熟悉度为第一预设熟悉度,则确定所述备用主节点列表更新指示为第一更新指示,通过带有主节点签名的第一更新指示对所述备用主节点列表进行更新;
若所述当前区块链中,各节点之间的熟悉度为第二预设熟悉度,则确定所述备用主节点列表更新指示为第二更新指示,通过带有当前区块链中大于二分之一以上节点签名的第二更新指示,对所述备用主节点列表进行更新;
若所述当前区块链中,各节点之间的熟悉度为第三预设熟悉度,则确定所述备用主节点列表更新指示为第三更新指示,通过带有当前区块链中大于三分之二以上节点签名的第三更新指示,对所述备用主节点列表进行更新。
可选地,所述根据所述备用主节点列表更新指示,对所述备用主节点列表进行更新,包括:
将所述备用主节点列表更新指示广播至当前区块链中的各从节点,以使各所述从节点根据所述备用主节点列表更新指示对所述备用主节点列表进行更新。
第二方面,本申请另一实施例提供了一种备用主节点列表更新方法,应用于区块链网络中的从节点,所述方法包括:
获取主节点发送的备用主节点列表更新指示;
对所述备用主节点列表更新指示进行验证;
若验证通过,则根据所述备用主节点列表更新指示对当前备用主节点列表进行更新。
可选地,所述根据所述备用主节点列表更新指示对当前备用主节点列表进行更新之后,该方法还包括:
若所述备用主节点列表更新完成,则向所述主节点发送更新成功反馈。
可选地,若所述主节点故障,则所述方法还包括:
所述备用主节点列表中优先级最高的备用主节点接收其他从节点发送的主节点更改请求;
所述优先级最高的备用主节点验证各所述主节点更改请求是否有效;
若有效的所述主节点更改请求的数量,大于当前区块链中二分之一以上的节点数量,则确定所述优先级最高的备用主节点为当前主节点;
所述优先级最高的备用主节点向其他节点发送设置请求,所述设置请求中包括:主节点信息,设置主节点请求、主节点签名。
第三方面,本申请另一实施例提供了一种备用主节点列表更新装置,应用于区块链网络中的主节点,所述装置包括:确定模块和更新模块,其中:
所述确定模块,用于根据当前区块链中各节点之间的熟悉度,确定备用主节点列表更新指示;其中,所述熟悉度为根据各节点之间的交易量和共同在网时间确定的字段值数据,用于表示各节点之间的熟悉程度;
所述更新模块,用于根据所述备用主节点列表更新指示,对所述备用主节点列表进行更新。
可选地,所述装置还包括:判断模块,其中:
所述确定模块,还用于获取各从节点发送的更新成功反馈,确定所述更新成功反馈的数量;
所述判断模块,用于判断所述更新成功反馈的数量是否超过预设阈值;
所述确定模块,还用于若超过,则确定所述备用主节点列表更新完成。
可选地,所述确定模块,还用于若所述当前区块链中,各节点之间的熟悉度为第一预设熟悉度,则确定所述备用主节点列表更新指示为第一更新指示,通过带有主节点签名的第一更新指示对所述备用主节点列表进行更新;
所述确定模块,还用于若所述当前区块链中,各节点之间的熟悉度为第二预设熟悉度,则确定所述备用主节点列表更新指示为第二更新指示,通过带有当前区块链中大于二分之一以上节点签名的第二更新指示,对所述备用主节点列表进行更新;
所述确定模块,还用于若所述当前区块链中,各节点之间的熟悉度为第三预设熟悉度,则确定所述备用主节点列表更新指示为第三更新指示,通过带有当前区块链中大于三分之二以上节点签名的第三更新指示,对所述备用主节点列表进行更新。
可选地,所述装置还包括:广播模块,用于将所述备用主节点列表更新指示广播至当前区块链中的各从节点,以使各所述从节点根据所述备用主节点列表更新指示对所述备用主节点列表进行更新。
第四方面,本申请另一实施例提供了一种备用主节点列表更新装置,应用于区块链网络中的从节点,所述装置包括:获取模块、验证模块和更新模块,其中:
所述获取模块,用于获取主节点发送的备用主节点列表更新指示;
所述验证模块,用于对所述备用主节点列表更新指示进行验证;
所述更新模块,用于若验证通过,则根据所述备用主节点列表更新指示对当前备用主节点列表进行更新。
可选地,所述装置还包括:发送模块,用于若所述备用主节点列表更新完成,则向所述主节点发送更新成功反馈。
可选地,所述装置还包括:接收模块和确定模块,其中:
所述接收模块,用于所述备用主节点列表中优先级最高的备用主节点接收其他从节点发送的主节点更改请求;
所述验证模块,还用于所述优先级最高的备用主节点验证各所述主节点更改请求是否有效;
所述确定模块,用于若有效的所述主节点更改请求的数量,大于当前区块链中二分之一以上的节点数量,则确定所述优先级最高的备用主节点为当前主节点;
所述发送模块,还用于所述优先级最高的备用主节点向其他节点发送设置请求,所述设置请求中包括:主节点信息,设置主节点请求、主节点签名。
第五方面,本申请另一实施例提供了一种备用主节点列表更新设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当备用主节点列表更新设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面或第二方面任一所述方法的步骤。
第六方面,本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面或第二方面任一所述方法的步骤。
本申请的有益效果是:采用本申请提供的备用主节点列表更新方法,由于备用主节点列表更新指示是根据当前区块链中各节点之间的熟悉度确定的,所以对于各节点之间熟悉度不同的场景,对应的备用主节点列表更指示也可能不同,从而使得可以根据各节点之间的熟悉度直接确定备用主节点列表更新指示,使得同一个区块链网络可以应用在不同的场景中,而无需在场景更换时,也更换区块链网络,提高了区块链网络的使用率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例提供的备用主节点列表更新方法的流程示意图;
图2为本申请另一实施例提供的备用主节点列表更新方法的流程示意图;
图3为本申请另一实施例提供的备用主节点列表更新方法的流程示意图;
图4为本申请一实施例提供的备用主节点列表更新方法的流程示意图;
图5为本申请另一实施例提供的备用主节点列表更新方法的流程示意图;
图6为本申请另一实施例提供的备用主节点列表更新方法的流程示意图;
图7为本申请一实施例提供的备用主节点列表更新装置的结构示意图;
图8为本申请另一实施例提供的备用主节点列表更新装置的结构示意图;
图9为本申请另一实施例提供的备用主节点列表更新装置的结构示意图;
图10为本申请一实施例提供的备用主节点列表更新装置的结构示意图;
图11为本申请另一实施例提供的备用主节点列表更新装置的结构示意图;
图12为本申请另一实施例提供的备用主节点列表更新装置的结构示意图;
图13为本申请一实施例提供的备用主节点列表更新设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
本申请提供的方法可由区块链网络中的节点执行,其中,区块链网络中的节点可以为终端设备、服务器或集群等。
如下结合多个具体的应用示例,对本申请实施例所提供的备用主节点列表更新方法进行解释说明。图1为本申请一实施例提供的一种备用主节点列表更新方法的流程示意图,执行主体为当前区块链网络中的主节点,如图1所示,该方法包括:
S101:根据当前区块链中各节点之间的熟悉度,确定备用主节点列表更新指示。
其中,熟悉度为根据各节点之间的交易量和共同在网时间确定的字段值数据,用于表示各节点之间的熟悉程度;熟悉度是节点直接互相评价的指标,该指标为字段值的形式体现的,可以为0-100的浮点型数据,用于标识节点之间的熟悉程度,熟悉度越小表示当前区块链中的各节点之间越不熟悉,熟悉度越大表示当前区块链中的各节点之间越熟悉;在本申请的一个实施例中,节点间的熟悉度表示方式可以为:0表示不熟悉、1表示熟悉、2表示信任;但具体字段值和熟悉度之间的对应关系可以根据用户需要设计,并不以上述实施例给出的为限。
可选地,仍以上述实施例中给出的节点间的熟悉度表示方式为例进行说明,在公有链中,因为网络环境或者网络默认假设,可以将所有节点之间的熟悉度固定设置为0。在联盟链中,因为有数字证书和组织管理,所以可以基于证书、组织对熟悉度进行设置,进一步根据区块链上的数据计算并更新熟悉度。具体熟悉度的确定方法可以如下:
一、初始设置过程:若各节点的根证书均为同一跟证书时,由于各节点对应的签发节点证书的根证书相同,有同样的信用背书,因此是相互信任的,则可以将各节点间的熟悉度的初始值设置为2。若各节点在同一个组织,即同一组织内节点是相互信任的(根证书和组织并没有统一对应的关系),则可以将各节点间的熟悉度的初始值设置为2。若各节点对应不同的根证书,且各节点不在同一组织,则可以将各节点间的熟悉度的初始值设置为0,随后再根据区块链上数据变化实时计算更新对应的熟悉度。
二、计算过程:在本申请的一个实施例中,当前区块链中各节点间熟悉度的计算方式均一致,且都是根据区块链上的数据进行计算的,这样每个节点可以计算自己跟当前区块链中任意节点间的熟悉度。
具体的,计算过程需要考虑两个维度的数据,分别为各节点共同在网时长和节点之间的交易量。其中,共同在网时长的计算方式可以为:(当前区块高度)减去(两个节点第一次在链上成功交易的区块高度的最大值)。例如,当前区块高度为100,节点A第一次交易在高度20,节点B第一次交易在高度40,则共同在网时长为100-max(20,40)=60。若节点未交易过,则其第一次链上成功交易的区块高度设置为当前区块高度,此时共同在网时长为0。当在网时长超过第一阈值,则可以将该节点的熟悉度设置为1。
交易量的计算方式可以为:节点统计自己与待确定熟悉度的节点的累积交易数量,当该累积交易数量超过第二阈值时,将该节点与待确定熟悉度的节点间的熟悉度设置为2。
优选的,节点统计自己组织与待确定熟悉度的节点所在组织的交易量,来确定不同组织之间节点的熟悉度。阈值依然沿用第二阈值不变。此时以组织为单位统计,更贴近实际场景。
综上,所有节点可以根据区块链公开的数据计算与当前区块链中任意节点的熟悉度,同时任意两个节点之间计算熟悉度的结果是一致的。
可选地,在本申请的一个实施例中,备用主节点列表中,可根据预设优先级顺序,依次存放有第一备用主节点信息、第二备用主节点信息等;或各备用主节点信息随机存放在备用主节点列表中,但每个备用主节点信息中包括该备用主节点对应的优先级;具体备用主节点列表中,各备用主节点的存放规则可以根据用户需要设计,并不以上述实施例给出的为限。
其中,备用主节点列表的设置,可以使得在主节点发生故障,或主节点主动发出切换请求时,无需通过投票选举或共识机制的方式在从节点中确定主节点,而是直接根据备用主节点列表确定下一个主节点,使得主节点可以快速切换,即切换主节点的效率大提高。
S102:根据备用主节点列表更新指示,对备用主节点列表进行更新。
可选地,在本申请的一个实施例中,除了当前主节点需要根据备用主节点列表更新指示,对备用主节点列表进行更新。当前主节点还需要将备用主节点列表更新指示广播至当前区块链中的各从节点,以使各从节点根据备用主节点列表更新指示对备用主节点列表进行更新。
其中,对备用主节点列表进行更新,即对备用主节点列表进行动态更新和维护,保证备用主节点列表中的各备用主节点均为当前区块链中状态较好,且不存在故障的备用主节点,从而保证后续主节点切换的顺利进行。
可选地,在本申请的一个实施例中,可以按照预设时间间隔,对备用主节点列表进行动态更新,也可以是获取到备用主节点列表更新指令后,再对备用主节点列表进行更新,具体备用主节点列表何时更新,可以根据用于需要设计,并不以上述实施例给出的为限。
采用本申请提供的备用主节点列表更新方法,由于备用主节点列表更新指示是根据当前区块链中各节点之间的熟悉度确定的,所以对于各节点之间熟悉度不同的场景,对应的备用主节点列表更指示也可能不同,从而使得可以根据各节点之间的熟悉度直接确定备用主节点列表更新指示,使得同一个区块链网络可以应用在不同的场景中,而无需在场景更换时,也更换区块链网络,提高了区块链网络的使用率。
可选的,在上述实施例的基础上,本申请实施例还可提供一种备用主节点列表更新方法,如下结合附图进行说明。图2为本申请另一实施例提供的一种备用主节点列表更新方法的流程示意图,如图2所示,S102之后,该方法还包括:
S103:获取各从节点发送的更新成功反馈,确定更新成功反馈的数量。
可选地,在本申请的一个实施例中,若接收到从节点发送的反馈为未更新成功,则可以在一段时间后,再次向该从节点发送更新指示,并获取反馈结果,若反馈更新未成功的次数大于预设阈值,则记录该从节点为故障从节点。
举例说明:主节点接收从节点A发送的反馈为未更新成功,则在30s 后,再次向从节点A发送备用主节点列表更新指示并获取反馈结果,若接收到从节点A反馈的更新未成功的次数大于3次,则记录从节点A为故障从节点。其中,再次发送更新指示的时间间隔和次数的预设阈值可以根据用户需要设计,并不以上述实施例给出的为限。
S104:判断更新成功反馈的数量是否超过预设阈值。
可选地,在本申请的一个实施例中,判断更新成功反馈的数量是否超过预设阈值,需要在预设时间内完成,即判断预设时间内更新成功反馈的数量是否超过预设阈值。举例说明:若预设时间为3分钟,则主节点获取3分钟内,各从节点发送的更新成功反馈,并判断3分钟内更新成功反馈的数量是否超过预设阈值。
若超过,则执行S105:确定备用主节点列表更新完成。
否则,若更新成功反馈的数量未超过预设阈值,则返回执行S101。
可选的,在上述实施例的基础上,本申请实施例还可提供一种备用主节点列表更新方法,如下结合附图进行说明。图3为本申请另一实施例提供的一种备用主节点列表更新方法的流程示意图,如图3所示,S101可包括:
S101a:若当前区块链中,各节点之间的熟悉度为第一预设熟悉度,则确定备用主节点列表更新指示为第一更新指示,通过带有主节点签名的第一更新指示对备用主节点列表进行更新。
可选地,在本申请的一个实施例中,各节点之间的熟悉度可以为用户根据当前区块链之间的状态设置的,即根据当前区块链中各节点的状态选择对应的熟悉度。
其中,第一预设熟悉度表示当前备用主节点列表更新指示只需要带有主节点签名即可。
S101b:若当前区块链中,各节点之间的熟悉度为第二预设熟悉度,则确定备用主节点列表更新指示为第二更新指示,通过带有当前区块链中大于二分之一以上节点签名的第二更新指示,对备用主节点列表进行更新。
其中,第二预设熟悉度表示当前备用主节点列表更新指示需要当前区块链中大于二分之一以上节点签名,对应大多数原则。
S101c:若当前区块链中,各节点之间的熟悉度为第三预设熟悉度,则确定备用主节点列表更新指示为第三更新指示,通过带有当前区块链中大于三分之二以上节点签名的第三更新指示,对备用主节点列表进行更新。
其中,第三预设熟悉度表示当前备用主节点列表更新指示需要当前区块链中大于三分之二以上节点签名,对应拜占庭假设。
这样的设置方式使得在场景不同时,备用主节点列表更新指示需要根据不同的方式确定,使得同一个区块链网络可以应用在不同的场景中,只需用户根据场景的不同调整当前场景对应的熟悉度即可。
采用本申请提供的备用主节点列表更新方法,不但通过设置备用主节点列表形式,来在主节点发生故障,或主节点主动发出切换请求时,直接根据备用主节点列表确定下一个主节点,使得主节点可以快速切换,即切换主节点的效率大提高。并且可以根据不同场景确定当前区块链中,各节点之间的熟悉度,从而确定不同的备用主节点列表更新方法,使得同一个区块链网络可以应用在不同的场景中,提高了区块链网络的使用率。
可选的,在上述实施例的基础上,本申请实施例还可提供一种备用主节点列表更新方法,如下结合附图进行说明。图4为本申请一实施例提供的一种备用主节点列表更新方法的流程示意图,执行主体为区块链网络中的从节点,如图4所示,该方法包括:
S201:获取主节点发送的备用主节点列表更新指示。
S202:对备用主节点列表更新指示进行验证。
其中,对备用主节点列表中的主节点签名进行验证,判断该备用主节点列表更新指示是否为当前区块链网络中的主节点发出的。
若验证通过,则执行S203:根据备用主节点列表更新指示对当前备用主节点列表进行更新。
可选的,在上述实施例的基础上,本申请实施例还可提供一种备用主节点列表更新方法,如下结合附图进行说明。图5为本申请另一实施例提供的一种备用主节点列表更新方法的流程示意图,如图5所示,S203之后,该方法还包括:
S204:若备用主节点列表更新完成,则向主节点发送更新成功反馈。
可选的,在上述实施例的基础上,本申请实施例还可提供一种备用主节点列表更新方法,如下结合附图进行说明。图6为本申请另一实施例提供的一种备用主节点列表更新方法的流程示意图,若主节点故障,则如图6所示,该方法还包括:
S210:备用主节点列表中优先级最高的备用主节点接收其他从节点发送的主节点更改请求。
其中,其他从节点在检测到,或共识出主节点出现延迟等错误后,将触发主节点更改请求,其他从节点获取备用主节点列表中优先级最高的备用主节点信息,并根据该优先级最高的备用主节点信息,生成该从节点对应的主节点更改请求,主节点更改请求中包括:切换主节点请求,新主节点信息,该从节点签名等。
S211:优先级最高的备用主节点验证各主节点更改请求是否有效。
S212:若有效的主节点更改请求的数量,大于当前区块链中二分之一以上的节点数量,则确定优先级最高的备用主节点为当前主节点。
可选地,在本申请的一个实施例中,在一定时间内有效的主节点更改请求的数量大于当前区块链中二分之一以上的节点数量,才会确定优先级最高的备用主节点为当前主节点,否则返回执行S211。
S213:优先级最高的备用主节点向其他节点发送设置请求。
其中,设置请求中包括:主节点信息,设置主节点请求、主节点签名。
可选地,在本申请的另一实施例中,若当前主节点主动发出主节点切换请求,则主节点直接获取备用主节点列表中优先级最高的备用主节点信息,并向该优先级最高的备用主节点信息发送主节点切换请求,该优先级最高的备用主节点信息在验证主节点切换请求的合法性后,将自己切换为当前区块链网络中新的主节点,并向区块链网络中的其他节点广播,以使其他节点修改主节点信息。
下述结合附图对本申请所提供的节点共识装置进行解释说明,该节点共识装置可执行上述图1-图3任一备用主节点列表更新方法,其具体实现以及有益效果参照上述,如下不再赘述。图7为本申请一实施例提供的备用主节点列表更新装置的结构示意图,应用于区块链网络中的主节点,如图 7所示,该装置包括:确定模块301和更新模块302,其中:
确定模块301,用于根据当前区块链中各节点之间的熟悉度,确定备用主节点列表更新指示。其中,熟悉度为根据各节点之间的交易量和共同在网时间确定的字段值数据,用于表示各节点之间的熟悉程度;
更新模块302,用于根据备用主节点列表更新指示,对备用主节点列表进行更新。
图8为本申请另一实施例提供的备用主节点列表更新装置的结构示意图,如图8所示,该装置还包括:判断模块303,其中:
确定模块301,还用于获取各从节点发送的更新成功反馈,确定更新成功反馈的数量。
判断模块303,用于判断更新成功反馈的数量是否超过预设阈值。
确定模块301,还用于若超过,则确定备用主节点列表更新完成。
可选地,确定模块301,还用于若当前区块链中,各节点之间的熟悉度为第一预设熟悉度,则确定备用主节点列表更新指示为第一更新指示,通过带有主节点签名的第一更新指示对备用主节点列表进行更新。
确定模块301,还用于若当前区块链中,各节点之间的熟悉度为第二预设熟悉度,则确定备用主节点列表更新指示为第二更新指示,通过带有当前区块链中大于二分之一以上节点签名的第二更新指示,对备用主节点列表进行更新。
确定模块301,还用于若当前区块链中,各节点之间的熟悉度为第三预设熟悉度,则确定备用主节点列表更新指示为第三更新指示,通过带有当前区块链中大于三分之二以上节点签名的第三更新指示,对备用主节点列表进行更新。
图9为本申请另一实施例提供的备用主节点列表更新装置的结构示意图,如图9所示,该装置还包括:广播模块304,用于将备用主节点列表更新指示广播至当前区块链中的各从节点,以使各从节点根据备用主节点列表更新指示对备用主节点列表进行更新。
下述结合附图对本申请所提供的节点共识装置进行解释说明,该节点共识装置可执行上述图4-图6任一备用主节点列表更新方法,其具体实现以及有益效果参照上述,如下不再赘述。图10为本申请一实施例提供的备用主节点列表更新装置的结构示意图,应用于区块链网络中的从节点,如图 10所示,该装置包括:获取模块401、验证模块402和更新模块403,其中:
获取模块401,用于获取主节点发送的备用主节点列表更新指示。
验证模块402,用于对备用主节点列表更新指示进行验证。
更新模块403,用于若验证通过,则根据备用主节点列表更新指示对当前备用主节点列表进行更新。
图11为本申请另一实施例提供的备用主节点列表更新装置的结构示意图,如图11所示,该装置还包括:发送模块404,用于若备用主节点列表更新完成,则向主节点发送更新成功反馈。
图12为本申请另一实施例提供的备用主节点列表更新装置的结构示意图,如图12所示,该装置还包括:接收模块405和确定模块406,其中:
接收模块405,用于备用主节点列表中优先级最高的备用主节点接收其他从节点发送的主节点更改请求。
验证模块402,还用于优先级最高的备用主节点验证各主节点更改请求是否有效。
确定模块406,用于若有效的主节点更改请求的数量,大于当前区块链中二分之一以上的节点数量,则确定优先级最高的备用主节点为当前主节点。
发送模块404,还用于优先级最高的备用主节点向其他节点发送设置请求,设置请求中包括:主节点信息,设置主节点请求、主节点签名。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图13为本申请一实施例提供的备用主节点列表更新设备的结构示意图,该备用主节点列表更新设备可以集成于终端设备或者终端设备的芯片。
该备用主节点列表更新设备包括:处理器501、存储介质502和总线 503。
处理器501用于存储程序,处理器501调用存储介质502存储的程序,以执行上述图1-图6对应的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种程序产品,例如存储介质,该存储介质上存储有计算机程序,包括程序,该程序在被处理器运行时执行上述方法对应的实施例。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read- Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (9)
1.一种备用主节点列表更新方法,应用于区块链网络中的主节点,其特征在于,所述方法包括:
根据当前区块链中各节点之间的熟悉度,确定备用主节点列表更新指示,包括:若所述当前区块链中,各节点之间的熟悉度为第一预设熟悉度,则确定所述备用主节点列表更新指示为第一更新指示,通过带有主节点签名的第一更新指示对所述备用主节点列表进行更新;
若所述当前区块链中,各节点之间的熟悉度为第二预设熟悉度,则确定所述备用主节点列表更新指示为第二更新指示,通过带有当前区块链中大于二分之一以上节点签名的第二更新指示,对所述备用主节点列表进行更新;
若所述当前区块链中,各节点之间的熟悉度为第三预设熟悉度,则确定所述备用主节点列表更新指示为第三更新指示,通过带有当前区块链中大于三分之二以上节点签名的第三更新指示,对所述备用主节点列表进行更新;
其中,所述熟悉度为根据各节点之间的交易量和共同在网时间确定的字段值数据,用于表示各节点之间的熟悉程度;
根据所述备用主节点列表更新指示,对所述备用主节点列表进行更新。
2.如权利要求1所述的方法,其特征在于,所述根据所述备用主节点列表更新指示,对所述备用主节点列表进行更新之后,该方法还包括:
获取各从节点发送的更新成功反馈,确定所述更新成功反馈的数量;
判断所述更新成功反馈的数量是否超过预设阈值;
若超过,则确定所述备用主节点列表更新完成。
3.如权利要求1所述的方法,其特征在于,所述根据所述备用主节点列表更新指示,对所述备用主节点列表进行更新,包括:
将所述备用主节点列表更新指示广播至当前区块链中的各从节点,以使各所述从节点根据所述备用主节点列表更新指示对所述备用主节点列表进行更新。
4.一种备用主节点列表更新方法,应用于区块链网络中的从节点,其特征在于,所述方法包括:
获取主节点发送的备用主节点列表更新指示;
所述备用主节点列表更新指示是主节点根据当前区块链中各节点之间的熟悉度确定的,包括:
若所述当前区块链中,各节点之间的熟悉度为第一预设熟悉度,则确定所述备用主节点列表更新指示为第一更新指示,通过带有主节点签名的第一更新指示对所述备用主节点列表进行更新;
若所述当前区块链中,各节点之间的熟悉度为第二预设熟悉度,则确定所述备用主节点列表更新指示为第二更新指示,通过带有当前区块链中大于二分之一以上节点签名的第二更新指示,对所述备用主节点列表进行更新;
若所述当前区块链中,各节点之间的熟悉度为第三预设熟悉度,则确定所述备用主节点列表更新指示为第三更新指示,通过带有当前区块链中大于三分之二以上节点签名的第三更新指示,对所述备用主节点列表进行更新;
其中,所述熟悉度为根据各节点之间的交易量和共同在网时间确定的字段值数据,用于表示各节点之间的熟悉程度;
对所述备用主节点列表更新指示进行验证;
若验证通过,则根据所述备用主节点列表更新指示对当前备用主节点列表进行更新。
5.如权利要求4所述的方法,其特征在于,所述根据所述备用主节点列表更新指示对当前备用主节点列表进行更新之后,该方法还包括:
若所述备用主节点列表更新完成,则向所述主节点发送更新成功反馈。
6.如权利要求4所述的方法,其特征在于,若所述主节点故障,则所述方法还包括:
所述备用主节点列表中优先级最高的备用主节点接收其他从节点发送的主节点更改请求;
所述优先级最高的备用主节点验证各所述主节点更改请求是否有效;
若有效的所述主节点更改请求的数量,大于当前区块链中二分之一以上的节点数量,则确定所述优先级最高的备用主节点为当前主节点;
所述优先级最高的备用主节点向其他节点发送设置请求,所述设置请求中包括:主节点信息,设置主节点请求、主节点签名。
7.一种备用主节点列表更新装置,应用于区块链网络中的主节点,其特征在于,所述装置包括:确定模块和更新模块,其中:
所述确定模块,用于根据当前区块链中各节点之间的熟悉度,确定备用主节点列表更新指示,包括:若所述当前区块链中,各节点之间的熟悉度为第一预设熟悉度,则确定所述备用主节点列表更新指示为第一更新指示,通过带有主节点签名的第一更新指示对所述备用主节点列表进行更新;
若所述当前区块链中,各节点之间的熟悉度为第二预设熟悉度,则确定所述备用主节点列表更新指示为第二更新指示,通过带有当前区块链中大于二分之一以上节点签名的第二更新指示,对所述备用主节点列表进行更新;
若所述当前区块链中,各节点之间的熟悉度为第三预设熟悉度,则确定所述备用主节点列表更新指示为第三更新指示,通过带有当前区块链中大于三分之二以上节点签名的第三更新指示,对所述备用主节点列表进行更新;其中,所述熟悉度为根据各节点之间的交易量和共同在网时间确定的字段值数据,用于表示各节点之间的熟悉程度;
所述更新模块,用于根据所述备用主节点列表更新指示,对所述备用主节点列表进行更新。
8.一种备用主节点列表更新装置,应用于区块链网络中的从节点,其特征在于,所述装置包括:获取模块、验证模块和更新模块,其中:
所述获取模块,用于获取主节点发送的备用主节点列表更新指示;所述备用主节点列表更新指示是主节点根据当前区块链中各节点之间的熟悉度确定的,包括:
若所述当前区块链中,各节点之间的熟悉度为第一预设熟悉度,则确定所述备用主节点列表更新指示为第一更新指示,通过带有主节点签名的第一更新指示对所述备用主节点列表进行更新;
若所述当前区块链中,各节点之间的熟悉度为第二预设熟悉度,则确定所述备用主节点列表更新指示为第二更新指示,通过带有当前区块链中大于二分之一以上节点签名的第二更新指示,对所述备用主节点列表进行更新;
若所述当前区块链中,各节点之间的熟悉度为第三预设熟悉度,则确定所述备用主节点列表更新指示为第三更新指示,通过带有当前区块链中大于三分之二以上节点签名的第三更新指示,对所述备用主节点列表进行更新;其中,所述熟悉度为根据各节点之间的交易量和共同在网时间确定的字段值数据,用于表示各节点之间的熟悉程度;
所述验证模块,用于对所述备用主节点列表更新指示进行验证;
所述更新模块,用于若验证通过,则根据所述备用主节点列表更新指示对当前备用主节点列表进行更新。
9.一种备用主节点列表更新设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当备用主节点列表更新设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行上述权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010509115.9A CN111711537B (zh) | 2020-06-07 | 2020-06-07 | 备用主节点列表更新方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010509115.9A CN111711537B (zh) | 2020-06-07 | 2020-06-07 | 备用主节点列表更新方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111711537A CN111711537A (zh) | 2020-09-25 |
CN111711537B true CN111711537B (zh) | 2022-10-25 |
Family
ID=72539133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010509115.9A Active CN111711537B (zh) | 2020-06-07 | 2020-06-07 | 备用主节点列表更新方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111711537B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788522B1 (en) * | 2007-05-31 | 2010-08-31 | Oracle America, Inc. | Autonomous cluster organization, collision detection, and resolutions |
CN108365993A (zh) * | 2018-03-09 | 2018-08-03 | 深圳前海微众银行股份有限公司 | 区块链节点动态变更方法、系统和计算机可读存储介质 |
CN108667487A (zh) * | 2018-05-19 | 2018-10-16 | 杭州海兴电力科技股份有限公司 | 基于优先注册名单的g3载波网络动态调整和组网方法 |
CN110351133A (zh) * | 2019-06-28 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 用于区块链系统中的主节点切换处理的方法及装置 |
CN110944046A (zh) * | 2019-11-21 | 2020-03-31 | 腾讯科技(深圳)有限公司 | 一种共识机制的控制方法及相关设备 |
-
2020
- 2020-06-07 CN CN202010509115.9A patent/CN111711537B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788522B1 (en) * | 2007-05-31 | 2010-08-31 | Oracle America, Inc. | Autonomous cluster organization, collision detection, and resolutions |
CN108365993A (zh) * | 2018-03-09 | 2018-08-03 | 深圳前海微众银行股份有限公司 | 区块链节点动态变更方法、系统和计算机可读存储介质 |
CN108667487A (zh) * | 2018-05-19 | 2018-10-16 | 杭州海兴电力科技股份有限公司 | 基于优先注册名单的g3载波网络动态调整和组网方法 |
CN110351133A (zh) * | 2019-06-28 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 用于区块链系统中的主节点切换处理的方法及装置 |
CN110944046A (zh) * | 2019-11-21 | 2020-03-31 | 腾讯科技(深圳)有限公司 | 一种共识机制的控制方法及相关设备 |
Non-Patent Citations (1)
Title |
---|
一种基于分组的区块链共识算法;张思贤等;《计算机应用与软件》;20200312(第03期);第267-271、315页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111711537A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
JP7398000B2 (ja) | ブロックチェーンに基づくデータ検出方法及び装置並びにコンピュータ装置及びプログラム | |
CN112907369B (zh) | 基于区块链的数据共识方法及装置、电子设备、存储介质 | |
CN111786818A (zh) | 一种区块链共识节点状态监控方法和装置 | |
CN111275438B (zh) | 区块链网络的共识方法、装置、设备和存储介质 | |
CN110705893B (zh) | 一种业务节点管理方法、装置、设备以及存储介质 | |
CN113220483A (zh) | 一种区块链共识主节点的切换方法及系统 | |
CN112182113B (zh) | 区块链共识方法、系统、电子设备及存储介质 | |
CN113872828B (zh) | 区块链预言机状态监控方法 | |
CN110928880A (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
CN112398692A (zh) | 共识流程处理方法、装置和电子设备 | |
CN111626498A (zh) | 设备运行状态预测方法、装置、设备及存储介质 | |
CN111343212B (zh) | 消息处理方法、装置、设备以及存储介质 | |
CN111711537B (zh) | 备用主节点列表更新方法、装置及设备 | |
CN112202647A (zh) | 区块链网络中的测试方法、装置及测试设备 | |
CN110019481A (zh) | 内存数据库访问方法、装置、设备及介质 | |
CN112073329A (zh) | 分布式限流方法、装置、电子设备和存储介质 | |
CN114003384A (zh) | 任务管理的方法、装置和设备 | |
CN111198986B (zh) | 信息发送方法、装置、电子设备及存储介质 | |
CN112258184A (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
Su | Cross-chain interaction model in a fully verified way | |
CN110955647A (zh) | 数据库辅助方法、装置、计算机设备和存储介质 | |
CN115242615B (zh) | 服务器的运行管理方法、装置、电子设备及存储介质 | |
CN113965489B (zh) | 链路超时检测方法、装置、计算机设备和存储介质 | |
CN117041356B (zh) | 指标分发方法、指标计算方法、装置、电子设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |