CN112532436B - 一种区块链节点状态转换方法及区块链系统 - Google Patents
一种区块链节点状态转换方法及区块链系统 Download PDFInfo
- Publication number
- CN112532436B CN112532436B CN202011322647.8A CN202011322647A CN112532436B CN 112532436 B CN112532436 B CN 112532436B CN 202011322647 A CN202011322647 A CN 202011322647A CN 112532436 B CN112532436 B CN 112532436B
- Authority
- CN
- China
- Prior art keywords
- node
- authorization
- information
- master node
- heartbeat information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000006243 chemical reaction Methods 0.000 title abstract description 11
- 238000013475 authorization Methods 0.000 claims abstract description 236
- 238000004891 communication Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- 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/30—Decision processes by autonomous network management units using voting and bidding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/108—Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请涉及一种区块链节点状态转换方法及区块链系统,包括:获取区块链系统中主节点的第一心跳信息以及区块链系统中从节点的第二心跳信息;在根据主节点对应的授权期限以及第一心跳信息判定主节点授权到期时,根据第一心跳信息以及第二心跳信息在从节点中确定新的主节点;生成与新的主节点对应的授权信息;将授权信息广播至区块链系统中的节点,以使节点在判断授权信息满足预设的合法性要求时,根据授权信息对各个节点中的主节点信息进行更新。本申请通过判断主节点是否授权到期的方式确定是否进行主节点切换,可以使区块链系统中的同一时刻最多只存在一个主节点;进而可以有效解决单纯依赖心跳信息进行新的主节点的选举之后,导致的双主问题。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链节点状态转换方法及区块链系统。
背景技术
随着区块链技术的发展和广泛应用,越来越多的区块链系统应运而生。
目前很多区块链系统(尤其是联盟链)之间采用的共识协议是类似于Raft、BFT相关的共识协议,这类共识协议有一个特点,他们通常都会有一个Leader节点,Leader节点负责进行交易的打包,然后与其他节点进行通信,完成共识的流程。
这样就会触发一个Leader异常的情况下,新Leader的选举问题。
目前的区块链系统都是通过心跳的方式来判断Leader是否异常,Leader会定时向其他节点发送心跳信息,当其他节点无法接收到心跳信息时,认为该Leader节点异常。此时由未收到心跳的节点发出选择新Leader的提案,并且会选择一个节点作为新的Leader,该提案被广播至网络中的节点,若被网络中多数节点认可,则进行切换。
在目前的节点状态判断方案中,主要会存在以下几个问题:
1、典型的“双主”问题,在实际中,Leader节点可能与部分节点之间通信异常,而与其他节点之间是正常的,假设最终可重新选举成功,那么意味着与旧Leader节点之间通信正常的节点会在一段时间内接收到两个Leader信息,由于Leader本身决定了共识的交易批次,这样就会导致该节点处理异常,并且由于区块链数据是一种不可回滚的数据操作,这种情况下造成的影响几乎是不可处理的;
2、基于心跳的处理存在另外一个比较致命的风险就是,很多时候网络是瞬断的,可能由于一些拥塞的原因导致,过一段时间就恢复正常了,这个时候触发的领导者改变可能会导致整个系统不稳定,同时,领导者改变完成后,后续还有一些数据需要同步。
针对相关技术中存在的诸多技术问题,目前尚未提供有效的解决方案。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种区块链节点状态转换方法及区块链系统。
第一方面,本申请实施例提供了一种区块链系统,包括:授权节点、主节点和从节点;
所述主节点用于向所述授权节点定时发送第一心跳信息;
所述从节点用于向所述授权节点定时发送第二心跳信息;
所述授权节点用于在根据所述主节点对应的授权期限以及所述第一心跳信息判定所述主节点授权到期时,根据所述第一心跳信息以及所述第二心跳信息在所述从节点中确定新的主节点;
所述授权节点还用于生成与所述新的主节点对应的授权信息;
所述从节点还接收所述授权节点广播的所述授权信息,在判断所述授权信息满足预设的合法性要求时,根据所述授权信息对主节点信息进行更新。
可选的,如前述的系统,所述授权节点用于:
确定预先设定的授权时长;
接收得到所述第一心跳信息的第一接收时间;
根据所述授权时长以及第一接收时间确定所述授权期限;所述授权期限的起始时间为所述第一接收时间,所述授权期限的终止时间距离所述第一接收时间的时长为所述授权时长;
在所述授权期限内未接收到所述主节点发送的最新的第一心跳信息时,判定所述主节点授权到期。
可选的,如前述的系统,所述第一心跳信息包括:第一区块链状态信息;所述第二心跳信息包括:第二区块链状态信息;所述授权节点用于:
在所有所述第二心跳信息中确定第二区块链状态信息与所述主节点的第一区块链状态信息相似度最高的目标第二心跳信息;
将所述目标第二心跳信息对应的从节点作为所述新的主节点。
可选的,如前述的系统,所述第一心跳信息包括:第一节点ID;所述第二心跳信息包括:第二节点ID;所述授权节点用于:
在存在多个所述目标第二心跳信息时,在所有候选第二节点ID中,选取得到与所述第一节点ID满足预设的ID选取策略的目标第二节点ID;其中,所述候选第二节点ID是与所述目标第二心跳信息对应的第二节点ID;
将所述目标第二节点ID对应的从节点作为所述新的主节点。
可选的,如前述的系统,在确定所述新的主节点后,所述主节点成为历史主节点,
所述历史主节点,用于向授权节点发送授权信息获取请求;所述授权信息获取请求为:所述历史主节点在根据所述授权期限判定最近缓存的历史授权信息已过期后,生成的用于获取最新授权信息的请求;
所述授权节点,还用于根据所述授权信息获取请求,查询得到所述最新的授权信息,并将所述最新的授权信息发送至所述历史主节点;
所述历史主节点,还用于根据所述最新的授权信息获取所述新的主节点的节点信息。
可选的,如前述的系统,
所述主节点,还用于在所述授权期限内发送最新的第一心跳信息;
所述授权节点,还用于根据接收到的所述最新的第一心跳信息的第二接收时间以及预设的授权时长,确定所述主节点对应的最新授权到期时间。
第二方面,本申请实施例提供了一种区块链节点状态转换方法,包括:
获取区块链系统中主节点的第一心跳信息以及所述区块链系统中从节点的第二心跳信息;
在根据所述主节点对应的授权期限以及所述第一心跳信息判定所述主节点授权到期时,根据所述第一心跳信息以及所述第二心跳信息在所述从节点中确定新的主节点;
生成与所述新的主节点对应的授权信息;
将所述授权信息广播至所述区块链系统中的节点,以使所述节点在判断所述授权信息满足预设的合法性要求时,根据所述授权信息对各个所述节点中的主节点信息进行更新。
可选的,如前述的方法,所述根据所述主节点对应的授权期限以及所述第一心跳信息判定所述主节点授权到期,包括:
确定预先设定的授权时长;
确定接收得到所述第一心跳信息的第一接收时间;
根据所述授权时长以及第一接收时间确定所述授权期限;所述授权期限的起始时间为所述第一接收时间,所述授权期限的终止时间距离所述第一接收时间的时长为所述授权时长;
在所述授权期限内未接收到所述主节点发送的最新的第一心跳信息时,判定所述主节点授权到期。
可选的,如前述的方法,所述第一心跳信息包括:第一区块链状态信息;所述第二心跳信息包括:第二区块链状态信息;所述根据所述第一心跳信息以及所述第二心跳信息在所述从节点中确定新的主节点,包括:
在所有所述第二心跳信息中确定第二区块链状态信息与所述主节点的第一区块链状态信息相似度最高的目标第二心跳信息;
将所述目标第二心跳信息对应的从节点作为所述新的主节点。
可选的,如前述的方法,所述第一心跳信息包括:第一节点ID;所述第二心跳信息包括:第二节点ID;所述根据所述第一心跳信息以及所述第二心跳信息在所述从节点中确定新的主节点,包括:
在存在多个所述目标第二心跳信息时,在所有候选第二节点ID中,选取得到与所述第一节点ID满足预设的ID选取策略的目标第二节点ID;其中,所述候选第二节点ID是与所述目标第二心跳信息对应的第二节点ID;
将所述目标第二节点ID对应的从节点作为所述新的主节点。
可选的,如前述的方法,还包括:
接收历史主节点发送的授权信息获取请求;在确定所述新的主节点后,所述主节点成为所述历史主节点;所述授权信息获取请求为:所述历史主节点在根据所述授权期限判定最近缓存的历史授权信息已过期后,生成的用于获取最新授权信息的请求;
查询得到所述最新的授权信息,并将所述最新的授权信息发送至所述历史主节点;以使所述历史主节点获取所述新的主节点的节点信息。
可选的,如前述的方法,还包括:
接收所述主节点在所述授权期限内发送的最新的第一心跳信息;
根据接收所述最新的第一心跳信息的第二接收时间以及预设的授权时长,确定所述主节点对应的最新授权到期时间。
第三方面,本申请实施例提供了一种授权节点,包括:
获取模块,用于获取区块链系统中主节点的第一心跳信息以及所述区块链系统中从节点的第二心跳信息;
确定模块,用于在根据所述主节点对应的授权期限以及所述第一心跳信息判定所述主节点授权到期时,根据所述第一心跳信息以及所述第二心跳信息在所述从节点中确定新的主节点;
生成模块,用于生成与所述新的主节点对应的授权信息;
广播模块,用于将所述授权信息广播至所述区块链系统中的节点,以使所述节点在判断所述授权信息满足预设的合法性要求时,根据所述授权信息对各个所述节点中的主节点信息进行更新。
第四方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现如前述任一项所述的处理方法。
第五方面,本申请实施例提供了一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如前述任一项所述的处理方法。
本申请实施例提供了一种区块链节点状态转换方法及区块链系统,包括:获取区块链系统中主节点的第一心跳信息以及所述区块链系统中从节点的第二心跳信息;在根据所述主节点对应的授权期限以及所述第一心跳信息判定所述主节点授权到期时,根据所述第一心跳信息以及所述第二心跳信息在所述从节点中确定新的主节点;生成与所述新的主节点对应的授权信息;将所述授权信息广播至所述区块链系统中的节点,以使所述节点在判断所述授权信息满足预设的合法性要求时,根据所述授权信息对各个所述节点中的主节点信息进行更新。采用本申请实施例的方法,可以通过判断主节点是否授权到期的方式确定是否进行主节点切换,可以使区块链系统中的同一时刻最多只存在一个主节点;进而可以有效解决单纯依赖心跳信息进行新的主节点的选举之后,导致的双主问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种区块链节点状态转换方法的流程示意图;
图2为本申请另一实施例提供的一种区块链节点状态转换方法的流程示意图;
图3为本申请另一实施例提供的一种区块链节点状态转换方法的流程示意图;
图4为本申请另一实施例提供的一种区块链节点状态转换方法的流程示意图;
图5为本申请实施例提供的一种授权节点的框图;
图6为本申请实施例提供的一种区块链系统的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种区块链节点状态转换方法,包括如下所述步骤S1至S4:
步骤S1.获取区块链系统中主节点的第一心跳信息以及区块链系统中从节点的第二心跳信息。
具体的,第一心跳信息是主节点(即:leader节点)的心跳信息;第二心跳信息是从节点(即:follower节点)的心跳信息;主节点和从节点分别对应于一条区块链,且位于同一区块链系统中。
步骤S2.在根据主节点对应的授权期限以及第一心跳信息判定主节点授权到期时,根据第一心跳信息以及第二心跳信息在从节点中确定新的主节点。
具体的,授权是否到期是通过主节点对应的授权期限以及第一心跳信息进行判断得到的。授权期限指的是该当前的主节点能够继续担任主节点职责的持续时长,并且在主节点授权到期时,会重新装载从节点中选择一个作为新的主节点;因此该主节点身份便会发生更改,并成为一个从节点。
步骤S3.生成与新的主节点对应的授权信息。
具体的,授权信息可以包括但不限于:新的主节点的信息(例如:ID),新的主节点的授权期限(可以包括:授权开始时间,授权结束时间),授权内容(例如:授权为主节点、授权为从节点)等等。
步骤S4.将授权信息广播至区块链系统中的节点,以使节点在判断授权信息满足预设的合法性要求时,根据授权信息对各个节点中的主节点信息进行更新。
具体的,节点可以是:新的主节点、原有的从节点、以及原有的主节点;一般情况下,预设的合法性要求可以是合法;授权信息广播至区块链系统中的节点之后,各个节点会对该授权信息的合法性进行判断,并在授权信息合法时,对各个节点自身中存储的主节点信息进行更新;以确定新的进行通信,以及主导共识流程的主节点。
采用本申请实施例的方法,可以通过判断主节点是否授权到期的方式确定是否进行主节点切换,可以使区块链系统中的同一时刻最多只存在一个主节点;进而可以有效解决单纯依赖心跳信息进行新的主节点的选举之后,导致的双主问题。
如图2所示,在一些实施例中,如前述的方法,步骤S2根据主节点对应的授权期限以及第一心跳信息判定主节点授权到期,包括如下所述步骤S211至S214:
步骤S211.确定预先设定的授权时长。
也就是说,授权时长可以是由人为预设得到的一个表征时长的数值;且授权时长的选择可以根据具体使用时,主节点的最长故障时长等信息得到,一般的,不会影响区块链系统的正常运行即可。
步骤S212.确定接收得到第一心跳信息的第一接收时间。
具体的,第一接收时间可以是实现本实施例的方法的装置在接收得到第一心跳信息的时候,记录得到的时间;在一些可选的实现方式中,还可以是第一心跳信息中携带的主节点生成或发送第一心跳信息的时间。
步骤S213.根据授权时长以及第一接收时间确定授权期限;授权期限的起始时间为第一接收时间,授权期限的终止时间距离第一接收时间的时长为授权时长。
具体的,由于授权时长是预设的一固定值,因此,授权期限是由第一接收时间决定的;也就是说,由接收得到第一心跳信息的第一接收时间确定授权期限;进一步的,当在授权期限内又收到了最新的第一心跳信息之后,则会得到最新的第一接收时间,因此授权期限也会随之延长。
步骤S214.在授权期限内未接收到主节点发送的最新的第一心跳信息时,判定主节点授权到期。
也就是说,在授权期限内未接收到主节点发送的最新的第一心跳信息时,则授权期限无法进行延长,因此,则会在授权期限内随之到期,并且,在主节点授权到期之后,该主节点便无法再继续作为主节点执行相关的动作,例如:负责进行交易的打包、与其他节点进行通信、完成共识的流程等等。
在一些实施例中,如前述的方法,第一心跳信息包括:第一区块链状态信息;第二心跳信息包括:第二区块链状态信息;步骤S2根据第一心跳信息以及第二心跳信息在从节点中确定新的主节点,包括如下所述步骤S221和S222:
步骤S221.在所有第二心跳信息中确定第二区块链状态信息与主节点的第一区块链状态信息相似度最高的目标第二心跳信息。
具体的,区块链状态信息可以包括但不限于:每个节点对应的区块中记录的信息,以及每个节点的客户端上接收到,但未写入区块中(即:已接收到,但未完成共识)的信息等等。
由于,区块链中共识的完成需要由主节点将信息发送至各个节点后才能进行,因此,各个从节点可以将其接收到的信息先发送至主节点,然后再由主节点发送至其它从节点;因此,其中相似度最高可以是:各个从节点与主节点之间的信息数量最接近,以根据相似度判断哪个从节点中的信息最完整。
其中,目标第二心跳信息即为,与第一心跳信息相似度最高的第二心跳信息。步骤S222.将目标第二心跳信息对应的从节点作为新的主节点。
也就是说,在确定与主节点一致性最高的目标第二心跳信息对应的从节点之后,将其作为新的主节点,并且一般的,将原来的主节点的身份修改为从节点。
其中一种可选的实现方法可以是:在正常情况下,实现本实施例方法的装置可以接收所有节点会发送自己的心跳信息,心跳信息的内容包括各个节点对应的节点标识信息(例如:节点ID等等)和接收到客户端消息状态(即:第一区块链状态信息或第二区块链状态信息),其中,客户端消息状态描述的是节点目前接收到的客户端消息情况,可以是接收到所有的客户端消息的数量,也可以采用递归Hash的处理方式。其中,递归Hash的处理方案可以是:每接收到N个消息,就将该N个消息打包计算Hash,然后与之前的N个消息打包的Hash值再进行打包Hash计算,通过该方式可以判断哪个从节点与主节点接收到的状态一致。
在一些实施例中,如前述的方法,第一心跳信息包括:第一节点ID;第二心跳信息包括:第二节点ID;步骤S2根据第一心跳信息以及第二心跳信息在从节点中确定新的主节点,包括如下所述步骤S231和S232:
步骤S231.在存在多个目标第二心跳信息时,在所有候选第二节点ID中,选取得到与第一节点ID满足预设的ID选取策略的目标第二节点ID;其中,候选第二节点ID是与目标第二心跳信息对应的第二节点ID;
步骤S232.将目标第二节点ID对应的从节点作为新的主节点。
具体的,在存在多个目标第二心跳信息时,即意味着:与主节点的相似度最高的从节点存在多个。由于不能存在多个主节点,因此需要从中选取一个从节点作为新的主节点。
节点ID是与每个节点对应的标识信息,且每个节点ID都是全局唯一的;其中第一节点ID则是与当前的主节点对应的节点ID,第二节点ID则是与各个从节点对应的节点ID,候选第二节点ID是与目标第二心跳信息对应的第二节点ID;在存在多个第二区块链状态信息与第一区块链状态信息相似度一致时,根据节点的ID进行新的主节点的选择。
ID选取策略即为根据ID进行新的主节点的选择的策略,可以是:从各个候选第二节点ID中选择第一节点ID最接近(例如:ID的差值最小等等)的作为目标第二节点ID。
进而,采用本实施例的方法,在得到多个目标第二心跳信息时,仍然可以从所有从节点中,确定得到新的主节点,以保证主节点的唯一性。
如图3所示,在一些实施例中,如前述的方法,还包括如下所述步骤S5和S6:
步骤S5.接收历史主节点发送的授权信息获取请求;在确定新的主节点后,主节点成为历史主节点;授权信息获取请求为:历史主节点在根据授权期限判定最近缓存的历史授权信息已过期后,生成的用于获取最新授权信息的请求;
步骤S6.查询得到最新的授权信息,并将最新的授权信息发送至历史主节点;以使历史主节点获取新的主节点的节点信息。
也就是说,在主节点授权期限过期之后,其身份变成历史主节点(即:相当于当前的从节点)。
一般的,主节点授权期限过期,是由于在授权期限内未发送新的心跳信息至授权节点(即:实现本实施例方法的装置),无法进行延期而导致的。造成该类情况,一般是由于存在网络故障等原因,因此,历史主节点也一般无法接收得到前述实施例中发送的授权信息,进而,当历史主节点的网络恢复后,首先会判断自身是否还在授权期限内,若不在,则通过主动发送授权信息获取请求获取授权信息。可选的,历史主节点也可以直接发送心跳信息给授权节点,授权节点可以根据心跳信息判断,发送最新的授权信息。
其中,授权信息可以是在进行主节点切换时进行广播,也可以是主节点进行续期时(用于广播主节点最新的到期时间)进行广播;因此,当不通过新的授权信息对旧的授权信息进行覆盖时,存储介质中会存在多个授权信息,可选的,存储时可以按照时序进行存储,以便于快速查询得到最新的授权信息。
将最新的授权信息发送至历史主节点之后,该历史主节点即可获取新的主节点的节点信息,以便于后期进行共识以及信息接收。
如图4所示,在一些实施例中,如前述的方法,还包括如下所述步骤S7和S8:
步骤S7.接收主节点在授权期限内发送的最新的第一心跳信息;
步骤S8.根据接收最新的第一心跳信息的第二接收时间以及预设的授权时长,确定主节点对应的最新授权到期时间。
具体的,主节点本身可以判断自身当前的授权期限是否已经到期;当未到期时,主节点可以发送了最新的第一心跳信息至实现本实施例方法的装置;以根据接收最新的第一心跳信息的第二接收时间以及授权时长对其授权期限进行延期,并得到主节点对应的最新授权到期时间。举例的:当授权期限是2020-03-19-18:00:00至2020-03-19-18:00:05,且授权时长是5秒,接收到最新的第一心跳信息的时间是2020-03-19-18:00:03时,则最新的授权到期时间是2020-03-19-18:00:08。
进而,采用本实施例中的方法可以达到主节点只要在授权到期前发送最新的第一心跳信息即可实现授权延期;因此,即使出现网络瞬断,只要在授权期限内进行最新的第一心跳信息的发送就无需进行不必要的主节点的切换。即:假设在一个授权期限内由于网络波动导致授权节点没有收到部分心跳,也不会影响其判断。
如图5所示,根据本申请的另一方面的一个实施例,还提供了一种授权节点1,包括:
获取模块11,用于获取区块链系统中主节点的第一心跳信息以及区块链系统中从节点的第二心跳信息;
确定模块12,用于在根据主节点对应的授权期限以及第一心跳信息判定主节点授权到期时,根据第一心跳信息以及第二心跳信息在从节点中确定新的主节点;
生成模块13,用于生成与新的主节点对应的授权信息;
广播模块14,用于将授权信息广播至区块链系统中的节点,以使节点在判断授权信息满足预设的合法性要求时,根据授权信息对各个节点中的主节点信息进行更新。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
如图6所示,根据本申请的另一方面的一个实施例,还提供了一种区块链系统,包括:授权节点1、主节点2和从节点3;
主节点2,用于向授权节点定时发送第一心跳信息;
从节点3,用于向授权节点定时发送第二心跳信息;
授权节点1,用于在根据主节点对应的授权期限以及第一心跳信息判定主节点授权到期时,根据第一心跳信息以及第二心跳信息在从节点中确定新的主节点;
授权节点1,还用于生成与新的主节点对应的授权信息;
从节点3还接收授权节点广播的授权信息,在判断授权信息满足预设的合法性要求时,根据授权信息对主节点信息进行更新。其中,合法性要求可以包括但不限于:授权信息中的主节点的ID是否真实存在,发送授权信息的是否是授权节点,授权信息是否已过期(例如:距离当前时间点的时长是否超过授权时长)等等。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
在一些实施例中,如前述的系统,授权节点1用于:
确定预先设定的授权时长;
接收得到第一心跳信息的第一接收时间;
根据授权时长以及第一接收时间确定授权期限;授权期限的起始时间为第一接收时间,授权期限的终止时间距离第一接收时间的时长为授权时长;
在授权期限内未接收到主节点发送的最新的第一心跳信息时,判定主节点授权到期。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
在一些实施例中,如前述的系统,第一心跳信息包括:第一区块链状态信息;第二心跳信息包括:第二区块链状态信息;授权节点1用于:
在所有第二心跳信息中确定第二区块链状态信息与主节点的第一区块链状态信息相似度最高的目标第二心跳信息;
将目标第二心跳信息对应的从节点作为新的主节点。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
在一些实施例中,如前述的系统,第一心跳信息包括:第一节点ID;第二心跳信息包括:第二节点ID;授权节点1用于:
在存在多个目标第二心跳信息时,在所有候选第二节点ID中,选取得到与第一节点ID满足预设的ID选取策略的目标第二节点ID;其中,候选第二节点ID是与目标第二心跳信息对应的第二节点ID;
将目标第二节点ID对应的从节点作为新的主节点。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
在一些实施例中,如前述的系统,在确定新的主节点后,主节点成为历史主节点,
历史主节点,用于向授权节点发送授权信息获取请求;授权信息获取请求为:历史主节点在根据授权期限判定最近缓存的历史授权信息已过期后,生成的用于获取最新授权信息的请求;
授权节点1,还用于根据授权信息获取请求,查询得到最新的授权信息,并将最新的授权信息发送至历史主节点;
历史主节点,还用于根据最新的授权信息获取新的主节点的节点信息。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
在一些实施例中,如前述的系统,
主节点2,还用于在授权期限内发送最新的第一心跳信息;
授权节点1,还用于根据接收到的最新的第一心跳信息的第二接收时间以及预设的授权时长,确定主节点对应的最新授权到期时间。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
根据本申请的另一个实施例,还提供一种电子设备,包括:如图7所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的程序时,实现上述方法实施例的步骤。
上述电子设备提到的总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述方法实施例的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种区块链系统,其特征在于,包括:授权节点、主节点和从节点;
所述主节点,用于向所述授权节点定时发送第一心跳信息;所述第一心跳信息包括:第一区块链状态信息;
所述从节点,用于向所述授权节点定时发送第二心跳信息;所述第二心跳信息包括:第二区块链状态信息;
所述授权节点,用于在根据所述主节点对应的授权期限以及所述第一心跳信息判定所述主节点授权到期时,根据所述第一心跳信息以及所述第二心跳信息在所述从节点中确定新的主节点;在所有所述第二心跳信息中确定第二区块链状态信息与所述主节点的第一区块链状态信息相似度最高的目标第二心跳信息;将所述目标第二心跳信息对应的从节点作为所述新的主节点;
所述授权节点,还用于生成与所述新的主节点对应的授权信息;
所述从节点,还用于接收所述授权节点广播的所述授权信息,在判断所述授权信息满足预设的合法性要求时,根据所述授权信息对主节点信息进行更新。
2.根据权利要求1所述的系统,其特征在于,所述授权节点用于:
确定预先设定的授权时长;
接收得到所述第一心跳信息的第一接收时间;
根据所述授权时长以及第一接收时间确定所述授权期限;所述授权期限的起始时间为所述第一接收时间,所述授权期限的终止时间距离所述第一接收时间的时长为所述授权时长;
在所述授权期限内未接收到所述主节点发送的最新的第一心跳信息时,判定所述主节点授权到期。
3.根据权利要求1所述的系统,其特征在于,所述第一心跳信息包括:第一节点ID;所述第二心跳信息包括:第二节点ID;所述授权节点用于:
在存在多个所述目标第二心跳信息时,在所有候选第二节点ID中,选取得到与所述第一节点ID满足预设的ID选取策略的目标第二节点ID;其中,所述候选第二节点ID是与所述目标第二心跳信息对应的第二节点ID;
将所述目标第二节点ID对应的从节点作为所述新的主节点。
4.根据权利要求2所述的系统,其特征在于,在确定所述新的主节点后,所述主节点成为历史主节点,
所述历史主节点,用于向授权节点发送授权信息获取请求;所述授权信息获取请求为:所述历史主节点在根据所述授权期限判定最近缓存的历史授权信息已过期后,生成的用于获取最新授权信息的请求;
所述授权节点,还用于根据所述授权信息获取请求,查询得到所述最新的授权信息,并将所述最新的授权信息发送至所述历史主节点;
所述历史主节点,还用于根据所述最新的授权信息获取所述新的主节点的节点信息。
5.根据权利要求1所述的系统,其特征在于,
所述主节点,还用于在所述授权期限内发送最新的第一心跳信息;
所述授权节点,还用于根据接收到的所述最新的第一心跳信息的第二接收时间以及预设的授权时长,确定所述主节点对应的最新授权到期时间。
6.一种区块链节点状态转换方法,其特征在于,包括:
获取区块链系统中主节点的第一心跳信息以及所述区块链系统中从节点的第二心跳信息;所述第一心跳信息包括:第一区块链状态信息;所述第二心跳信息包括:第二区块链状态信息;
在根据所述主节点对应的授权期限以及所述第一心跳信息判定所述主节点授权到期时,在所有所述第二心跳信息中确定第二区块链状态信息与所述主节点的第一区块链状态信息相似度最高的目标第二心跳信息;将所述目标第二心跳信息对应的从节点作为新的主节点;
生成与所述新的主节点对应的授权信息;
将所述授权信息广播至所述区块链系统中的节点,以使所述节点在判断所述授权信息满足预设的合法性要求时,根据所述授权信息对各个所述节点中的主节点信息进行更新。
7.根据权利要求6所述的方法,其特征在于,所述根据所述主节点对应的授权期限以及所述第一心跳信息判定所述主节点授权到期,包括:
确定预先设定的授权时长;
确定接收得到所述第一心跳信息的第一接收时间;
根据所述授权时长以及第一接收时间确定所述授权期限;所述授权期限的起始时间为所述第一接收时间,所述授权期限的终止时间距离所述第一接收时间的时长为所述授权时长;
在所述授权期限内未接收到所述主节点发送的最新的第一心跳信息时,判定所述主节点授权到期。
8.根据权利要求7所述的方法,其特征在于,所述第一心跳信息包括:第一节点ID;所述第二心跳信息包括:第二节点ID;根据所述第一心跳信息以及所述第二心跳信息在所述从节点中确定新的主节点,包括:
在存在多个所述目标第二心跳信息时,在所有候选第二节点ID中,选取得到与所述第一节点ID满足预设的ID选取策略的目标第二节点ID;其中,所述候选第二节点ID是与所述目标第二心跳信息对应的第二节点ID;
将所述目标第二节点ID对应的从节点作为所述新的主节点。
9.根据权利要求7所述的方法,其特征在于,还包括:
接收历史主节点发送的授权信息获取请求;在确定所述新的主节点后,所述主节点成为所述历史主节点;所述授权信息获取请求为:所述历史主节点在根据所述授权期限判定最近缓存的历史授权信息已过期后,生成的用于获取最新授权信息的请求;
查询得到所述最新的授权信息,并将所述最新的授权信息发送至所述历史主节点;以使所述历史主节点获取所述新的主节点的节点信息。
10.根据权利要求6所述的方法,其特征在于,还包括:
接收所述主节点在所述授权期限内发送的最新的第一心跳信息;
根据接收所述最新的第一心跳信息的第二接收时间以及预设的授权时长,确定所述主节点对应的最新授权到期时间。
11.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现权利要求6-10任一项所述的方法步骤。
12.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行权利要求6-10任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011322647.8A CN112532436B (zh) | 2020-11-23 | 2020-11-23 | 一种区块链节点状态转换方法及区块链系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011322647.8A CN112532436B (zh) | 2020-11-23 | 2020-11-23 | 一种区块链节点状态转换方法及区块链系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112532436A CN112532436A (zh) | 2021-03-19 |
CN112532436B true CN112532436B (zh) | 2024-05-28 |
Family
ID=74992864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011322647.8A Active CN112532436B (zh) | 2020-11-23 | 2020-11-23 | 一种区块链节点状态转换方法及区块链系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112532436B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113904909B (zh) * | 2021-12-02 | 2022-03-11 | 广州英码信息科技有限公司 | 分布式坐席管理系统的网络环境变化自适应方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137017A (zh) * | 2011-03-17 | 2011-07-27 | 华为技术有限公司 | 用于虚拟网络单元的工作方法及装置 |
CN108123851A (zh) * | 2017-12-29 | 2018-06-05 | 北京奇虎科技有限公司 | 分布式系统中主从节点同步链路的存活检测方法及装置 |
CN110417600A (zh) * | 2019-08-02 | 2019-11-05 | 秒针信息技术有限公司 | 分布式系统的节点切换方法、装置及计算机存储介质 |
CN110430064A (zh) * | 2017-03-30 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 区块链系统、消息处理方法及存储介质 |
CN111431931A (zh) * | 2020-04-12 | 2020-07-17 | 中信银行股份有限公司 | 节点共识方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729111B (zh) * | 2017-10-27 | 2021-10-08 | 伊姆西Ip控股有限责任公司 | 用于管理分布式系统的方法、设备和计算机程序产品 |
-
2020
- 2020-11-23 CN CN202011322647.8A patent/CN112532436B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137017A (zh) * | 2011-03-17 | 2011-07-27 | 华为技术有限公司 | 用于虚拟网络单元的工作方法及装置 |
CN110430064A (zh) * | 2017-03-30 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 区块链系统、消息处理方法及存储介质 |
CN108123851A (zh) * | 2017-12-29 | 2018-06-05 | 北京奇虎科技有限公司 | 分布式系统中主从节点同步链路的存活检测方法及装置 |
CN110417600A (zh) * | 2019-08-02 | 2019-11-05 | 秒针信息技术有限公司 | 分布式系统的节点切换方法、装置及计算机存储介质 |
CN111431931A (zh) * | 2020-04-12 | 2020-07-17 | 中信银行股份有限公司 | 节点共识方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112532436A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101519719B1 (ko) | 게이트웨이의 메시지 처리 방법 | |
CN108123851B (zh) | 分布式系统中主从节点同步链路的存活检测方法及装置 | |
CN112532436B (zh) | 一种区块链节点状态转换方法及区块链系统 | |
CN106612339A (zh) | 域名更新方法、系统和主dns服务器 | |
CN114268532A (zh) | 一种基于Raft协议的竞选方法、分布式系统及存储介质 | |
CN111159233A (zh) | 分布式缓存方法、系统、计算机设备以及存储介质 | |
CN114866250B (zh) | 车内can网络新鲜值构建方法、装置、车辆及存储介质 | |
WO2009120345A4 (en) | Updating routing and outage information in a communications network | |
CN102196506A (zh) | 网络资源访问控制方法、系统及装置 | |
CN113612814B (zh) | 一种会话信息的筛选方法、装置、终端及存储介质 | |
CN113452770A (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
WO2007059667A1 (fr) | Procede d'obtention de donnees d'alarme des elements de reseau | |
CN111083016A (zh) | 一种轮询表处理方法及装置、存储介质和设备 | |
CN115604088A (zh) | 组件集群系统的主备切换方法、装置、设备及存储介质 | |
CN113726469A (zh) | 时间同步方法、装置、车用控制器及存储介质 | |
CN114422335A (zh) | 通信方法、装置、服务器及存储介质 | |
JP7110950B2 (ja) | ネットワークシステム | |
CN113515056A (zh) | 功能的执行方法及智能家电 | |
CN115065723B (zh) | 用于网络容灾的数据处理系统 | |
WO2018047860A1 (ja) | 中継装置 | |
CN113064950B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN114670764B (zh) | 控制电动汽车整车休眠的方法、装置及电子控制单元 | |
CN115103322B (zh) | 订阅合并方法、装置、电子设备、存储介质及产品 | |
CN112822238B (zh) | 一种主节点的切换方法以及计算机可读存储介质 | |
CN114143127B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant after: Jingdong Technology Holding Co.,Ltd. Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant before: Jingdong Digital Technology Holding Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |