CN111935251A - 区块链网络管理方法、网络、装置、设备及存储介质 - Google Patents
区块链网络管理方法、网络、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111935251A CN111935251A CN202010739859.XA CN202010739859A CN111935251A CN 111935251 A CN111935251 A CN 111935251A CN 202010739859 A CN202010739859 A CN 202010739859A CN 111935251 A CN111935251 A CN 111935251A
- Authority
- CN
- China
- Prior art keywords
- node
- task
- version
- blockchain network
- network
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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/08—Configuration management of networks or network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
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是本发明一实施例提出的电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,区块链网络中通常包括多个节点,每个节点中运行有节点程序。区块链网络依靠多个节点程序的运行和节点程序之间的通信,实现区块数据的生成、验证以及上链存储等。区块链网络在运行期间,需要对区块链网络进行管理。其中,新节点加入是区块链网络管理期间的重要环节。然而现有技术中,当区块链网络中加入新节点后,容易引发区块链分叉问题。可见,当前亟待一种能规避区块链分叉问题的新节点加入方案。
为此,本发明提出一种区块链网络,如图1所示,该区块链网络中包括N个已有的节点,分别为节点1至节点N。N个节点各自运行的节点程序基本相同但版本不一定统一。为便于理解,示例地,例如一部分节点运行的节点程序为2.0版本的节点程序,另一部分节点运行的节点程序为3.0版本的节点程序。高版本(3.0版本)的节点程序能向下兼容低版本(2.0版本)的节点程序。换言之,低版本节点程序能处理的交易任务,高版本节点程序均能处理。而高版本节点程序能处理的交易任务,低版本节点程序不一定能处理。为便于叙述,以下将“节点的节点程序版本”简称为“节点的版本”。
本发明中,区块链网络也具有版本的概念,区块链网络的版本用于表征:区块链网络对交易任务的处理能力。区块链网络的版本与区块链网络中的最低节点版本对应,具体地,区块链网络的版本低于或等于区块链网络中的最低节点版本。为便于理解,沿用上述示例,由于区块链网络中一部分节点的版本为2.0,另一部分节点的版本为3.0,则区块链网络的版本为2.0,或者低于2.0。
由于本区块链网络的版本与区块链网络中的最低节点版本对应,因此区块链网络的版本具体所反映的是:区块链网络中最低节点版本对交易任务的处理能力。本发明的后续内容将介绍如何更新区块链网络的版本,本发明在此暂不赘述。
如图1所示,当新节点(即图1中的节点N+1)欲加入区块链网络时,会向区块链网络中的任一节点(以下简称第二节点)发送节点加入任务(如图1中所示的实线箭头),该节点加入任务中包括以下信息:
(1)用于反映新节点的节点版本的信息,本发明中将其称为新节点的版本信息;
(2)用于区分新节点身份的信息,本发明中将其称为新节点的节点标识。
如图1所示,第二节点接收到新节点发送的节点加入任务后,将该节点加入任务发送给区块链网络中的各个节点(如图1中所示的实线箭头)。在一些具体实施方式中,第二节点也向其自身发送该节点加入任务。每个节点接收到第二节点发送的节点加入任务后,对节点加入任务进行响应。为便于叙述,以多个节点中的第一节点为例,第一节点在响应节点加入任务时,执行以下判断:
(1)第一节点根据区块链网络的版本信息和新节点的版本信息,判断新节点的版本是否低于区块链网络的版本;
(2)第一节点还获得节点统计列表,该节点统计列表中包含区块链网络中已有的节点的节点标识,第一节点判断节点统计列表中是否包含新节点的节点标识。
如果新节点的版本不低于区块链网络的版本,且节点统计列表中不包含新节点的节点标识,则第一节点确定新节点可加入区块链网络。反之,如果新节点的版本低于区块链网络的版本,或者节点统计列表中已经包含新节点的节点标识,则第一节点确定新节点不能加入区块链网络,或者确定新节点不再加入区块链网络。
如图1所示,在第一节点确定新节点可加入区块链网络的情况下,具体地,第一节点向区块链网络中的其他节点发送网络变更事件(如图1中所示的虚线箭头),该网络变更事件中包括:上述节点加入任务的任务标识和新节点的节点标识。需要说明的是,第一节点是区块链网络的多个节点中的一个,区块链网络的其他节点在接收到节点加入任务后,对节点加入任务的响应方式,与第一节点的上述响应方式相同。为简化附图,图1中将“网络变更事件”示意性地表示为“事件”。
如图1所示,第一节点也会接收到网络变更事件,该网络变更事件可能是其自身发出的,也可能是其他节点在完成上述两个判断后向第一节点发出的。为简化附图,图1中未示出具体是谁向第一节点发送了网络变更事件。第一节点在接收到网络变更事件后,从该网络变更事件中获取任务标识和节点标识,并执行如下判断:
(1)判断其自身先前是否已经接收到该任务标识对应的节点加入任务;
(2)判断其自身是否已经成功执行该任务标识对应的节点加入任务;
(3)判断其节点统计列表是否已经包含该节点标识。
如果第一节点得到如下判断结果:其自身先前已经接收到该任务标识对应的节点加入任务、其自身已经成功执行该任务标识对应的节点加入任务、以及其节点统计列表未包含该节点标识,则第一节点将该节点标识记入其节点统计列表。否则,第一节点不将该节点标识记入其节点统计列表。
需要说明的是,第一节点是区块链网络的多个节点中的一个,区块链网络的其他节点在接收到网络变更事件后,对网络变更事件的响应方式,与第一节点的上述响应方式相同。在区块链网络中的各个节点之间经过上述交互后,各个节点在其节点统计列表中记入了新节点的节点标识,相当于各个节点对新节点加入这一事件达成共识,也相当于将新节点被纳入了区块链网络。
本发明实施期间,为区块链网络引入了版本的概念,当区块链网络中的第一节点接收到节点加入任务后,第一节点会将新节点的版本信息与区块链网络的版本信息比较,以判断新节点的版本是否低于区块链网络的版本。如果新节点的版本不低于区块链网络的版本,则说明新节点的版本足够新(也即新节点的版本不至于偏低),因此新节点加入区块链网络之后不会出现以下情况:由于新节点的版本偏低而导致其不能正常处理其他节点均能处理的交易任务。
由于新节点加入区块链网络后不会出现上述情况,因此区块链网络中各个节点在处理相同的交易任务时,可以得到相同的处理结果,从而可以规避区块链分叉问题。如此,本发明中,在新节点的版本不低于区块链网络的版本的情况下,第一节点才确定新节点可加入区块链网络,可以在新节点加入区块链网络时规避区块链分叉问题。
需要说明的是,上述内容做为本发明的多个实施例中的一个较优实施例。本发明通过下述多个实施例提出区块链网络管理方法、网络、装置、设备及存储介质。下述多个实施例中的一些实施例中,仅包括上述较优实施例中的部分技术特征,下述多个实施例中的一些实施例中,包括上述较优实施例中的全部技术特征。换言之,本发明的上述较优实施例,作为一种示例,不应理解为是对本发明的限定。
参考图2,图2是本发明一实施例提出的区块链网络管理方法的流程图。如图2所示,该方法包括以下步骤:
步骤S21:所述区块链网络中的第一节点接收节点加入任务,所述节点加入任务中携带新节点的版本信息。
其中,新节点的版本信息是用于反映新节点的版本的信息。在一些具体实施方式中,新节点的版本信息可以直接是新节点的节点程序的版本号,例如“2.0”、“3.0”等。
在另一些具体实施方式中,新节点的版本信息也可以是节点加入任务的任务版本信息。本发明中,节点加入任务是新节点生成并发出的,节点加入任务的任务版本信息与新节点的节点程序版本对应,因此节点加入任务的任务版本信息可以反映新节点的节点程序。如此,在这些具体实施方式中,新节点的版本信息可以代替为节点加入任务的任务版本信息。
在一些具体实施方式中,第一节点接收的节点加入任务,可以是新节点直接发送给该第一节点的。参考前述较优实施例,图1中的新节点向节点3发送节点加入请求,如果将节点3视为第一节点,则第一节点接收的节点加入任务,是新节点直接发送给该第一节点的。
在另一些具体实施方式中,第一节点接收的节点加入任务,也可以是第一节点自身发出的。参考前述较优实施例,图1中的新节点向节点3发送节点加入请求,节点3接收到新节点发送的节点加入任务后,将该节点加入任务发送给区块链网络中的各个节点。同时,节点3也向其自身发送该节点加入任务。如果将节点3视为第一节点,则第一节点接收的节点加入任务,也可以是第一节点自身发出的。
在又一些具体实施方式中,第一节点接收的节点加入任务,还可以是区块链网络中的第二节点发送的。参考前述较优实施例,图1中的新节点向节点3发送节点加入请求,节点3接收到新节点发送的节点加入任务后,将该节点加入任务发送给区块链网络中的各个节点。如果将节点3视为第二节点,将节点1视为第一节点,则区块链网络中的第二节点接收新节点发送的节点加入任务,第二节点将该节点加入任务发送给区块链网络中的各个节点。如此,第一节点作为所述各个节点中的一个节点,其接收的节点加入任务是区块链网络中的第二节点发送的。
本发明通过列举上述多种具体实施方式,旨在说明和证明:本发明对第一节点如何接收节点加入任务,不做限定。
步骤S22:所述第一节点响应于所述节点加入任务,根据所述区块链网络的版本信息和所述新节点的版本信息,判断所述新节点的版本是否低于所述区块链网络的版本。
其中,区块链网络的版本信息可以是存储在区块链上的可信数据。在一些具体实施方式中,第一节点在响应节点加入任务时,第一节点可以通过查询区块链以获取区块链网络的版本信息,同时第一节点可以从节点加入任务中获取新节点的版本信息。第一节点在查询到区块链网络的版本信息和新节点的版本信息之后,通过比较这两个版本信息,从而判断新节点的版本是否低于区块链网络的版本。
为便于理解,假设第一节点查询到的区块链网络的版本信息为2.0,第一节点获取到的新节点的版本信息为3.0,则说明区块链网络的版本为2.0,新节点的版本为3.0,可见新节点的版本不低于区块链网络的版本。
步骤S23:在所述新节点的版本不低于所述区块链网络的版本的情况下,所述第一节点确定所述新节点可加入所述区块链网络。
其中,第一节点确定所述新节点可加入所述区块链网络,可以理解为,第一节点允许所述新节点加入所述区块链网络。
本发明中,如果新节点的版本不低于区块链网络的版本,则说明新节点的版本足够新(也即新节点的版本不至于偏低),因此新节点加入区块链网络之后不会出现以下情况:由于新节点的版本偏低而导致其不能正常处理其他节点均能处理的交易任务。
由于新节点加入区块链网络后不会出现上述情况,因此区块链网络中各个节点在处理相同的交易任务时,均可以得到正常的处理结果,从而可以规避区块链分叉问题。如此,本发明中,在新节点的版本不低于区块链网络的版本的情况下,第一节点才确定新节点可加入区块链网络,可以在新节点加入区块链网络时规避区块链分叉问题。
此外,如果新节点的版本低于区块链网络的版本,则说明新节点的版本不够新(也即新节点的版本偏低),因此新节点加入区块链网络之后可能会出现以下情况:由于新节点的版本偏低而导致其不能正常处理其他节点均能处理的交易任务。
由于新节点加入区块链网络后可能会出现上述情况,因此区块链网络中各个节点在处理相同的交易任务时,不能确保各节点均得到正常的处理结果,从而难以规避区块链分叉问题。如此,本发明中,在新节点的版本低于区块链网络的版本的情况下,第一节点确定新节点不能加入区块链网络。
参考图3,图3是本发明另一实施例提出的区块链网络管理方法的流程图。如图3所示,该方法包括以下步骤:
步骤S31:所述区块链网络中的第一节点接收节点加入任务,所述节点加入任务中携带新节点的版本信息,还携带新节点的节点标识。其中,节点标识是用于区分新节点身份的信息。
步骤S32:所述第一节点响应于所述节点加入任务,根据所述区块链网络的版本信息和所述新节点的版本信息,判断所述新节点的版本是否低于所述区块链网络的版本。
其中,步骤S31和步骤S32的一些具体实施方式,可参见上文,本发明在此不再赘述。
步骤S33-1:所述第一节点响应于所述节点加入任务,获得节点统计列表,其中,所述节点统计列表中包含所述区块链网络中已有的节点的节点标识。
在一些具体实施方式中,节点统计列表是第一节点的本地列表。换言之,第一节点本地存储有节点统计列表,则第一节点可以直接从本地获取节点统计列表。同样地,区块链网络的其他节点中的每个节点,也本地存储有一份节点统计列表。
本发明中,每个节点对应一个用于区分节点身份的节点标识。节点统计列表中包含区块链网络已有的节点的节点标识。为便于理解,如图1所示,区块链网络已经包括节点1至节点N,则节点统计列表中包括节点1至节点N各自的节点标识。
步骤S33-2:所述第一节点判断所述节点统计列表中是否包含所述新节点的节点标识。
第一节点通过判断节点统计列表中是否包含新节点的节点标识,以确定新节点是否已经是区块链网络中的一个已有节点,从而避免针对已有节点执行节点加入操作,造成区块链网络混乱,徒增区块链网络的网络开销。
本发明中,第一节点为了响应节点加入任务,执行了两方面的判断,其中一个判断即是步骤S32所记载的判断,另一个判断即是步骤S33-2所记载的判断。第一节点在执行这两方面的判断时,两方面判断的执行先后顺序不做限定。
步骤S34:在所述新节点的版本不低于所述区块链网络的版本、且所述节点统计列表中不包含所述新节点的节点标识的情况下,所述第一节点和所述区块链网络中的其他节点执行预设的共识策略,以将所述新节点的节点标识记入所述节点统计列表。
其中,如果新节点的版本不低于所述区块链网络的版本,则说明说明新节点的版本足够新,即使新节点加入区块链网络,也可以规避区块链分叉问题。如果节点统计列表中不包含新节点的节点标识,则说明新节点不是区块链网络的已有节点,对新节点执行加入操作不会引发问题。如此,在新节点的版本不低于区块链网络的版本、且节点统计列表中不包含新节点的节点标识的情况下,第一节点才确定新节点可加入区块链网络。否则,第一节点确定新节点不能加入区块链网络。
其中,在第一节点确定新节点可以加入区块链网络的情况下,第一节点会与区块链网络中的其他节点执行预设的共识策略,以将新节点的节点标识记入节点统计列表。
在本发明的一些具体实施方式中,第一节点与区块链网络中的其他节点执行预设的共识策略的步骤,可以包括以下子步骤:
子步骤S34-1:所述第一节点向所述区块链网络中的其他节点发送网络变更事件,所述网络变更事件中包括:所述节点加入任务的任务标识和所述新节点的节点标识。
其中,节点加入任务的任务标识是用于区分节点加入任务的信息,类似于节点加入任务的编号,不同的节点加入任务分别对应不同的任务标识。
本发明中,第一节点在执行上述步骤S32和步骤S33-2的两种判断之后,如果得到以下判断结果:新节点的版本不低于区块链网络的版本、且节点统计列表中不包含新节点的节点标识,则第一节点向区块链网络中的其他节点发送网络变更事件,旨在将新节点加入这一事件,与其他节点进行共识。
子步骤S34-2:所述第一节点接收其自身发出的网络变更事件,或者接收所述区块链网络中的其他节点发出的网络变更事件;所述第一节点从所述网络变更事件中获取任务标识和节点标识,并做如下判断:判断其自身先前是否已经接收到该任务标识对应的节点加入任务、判断其自身是否已经成功执行该任务标识对应的节点加入任务、以及判断其节点统计列表是否已经包含该节点标识;如果所述第一节点得到如下判断结果:其自身先前已经接收到该任务标识对应的节点加入任务、其自身已经成功执行该任务标识对应的节点加入任务、以及其节点统计列表未包含该节点标识,则所述第一节点将该节点标识记入其节点统计列表。
如前较佳实施例所示,第一节点也会接收到网络变更事件,该网络变更事件可能是第一节点自己发出的,也可能是其他已经完成判断并得到上述判断结果的节点发出的。第一节点响应于该网络变更事件,执行以下判断:
(1)判断第一节点自身先前是否已经接收到该任务标识对应的节点加入任务。
第一节点执行该判断的目的是:验证其他节点是否在作恶。如果第一节点预先没有接收到该任务标识对应的节点加入任务,则说明整个节点加入流程中的至少一个环节被作恶。例如可能某一节点作恶,使得第一节点没有预先接收到节点加入任务。或者例如某一节点作恶,故意伪造网络变更事件。无论是何种作恶,都说明区块链网络受到攻击。因此,第一节点通过执行上述判断,可以确定区块链网络是否受到攻击。总之,如果第一节点预先未接收到任务标识对应的节点加入任务,则第一节点不会将该节点标识记入其节点统计列表。
(2)判断第一节点自身是否已经成功执行该任务标识对应的节点加入任务。
其中,第一节点成功执行节点加入任务是指:第一节点在执行上述步骤S32和步骤S33-2的两种判断之后,得到以下判断结果:新节点的版本不低于区块链网络的版本、且节点统计列表中不包含新节点的节点标识。反之,如果没有得到以上判断结果,则说明第一节点未成功执行节点加入任务。
第一节点执行该判断的目的是:发挥自身在节点加入任务中所拥有的决策权。本发明中,当第一节点接收到其他节点发送的网络变更事件时,则说明其他节点已经成功执行节点加入任务。而如果第一节点没能成功执行该节点加入任务,则说明第一节点和其他节点在分别执行节点加入任务时,各自获得了不同的执行结果。如此,第一节点通过判断其自身是否已经成功该节点加入任务,并根据执行成功与否,做出相应的响应,从而发挥其自身在节点加入任务中所拥有的决策权。具体地,如果第一节点没能成功执行该节点加入任务,则第一节点不会将该节点标识记入其节点统计列表。
(3)判断其节点统计列表是否已经包含该节点标识。
需要说明的是,由于区块链网络中的每个节点都会执行如第一节点对节点加入任务的响应过程(如上述步骤S31、S32、S33-1、S33-2以及S34-1),因此每个节点在得到上文所述判断结果之后,都会向其他节点发送网络变更事件。如此,第一节点可能会先后接收到多个节点各自发送的网络变更事件。假设第一节点在接收到第一个网络变更事件时,第一节点已经接收到节点加入任务,且已经成功执行了该节点加入任务,则第一节点将新节点的节点标识记入其节点统计列表。当第一节点后续接收到第二个、第三个…等网络变更事件后,由于第一节点的节点统计列表中已经包含了新节点的节点标识,因此第一节点不再将新节点的节点标识记入节点统计列表。
总之,第一节点每次接收到网络变更事件,会执行上述三种判断。当且仅当三种判断的判断结果分别是:第一节点预先已经接收到该任务标识对应的节点加入任务、第一节点已经成功执行该任务标识对应的节点加入任务、以及第一节点的节点统计列表未包含该节点标识,第一节点才将该节点标识记入其节点统计列表,以更新节点统计列表。
需要说明的是,上述实施例中,第一节点发送网络变更事件、接收网络变更事件、执行上述三种判断、以及根据判断结果更新节点统计列表的过程,即可视为第一节点与其他节点之间的共识过程,也即上述共识策略。
上述实施例中,一方面通过判断新节点的版本是否低于区块链网络的版本,并根据判断结果限制新节点的加入,可以有效规避因新节点的加入而引发的区块链分叉问题。另一方面,通过判断新节点的节点标识是否已经包含在节点统计列表中,以确定所谓的新节点实际上是否是区块链网络的已有节点,从而避免对已有节点重复执行节点加入操作,导致区块链网络混乱、徒增网络开销。第三方面,通过执行上述共识过程,使得新节点加入这一事件在各个节点之间达成共识,进而使得各个节点的节点统计列表达成数据共识。
此外,区块链网络的各节点在执行节点加入任务之前、执行节点加入任务期间、或者执行节点加入任务之后,还可以执行交易任务。参考图4,图4是本发明一实施例提出的交易任务执行过程示意图。如图4所示,该执行过程包括以下步骤:
步骤S41:所述第一节点接收所述区块链网路中的其他节点发送的交易任务,所述交易任务中携带发送该交易任务的节点的节点标识,所述交易任务是经过签名后的交易任务。
在一些具体实施方式中,交易任务可以是客户端生成并发出的,区块链网络中的某一节点接收到客户端发送的交易任务后,将该交易任务发送给区块链网络中的各个节点。第一节点作为所述各个节点中的一个,接收到上述节点发送的交易任务。
在另一些具体实施方式中,交易任务也可以是区块链网络中的节点根据节点的初始程序而自动生成的,例如该交易任务可以是节点周期性生成的心跳检测任务。某一节点自动生成交易任务后,将该交易任务发送给第一节点。
本发明中,交易任务中携带发送该交易任务的节点的节点标识,且交易任务是经过签名后的交易任务。为便于理解,假设节点3生成了交易任务,然后节点3会在该交易任务中填入节点3的节点标识,接着节点3会利用其私钥,对交易任务进行签名,最后节点3将签名后的交易任务发送给第一节点。
步骤S42:所述第一节点从所述交易任务中获取节点标识,并判断其节点统计列表是否包含该节点标识。
本发明中,第一节点在接收到交易任务后,响应于该交易任务,第一节点会从该交易任务中提取节点标识,并判断节点统计列表中是否包含该节点标识。第一节点通过执行上述判断,以确定发送该交易任务的节点是否是区块链网络中的一个已有节点。
步骤S43:在所述第一节点的节点统计列表不包含该节点标识的情况下,所述第一节点不执行所述交易任务,或者将所述交易任务的执行结果表示为执行失败。
本发明中,如果第一节点的节点统计列表中不包含该节点标识,则说明发送该交易任务的节点不是区块链网络中的已有节点,进一步说明该节点可能对区块链网络发起作恶。如此,在第一节点的节点统计列表不包含该节点标识的情况下,第一节点可以不执行该交易任务,或者将该交易任务的执行结果表示为执行失败。
步骤S44:在所述第一节点的节点统计列表包含该节点标识的情况下,所述第一节点获取该节点标识对应的公钥,并利用该公钥对该交易任务进行验签。
本发明中,如果第一节点的节点统计列表中包含该节点标识,则说明发送该交易任务的节点是区块链网络中的已有节点。如此,第一节点获取该节点标识对应的公钥,也即获取该节点的公钥,并利用该公钥对签名后的交易任务进行验签。
步骤S45:在未通过验签的情况下,所述第一节点不执行所述交易任务,或者将所述交易任务的执行结果表示为执行失败。
本发明中,如果签名后的交易任务未通过验签,则说明该交易任务的发起者和交易任务中的节点标识不对应。一种可能的原因是:交易发起者是作恶的节点,交易发起者在交易任务中填写了其他节点的节点标识,由于交易发起者没有该其他节点的私钥,因此该交易发起者利用其自身的私钥对交易任务进行签名。可见,如果签名后的交易任务未通过验签,则说明区块链网络受到攻击,则第一节点可以不执行该交易任务,或者将该交易任务的执行结果表示为执行失败。
本发明中,通过以上述方式执行交易任务,可以有效减少区块链网络遭遇网络攻击的风险,提高区块链网络在开展业务期间的安全性。
参考图5,图5是本发明另一实施例提出的交易任务执行过程示意图。如图5所示,该执行过程包括以下步骤:
步骤S51:所述第一节点获得交易任务,所述交易任务携带任务版本信息。
本发明中,交易任务携带任务版本信息,任务版本信息用于表征该交易任务的版本。示例地,任务版本信息的形式可以是版本号。例如某一交易任务的版本号为3.0,则该交易任务携带的任务版本信息为“3.0”。需要说明的是,本发明对任务版本信息的具体形式不做限定。
具体实现时,任务版本信息与发起该交易任务的节点的节点版本相对应。为便于理解,假设某一节点中运行的节点程序为2.0的版本,则该节点发起的交易任务的版本也为2.0,该交易任务的任务版本信息相应为“2.0”。
步骤S52:所述第一节点根据所述区块链网络的版本信息和所述任务版本信息,判断所述交易任务的版本是否高于所述区块链网络的版本,其中,所述区块链网络的版本与所述区块链网络中的最低节点版本相对应。
如前较佳实施例所述,区块链网络的版本与区块链网络中的最低节点版本相对应,具体是指:区块链网络的版本不高于区块链网络中的最低节点版本。本发明中,区块链网络的版本反应的是:区块链网络各节点对交易任务的处理能力中,对交易任务的最低处理能力。
第一节点在接收到交易任务后,通过比较交易任务的版本和区块链网络的版本,从而判断区块链网络中处理能力最低的节点,是否有能力处理该交易任务。
步骤S53:在所述交易任务的版本不高于所述区块链网络的版本的情况下,所述第一节点执行所述交易任务。
本发明中,如果交易任务的版本不高于区块链网络的版本,则说明交易任务的版本不高于区块链网络中的最低节点版本,进而说明区块链网络中处理能力最低的节点,有能力正常处理该交易任务。如此,区块链网络中的多个节点均能正常处理该交易任务并获得正常的处理结果,可以避免区块链分叉。
因此本发明中,第一节点在交易任务的版本不高于区块链网络的版本的情况下,才执行该交易任务。否则,第一节点不执行该交易任务,或者将该交易任务的执行结果表示为执行失败。
此外,考虑到前述实施例中的节点加入任务,是新节点生成并发出的任务,该节点加入任务中也可以携带有任务版本信息。为便于理解,假设新节点中的节点程序的版本为3.0,则新节点生成的节点加入任务的任务版本为3.0,节点加入任务中携带的任务版本信息相应地为“3.0”。
区块链网络中的第一节点在接收到节点加入任务后,假设按照上述步骤S51至步骤S53的方式响应该节点加入任务,则可能导致新节点不能加入网络的问题。例如新节点中的节点程序的版本为3.0,节点加入任务中携带的任务版本信息相应地为“3.0”,而区块链网络的版本为2.0。此时新节点的版本不低于区块链网络的版本,按照前述的节点加入方法实施例(对应附图2),新节点被允许加入区块链网络。但是按照前述交易执行实施例(对应图5),第一节点不会执行该节点加入任务,或者直接将该节点加入任务表示为执行失败。可见,两实施例在此出现冲突。
在本发明的一些实施方式中,为了化解该冲突,区块链网络中的节点可以将节点加入任务视为特殊任务,节点在接收到节点加入任务时,可以无视节点加入任务版本与区块链网络版本之间的高低关系,而默认响应该节点加入任务。换言之,在所述节点加入任务的版本高于、低于或者等于所述区块链网络的版本的情况下,所述第一节点均会响应所述节点加入任务。
此外,区块链网络的各节点在执行节点加入任务之前、执行节点加入任务期间、或者执行节点加入任务之后,还可以执行区块链网络版本更新任务。参考图6,图6是本发明一实施例提出的区块链网络版本更新过程示意图。如图6所示,该更新过程包括以下步骤:
步骤S61:所述区块链网络中的第三节点获得所述区块链网络中各节点的版本信息。
其中,所述第三节点可以是区块链网络中的任一节点。在一些具体实施方式中,该第三节点可以是区块链网络中各节点通过共识算法所选举出的主节点。
具体实现时,第三节点可以周期性地向区块链网络中的各个节点发送版本信息获取请求,例如每隔6小时向区块链网络中的各个节点发送一次版本信息获取请求。各节点在响应该版本信息获取请求,将自身的版本信息返回给第三节点。
步骤S62:所述第三节点根据所获得的多个版本信息和所述区块链网络的版本信息,判断所述各节点的版本是否均高于所述区块链网络的版本。
具体实现时,第三节点在获得当前周期内各个节点的版本信息后,判断各节点的版本是否均高于所述区块链网络的版本。为便于理解,假设在当前周期内,部分节点的版本信息为“2.0”,另一部分节点的版本信息为“3.0”,而区块链网络的版本信息为“1.0”,则各节点的版本均高于区块链网络的版本。
或者假设在当前周期内,部分节点的版本信息为“2.0”,另一部分节点的版本信息为“3.0”,而区块链网络的版本信息为“2.0”,则各节点的版本并不是均高于区块链网络的版本。
再或者假设在当前周期内,所有节点的版本信息均为“3.0”,而区块链网络的版本信息为“2.0”,则各节点的版本均高于区块链网络的版本。
步骤S63:在所述各节点的版本均高于所述区块链网络的版本的情况下,控制所述区块链网络的版本信息更新,使得更新后的版本信息与所述区块链网络中的最低节点版本相对应。
本发明中,如果各节点的版本均高于区块链网络的版本,则说明区块链网络的版本信息偏于陈旧,需要对其进行更新,使得更新后的版本信息与区块链网络中的最低节点版本相对应。
在一些具体实施方式中,为了控制区块链网络的版本信息更新,第三节点可以将各个节点的版本信息封装成版本更新任务。第三节点将该版本更新任务发送给区块链网络的各个节点。每个节点在接收到该版本更新任务后,从其中获取各个节点的版本信息,并将获取的各版本信息与区块链网络的版本信息比较,从而判断各节点的版本均高于区块链网络的版本。如果各节点的版本均高于区块链网络的版本,则该节点更新区块链网络的版本信息,使得更新后的区块链网络的版本信息,与区块链网络中的最低节点版本的版本信息相同。最后各个节点对更新后的区块链网络版本信息进行共识。
基于同一发明构思,本发明实施例还提供一种区块链网络管理装置。参考图7,图7是本发明一实施例提出的区块链网络管理装置的示意图,该装置应用于区块链网络中的任一节点。如图7所示,该装置包括:
任务接收模块71,用于接收节点加入任务,所述节点加入任务中携带新节点的版本信息;
版本判断模块72,用于响应于所述节点加入任务,根据所述区块链网络的版本信息和所述新节点的版本信息,判断所述新节点的版本是否低于所述区块链网络的版本;
允许确定模块73,用于在所述新节点的版本不低于所述区块链网络的版本的情况下,确定所述新节点可加入所述区块链网络。
可选地,所述节点加入任务中还携带所述新节点的节点标识,所述装置还包括:统计列表获得模块和统计列表判断模块;
所述统计列表获得模块,用于响应于所述节点加入任务,获得节点统计列表,其中,所述节点统计列表中包含所述区块链网络中已有的节点的节点标识;
所述统计列表判断模块,用于判断所述节点统计列表中是否包含所述新节点的节点标识;
所述允许确定模块具体用于:在所述新节点的版本不低于所述区块链网络的版本、且所述节点统计列表中不包含所述新节点的节点标识的情况下,和所述区块链网络中的其他节点执行预设的共识策略,以将所述新节点的节点标识记入所述节点统计列表。
可选地,所述节点加入任务是所述新节点发送给所述区块链网络中的第二节点,再由所述第二节点广播给所述区块链网络管理装置的。
可选地,所述允许确定模块在和所述区块链网络中的其他节点执行预设的共识策略时,具体用于:
向所述区块链网络中的其他节点发送网络变更事件,所述网络变更事件中包括:所述节点加入任务的任务标识和所述新节点的节点标识;
接收其自身发出的网络变更事件,或者接收所述区块链网络中的其他节点发出的网络变更事件;从所述网络变更事件中获取任务标识和节点标识,并做如下判断:判断其自身先前是否已经接收到该任务标识对应的节点加入任务、判断其自身是否已经成功执行该任务标识对应的节点加入任务、以及判断其节点统计列表是否已经包含该节点标识;如果得到如下判断结果:其自身先前已经接收到该任务标识对应的节点加入任务、其自身已经成功执行该任务标识对应的节点加入任务、以及其节点统计列表未包含该节点标识,则将该节点标识记入其节点统计列表。
可选地,所述装置还包括:交易任务第一执行模块;
所述交易任务第一执行模块,用于接收所述区块链网路中的其他节点发送的交易任务,所述交易任务中携带发送该交易任务的节点的节点标识,所述交易任务是经过签名后的交易任务;从所述交易任务中获取节点标识,并判断节点统计列表是否包含该节点标识;在所述节点统计列表不包含该节点标识的情况下,不执行所述交易任务,或者将所述交易任务的执行结果表示为执行失败;在所述节点统计列表包含该节点标识的情况下,获取该节点标识对应的公钥,并利用该公钥对该交易任务进行验签,在未通过验签的情况下,不执行所述交易任务,或者将所述交易任务的执行结果表示为执行失败。
可选地,所述装置还包括:交易任务第二执行模块;
所述交易任务第二执行模块,用于获得交易任务,所述交易任务携带任务版本信息;根据所述区块链网络的版本信息和所述任务版本信息,判断所述交易任务的版本是否高于所述区块链网络的版本,其中,所述区块链网络的版本与所述区块链网络中的最低节点版本相对应;在所述交易任务的版本不高于所述区块链网络的版本的情况下,执行所述交易任务。
可选地,所述节点加入任务是所述新节点生成并发出的,所述节点加入任务中携带有任务版本信息;在所述节点加入任务的版本高于、低于或者等于所述区块链网络的版本的情况下,所述交易任务第二执行模块均会响应所述节点加入任务。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
基于同一发明构思,本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。
所述存储器803,用于存放计算机程序;
所述处理器801,用于在执行存储器803上所存放的程序时,实现如下步骤:
所述区块链网络中的第一节点接收节点加入任务,所述节点加入任务中携带新节点的版本信息;
所述第一节点响应于所述节点加入任务,根据所述区块链网络的版本信息和所述新节点的版本信息,判断所述新节点的版本是否低于所述区块链网络的版本;
在所述新节点的版本不低于所述区块链网络的版本的情况下,所述第一节点确定所述新节点可加入所述区块链网络。
或者,处理器801用于执行存储器803上所存放的程序时,实现本发明以上其他方法实施例所提供的区块链网络管理方法的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的区块链网络管理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的区块链网络管理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种区块链网络管理方法,其特征在于,所述方法包括:
所述区块链网络中的第一节点接收节点加入任务,所述节点加入任务中携带新节点的版本信息;
所述第一节点响应于所述节点加入任务,根据所述区块链网络的版本信息和所述新节点的版本信息,判断所述新节点的版本是否低于所述区块链网络的版本;
在所述新节点的版本不低于所述区块链网络的版本的情况下,所述第一节点确定所述新节点可加入所述区块链网络。
2.根据权利要求1所述的方法,其特征在于,所述节点加入任务中还携带所述新节点的节点标识,所述方法还包括:
所述第一节点响应于所述节点加入任务,获得节点统计列表,其中,所述节点统计列表中包含所述区块链网络中已有的节点的节点标识;
所述第一节点判断所述节点统计列表中是否包含所述新节点的节点标识;
所述在所述新节点的版本不低于所述区块链网络的版本的情况下,所述第一节点确定所述新节点可加入所述区块链网络,包括:
在所述新节点的版本不低于所述区块链网络的版本、且所述节点统计列表中不包含所述新节点的节点标识的情况下,所述第一节点和所述区块链网络中的其他节点执行预设的共识策略,以将所述新节点的节点标识记入所述节点统计列表。
3.根据权利要求2所述的方法,其特征在于,在所述区块链网络中的第一节点接收节点加入任务之前,所述方法还包括:
所述区块链网络中的第二节点接收所述新节点发送的所述节点加入任务;
所述第二节点将所述节点加入任务发送给所述区块链网络中的各个节点,所述第一节点是所述各个节点中的一个节点。
4.根据权利要求3所述的方法,其特征在于,所述第一节点和所述区块链网络中的其他节点执行预设的共识策略,包括:
所述第一节点向所述区块链网络中的其他节点发送网络变更事件,所述网络变更事件中包括:所述节点加入任务的任务标识和所述新节点的节点标识;
所述第一节点接收其自身发出的网络变更事件,或者接收所述区块链网络中的其他节点发出的网络变更事件;所述第一节点从所述网络变更事件中获取任务标识和节点标识,并做如下判断:判断其自身先前是否已经接收到该任务标识对应的节点加入任务、判断其自身是否已经成功执行该任务标识对应的节点加入任务、以及判断其节点统计列表是否已经包含该节点标识;如果所述第一节点得到如下判断结果:其自身先前已经接收到该任务标识对应的节点加入任务、其自身已经成功执行该任务标识对应的节点加入任务、以及其节点统计列表未包含该节点标识,则所述第一节点将该节点标识记入其节点统计列表。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一节点接收所述区块链网路中的其他节点发送的交易任务,所述交易任务中携带发送该交易任务的节点的节点标识,所述交易任务是经过签名后的交易任务;
所述第一节点从所述交易任务中获取节点标识,并判断其节点统计列表是否包含该节点标识;
在所述第一节点的节点统计列表不包含该节点标识的情况下,所述第一节点不执行所述交易任务,或者将所述交易任务的执行结果表示为执行失败;
在所述第一节点的节点统计列表包含该节点标识的情况下,所述第一节点获取该节点标识对应的公钥,并利用该公钥对该交易任务进行验签;
在未通过验签的情况下,所述第一节点不执行所述交易任务,或者将所述交易任务的执行结果表示为执行失败。
6.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
所述第一节点获得交易任务,所述交易任务携带任务版本信息;
所述第一节点根据所述区块链网络的版本信息和所述任务版本信息,判断所述交易任务的版本是否高于所述区块链网络的版本,其中,所述区块链网络的版本与所述区块链网络中的最低节点版本相对应;
在所述交易任务的版本不高于所述区块链网络的版本的情况下,所述第一节点执行所述交易任务。
7.根据权利要求6所述的方法,其特征在于,所述节点加入任务是所述新节点生成并发出的,所述节点加入任务中携带有任务版本信息;
在所述节点加入任务的版本高于、低于或者等于所述区块链网络的版本的情况下,所述第一节点均会响应所述节点加入任务。
8.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
所述区块链网络中的第三节点获得所述区块链网络中各节点的版本信息;
所述第三节点根据所获得的多个版本信息和所述区块链网络的版本信息,判断所述各节点的版本是否均高于所述区块链网络的版本;
在所述各节点的版本均高于所述区块链网络的版本的情况下,控制所述区块链网络的版本信息更新,使得更新后的版本信息与所述区块链网络中的最低节点版本相对应。
9.一种区块链网络,其特征在于,所述区块链网络包括多个节点,所述多个节点中的任一节点用于接收节点加入任务,所述节点加入任务中携带新节点的版本信息;
该节点响应于所述节点加入任务,根据所述区块链网络的版本信息和所述新节点的版本信息,判断所述新节点的版本是否低于所述区块链网络的版本;
在所述新节点的版本不低于所述区块链网络的版本的情况下,该节点确定所述新节点可加入所述区块链网络。
10.一种区块链网络管理装置,其特征在于,所述装置应用于所述区块链网络中的任一节点,所述装置包括:
任务接收模块,用于接收节点加入任务,所述节点加入任务中携带新节点的版本信息;
版本判断模块,用于响应于所述节点加入任务,根据所述区块链网络的版本信息和所述新节点的版本信息,判断所述新节点的版本是否低于所述区块链网络的版本;
允许确定模块,用于在所述新节点的版本不低于所述区块链网络的版本的情况下,确定所述新节点可加入所述区块链网络。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于在执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,实现权利要求1-8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010739859.XA CN111935251B (zh) | 2020-07-28 | 2020-07-28 | 区块链网络管理方法、网络、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010739859.XA CN111935251B (zh) | 2020-07-28 | 2020-07-28 | 区块链网络管理方法、网络、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111935251A true CN111935251A (zh) | 2020-11-13 |
CN111935251B CN111935251B (zh) | 2021-11-05 |
Family
ID=73314776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010739859.XA Active CN111935251B (zh) | 2020-07-28 | 2020-07-28 | 区块链网络管理方法、网络、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111935251B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112488834A (zh) * | 2020-11-24 | 2021-03-12 | 成都质数斯达克科技有限公司 | 节点管理方法、装置、电子设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109450664A (zh) * | 2018-10-09 | 2019-03-08 | 北京医拍智能科技有限公司 | 一种基于区块链p2p网络的数据协同处理方法及装置 |
CN109949039A (zh) * | 2019-04-03 | 2019-06-28 | 陕西医链区块链集团有限公司 | 一种区块链节点外部引入移动计算资源的合理使用分配方法 |
CN110175178A (zh) * | 2018-11-01 | 2019-08-27 | 华为终端有限公司 | 一种数据处理的方法、节点设备和*** |
US20190373521A1 (en) * | 2017-04-07 | 2019-12-05 | Vapor IO Inc. | Distributed processing for determining network paths |
CN110933189A (zh) * | 2020-02-10 | 2020-03-27 | 北京启迪区块链科技发展有限公司 | 基于Fabric的区块链网络部署方法、装置、设备和介质 |
CN111447092A (zh) * | 2020-03-26 | 2020-07-24 | 杭州复杂美科技有限公司 | 版本监测方法、设备和存储介质 |
-
2020
- 2020-07-28 CN CN202010739859.XA patent/CN111935251B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190373521A1 (en) * | 2017-04-07 | 2019-12-05 | Vapor IO Inc. | Distributed processing for determining network paths |
CN109450664A (zh) * | 2018-10-09 | 2019-03-08 | 北京医拍智能科技有限公司 | 一种基于区块链p2p网络的数据协同处理方法及装置 |
CN110175178A (zh) * | 2018-11-01 | 2019-08-27 | 华为终端有限公司 | 一种数据处理的方法、节点设备和*** |
CN109949039A (zh) * | 2019-04-03 | 2019-06-28 | 陕西医链区块链集团有限公司 | 一种区块链节点外部引入移动计算资源的合理使用分配方法 |
CN110933189A (zh) * | 2020-02-10 | 2020-03-27 | 北京启迪区块链科技发展有限公司 | 基于Fabric的区块链网络部署方法、装置、设备和介质 |
CN111447092A (zh) * | 2020-03-26 | 2020-07-24 | 杭州复杂美科技有限公司 | 版本监测方法、设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112488834A (zh) * | 2020-11-24 | 2021-03-12 | 成都质数斯达克科技有限公司 | 节点管理方法、装置、电子设备及可读存储介质 |
CN112488834B (zh) * | 2020-11-24 | 2024-03-19 | 成都质数斯达克科技有限公司 | 节点管理方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111935251B (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110910138B (zh) | 一种区块链数据监管方法、装置 | |
US8832840B2 (en) | Mobile application security and management service | |
CN110855777B (zh) | 一种基于区块链的节点管理方法及装置 | |
CN112527912B (zh) | 基于区块链网络的数据处理方法、装置及计算机设备 | |
US20040128376A1 (en) | Identification information creating method, information processing apparatus, computer program product, recording device monitoring method, terminal apparatus management method, and communication network system | |
CN112800129B (zh) | 区块状态更新方法、装置、***和电子设备 | |
CN110222535B (zh) | 区块链配置文件的处理装置、方法及存储介质 | |
CN110046901B (zh) | 联盟链的可信度验证方法、***、装置及设备 | |
CN102859505B (zh) | 管理***以及计算机***的管理方法 | |
CN113904847B (zh) | 物联网卡的云平台绑定方法、***、设备及介质 | |
CN112905364A (zh) | 微服务的调用方法与电子设备 | |
CN107547512B (zh) | 一种多级云平台中的用户认证方法和装置 | |
CN113835844A (zh) | 一种容器集群的管理方法、装置及云计算平台 | |
CN115695012A (zh) | 一种登录请求的处理方法、装置、电子设备及存储介质 | |
CN112733103A (zh) | 接口访问的控制方法和装置 | |
CN111224782B (zh) | 基于数字签名的数据校验方法、智能设备及存储介质 | |
US8719622B2 (en) | Recording and preventing crash in an appliance | |
CN111935251B (zh) | 区块链网络管理方法、网络、装置、设备及存储介质 | |
CN111966422A (zh) | 一种本地化插件服务方法、装置、电子设备及存储介质 | |
CN110290002B (zh) | 一种更新方法、终端及电子设备 | |
KR102213460B1 (ko) | 머신러닝을 이용한 소프트웨어 화이트리스트 생성 시스템 및 방법 | |
CN112181599A (zh) | 模型训练方法、装置及存储介质 | |
CN111190754A (zh) | 一种区块链事件通知方法及区块链*** | |
CN111858538B (zh) | 一种集群配置BeeGFS配额的方法、装置、设备和介质 | |
CN111369246B (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 |