CN110955721A - 区块链节点状态维护方法、装置、计算机设备和存储介质 - Google Patents

区块链节点状态维护方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110955721A
CN110955721A CN201911011562.5A CN201911011562A CN110955721A CN 110955721 A CN110955721 A CN 110955721A CN 201911011562 A CN201911011562 A CN 201911011562A CN 110955721 A CN110955721 A CN 110955721A
Authority
CN
China
Prior art keywords
list
node
target node
block
preset time
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
Application number
CN201911011562.5A
Other languages
English (en)
Other versions
CN110955721B (zh
Inventor
唐俊峰
杨波
张良杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Priority to CN201911011562.5A priority Critical patent/CN110955721B/zh
Publication of CN110955721A publication Critical patent/CN110955721A/zh
Application granted granted Critical
Publication of CN110955721B publication Critical patent/CN110955721B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种区块链节点状态维护方法、装置、计算机设备和存储介质。所述方法包括:获取本地缓存的第一列表;向区块链网络中与每个目标节点标识对应的目标节点发起列表同步请求;当在发起所述列表同步请求的预设时长内接收到所述目标节点根据所述列表同步请求所返回的第二列表时,对所述预设时长内接收到的全部第二列表进行合并,得到同步列表;基于所述同步列表所记录的处于存活状态的区块节点的区块节点标识对所述第一列表增量更新;在更新后的第一列表中删除在所述预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。采用本方法能够快速的获取到区块链网络中区块节点的存活状态。

Description

区块链节点状态维护方法、装置、计算机设备和存储介质
技术领域
本申请涉及区块链技术领域,特别是涉及一种区块链节点状态维护方法、装置、计算机设备和存储介质。
背景技术
随着区块链技术的发展,区块链网络中的节点维护越来越重要。现有的区块链节点状态维护方法是每个节点在预设时间主动广播自身节点的心跳信息给到其他节点,以此表明该节点处于正常状态。
比如,区块链网络中存在节点A、B、C、D,A、B、C节点每隔一段时间主动广播心跳信息给D节点;若A节点超过预设时长还未发送心跳信息给到D节点,则D节点默认为A节点处于异常状态;若节点A在预设时长内再次发送心跳信息给到D节点,则D节点默认为A节点处于正常状态。同理,对于B、C节点状态的判断也一样。
然而,目前的区块链节点状态维护方法依赖于被动接收的心跳信息来触发节点状态的维护,而且在接收到心跳信息后,针对已接收到的每个心跳信息,都需要在预设时间主动监测是否接收到相同节点发送的心跳信息,以此判断该节点是否处于正常状态。该方法只能被动的等待其他节点发送心跳信息来告知节点状态,由此导致区块链网络的节点状态的维护效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够快速更新节点存活状态信息区块链节点状态维护方法、装置、计算机设备和存储介质。
一种区块链节点状态维护方法,所述方法包括:
获取本地缓存的第一列表;所述第一列表记录了目标节点标识;
向区块链网络中与每个目标节点标识对应的目标节点发起列表同步请求;
当在发起所述列表同步请求的预设时长内接收到所述目标节点根据所述列表同步请求所返回的第二列表时,对所述预设时长内接收到的全部第二列表进行合并,得到同步列表;所述区块链网络包括多个区块节点;
基于所述同步列表所记录的处于存活状态的区块节点的区块节点标识对所述第一列表增量更新;
在更新后的第一列表中删除在所述预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
在一个实施例中,所述方法还包括:
接收处于失活状态的目标节点在恢复存活状态时发送的网络加入请求;
响应于所述网络加入请求,验证网络加入请求携带的目标节点的验证信息;
当验证通过时,将本地缓存的第一列表返回至所述目标节点,使所述目标节点从所述第一列表中筛选不属于本地缓存的第二列表中的区块节点标识,并向筛选得到的每个区块节点标识对应的区块节点发起网络加入请求来加入所述区块链网络。
在一个实施例中,所述向每个所述目标节点标识所对应的目标节点发起列表同步请求包括:
获取自身节点对应的源节点标识以及公钥;
根据所述源节点标识以及所述公钥生成对应的验证信息;
将携带有所述源节点标识、所述公钥以及所述验证信息的列表同步请求发送至每个所述目标节点标识所对应的目标节点;
接收所述目标节点在验证所述验证信息正确后,根据列表同步请求返回的第二列表。
在一个实施例中,所述根据所述源节点标识以及所述公钥生成对应的验证信息包括:
将所述源节点标识以及所述公钥进行拼接,得到拼接字符串;
通过哈希算法对所述拼接字符串进行计算,得到对应的哈希值;
根据所述公钥对应的私钥对所述哈希值加密,得到对应的验证信息。
在一个实施例中,所述在更新后的第一列表中删除在所述预设时长内未返回第二列表的目标节点的目标节点标识包括:
当在预设时长内未接收到所述目标节点根据所述列表同步请求所返回的所述第二列表时,向所述目标节点再次发起列表同步请求;
在更新后的第一列表中删除在连续发起预设次数的列表同步请求后仍未返回第二列表的目标节点的目标节点标识。
一种区块链节点状态维护方法,所述方法包括:
接收源节点根据本地缓存的第一列表中记录的目标节点标识所发起的列表同步请求;
根据所述列表同步请求获取当前预设时间在本地缓存的第二列表,所述第二列表记录了处于存活状态的区块节点所对应的区块节点标识;
在接收所述列表同步请求的预设时长内,将所述第二列表返回至所述源节点,使所述源节点对所述预设时长内接收到的全部第二列表进行合并,并基于合并得到的同步列表所记录的处于存活状态的区块节点的区块节点标识对所述第一列表增量更新;并在更新后的第一列表中删除在所述预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
在一个实施例中,所述列表同步请求记录了源节点标识;所述方法还包括:
根据所述源节点标识获取所述源节点的端口标识;
根据所述端口标识和所述源节点标识向所述源节点发起连接请求;
当接收到所述源节点根据所述连接请求返回的连接应答时,将所述源节点标识添加到所述本地缓存的第二列表中。
在一个实施例中,所述方法还包括:
获取上一预设时间在本地缓存的第二列表;所述第二列表记录了处于存活状态的区块节点所对应的区块节点标识;
向每个所述区块节点标识所对应的区块节点发起列表同步请求;
当在发起所述列表同步请求的预设时长内接收到所述区块节点根据所述列表同步请求所返回的第三列表时,对所述预设时长内接收到的全部第三列表进行合并,得到合并列表;
基于所述合并列表所记录的处于存活状态的区块节点的区块节点标识对所述第二列表增量更新;
在更新后的第二列表中删除在所述预设时长内未返回第三列表的区块节点的区块节点标识。
一种区块链节点状态维护装置,所述装置包括:
第一列表获取模块,用于获取本地缓存的第一列表;所述第一列表记录了目标节点标识;
请求发送模块,用于向区块链网络中与每个目标节点标识对应的目标节点发起列表同步请求;
第二列表合并模块,用于当在发起所述列表同步请求的预设时长内接收到所述目标节点根据所述列表同步请求所返回的第二列表时,对所述预设时长内接收到的全部第二列表进行合并,得到同步列表;所述区块链网络包括多个区块节点;
第一列表更新模块,用于基于所述同步列表所记录的处于存活状态的区块节点的区块节点标识对所述第一列表增量更新;
节点删除模块,用于在更新后的第一列表中删除在所述预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
一种区块链节点状态维护装置,所述装置包括:
请求接收模块,用于接收源节点根据本地缓存的第一列表中记录的目标节点标识所发起的列表同步请求;
第二列表获取模块,用于获取当前预设时间在本地缓存的第二列表,所述第二列表记录了处于存活状态的区块节点所对应的区块节点标识;
第二列表返回模块,用于在接收所述列表同步请求的预设时长内,将所述第二列表返回至所述源节点,使所述源节点对所述预设时长内接收到的全部第二列表进行合并,并基于合并得到的同步列表所记录的处于存活状态的区块节点的区块节点标识对所述第一列表增量更新;并在更新后的第一列表中删除在所述预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述区块链节点状态维护方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述区块链节点状态维护方法的步骤。
上述区块链节点状态维护方法、装置、计算机设备和存储介质,基于本地缓存的第一列表所记录的目标节点标识,根据目标节点标识向对应的目标节点发起列表同步请求,将在发起列表同步请求的预设时长内接收到的每个目标节点返回的第二列表进行合并,得到同步列表;进而基于同步列表中所记录的处于存活状态的区块节点的区块节点标识对本地存储的第一列表进行增量更新;并在更新后的第一列表中删除预设时长内未返回第二列表的处于失活状态的目标节点的目标节点标识。本方案通过向目标节点发起列表同步请求,根据在预设时长内是否返回第二列表来确定目标节点的存活状态和失活状态,既可以获得目标节点的节点状态信息,还可以获得目标节点所维护的处于存活状态的区块节点标识,从而可以快速的获取到区块链网络中全部区块节点的存活状态。
附图说明
图1为一个实施例中区块链节点状态维护方法的应用场景图;
图2为一个实施例中区块链节点状态维护方法的流程示意图;
图3为另一个实施例中区块链节点状态维护方法的流程示意图;
图4为一个实施例中区块链节点状态维护装置的结构框图;
图5为另一个实施例中区块链节点状态维护装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的区块链节点状态维护方法,可以应用于如图1所示的应用环境中。该区块链节点状态维护方法应用于区块链节点状态维护系统中。图1是本发明实施例提供的区块链节点状态维护系统应用于区块链网络10的一个可选的结构示意图,由多个区块节点100(接入网络中的任意形式的计算设备,如服务器、用户终端)形成,区块节点100之间形成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,TransmissionControl Protocol)协议之上的应用层协议。在区块链网络10中,任何机器如服务器、终端都可以加入而成为区块节点100,区块节点100包括硬件层、中间层、操作系统层和应用层。对于区块链节点状态维护系统中每个区块节点,均具有对应的区块节点标识,区块节点标识可以是IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该区块节点的信息。区块节点100具有路由功能,用于支持节点之间的通信。
在该区块链节点状态维护系统中包括源节点102和目标节点104,在区块链网络中,源节点102与目标节点104是相对的,源节点102在区块链网络中既可以作为目标节点,也可以作为源节点;同理,目标节点104在区块链网络中既可以作为源节点,也可以作为目标节点。其中,目标节点104可以包括多个。在本实施例中,源节点102基于本地缓存的第一列表所记录的目标节点标识,根据目标节点标识向对应的目标节点104发起列表同步请求,将在预设时长内每个目标节点104根据列表同步请求返回的第二列表进行合并得到同步列表,进而基于同步列表所记录的处于存活状态的区块节点对第一列表增量更新;并在更新后的第一列表中删除在预设时长内未返回第二列表的处于失活状态的目标节点所对应的目标节点标识,从而可以快速的获取到区块链网络中区块节点的存活状态。
在一个实施例中,如图2所示,提供了一种区块链节点状态维护方法,以该方法应用于图1中的源节点为例进行说明,包括以下步骤:
步骤S202,获取本地缓存的第一列表;第一列表记录了目标节点标识。
其中,第一列表记录了一个或多个目标节点标识,存储在源节点的本地缓存中。其中目标节点标识与目标节点一一对应的,是用于唯一区分目标节点的标识;目标节点标识可以包括IP地址以及其他任一种能够用于该标识目标节点的信息。
具体地,源节点调用缓存查询函数,根据第一列表的标识从本地缓存的缓存中查询第一列表。基于第一列表所记录的目标节点标识,源节点通过网络通信协议发起对每个目标节点标识对应的目标节点的链接请求,以此建立源节点与每个目标节点的网络连接。其中,通信协议可以是TCP协议(Transmission Control Protocol传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议)、RPC协议(Remote Procedure Call,远程过程调用协议)。
在其中一个实施例中,源节点首次建立与目标节点的链接步骤包括:源节点根据目标节点标识获取目标节点的目标端口标识,基于目标端口标识和目标节点标识,采用RPC协议向对应的目标节点发起连接请求,当接收到目标节点根据该连接请求返回的连接应答时,源节点生成对应目标节点的客户端。由于RPC协议的通信组件包括客户端和服务端,当源节点与目标节点建立通信连接后,在源节点中生成对应目标节点的客户端,同时目标节点也会生成对应源节点的客户端。源节点通过客户端向该目标节点的服务端发送列表同步请求并接收目标节点返回的信息。同理,目标节点也可以通过对应的客户端向该源节点的服务端发送列表同步请求并接收源节点从服务端返回的信息。
步骤S204,向区块链网络中与每个目标节点标识对应的目标节点发起列表同步请求。
其中,列表同步请求用于向第一列表记录的每个目标节点标识对应的目标节点请求返回各自存储的第二列表。区块链网络包括多个区块节点,每个区块节点具有对应的区块节点标识。
具体地,在建立源节点与目标节点的网络连接后,源节点在预设时间向区块链网络中与每个目标节点标识对应的目标节点发起列表同步请求。当达到下一预设时间时,获取本地缓存的第一列表,向第一列表中记录的目标节点标识所对应的目标节点发起列表同步请求。
步骤S206,判断在发起列表同步请求的预设时长内是否接收到目标节点根据列表同步请求所返回的第二列表。
具体地,源节点在对目标节点发起列表同步请求时,通过计时器开始计时,当计时器达到预设时长时,源节点判断在预设时长内是否接收到目标节点根据列表同步请求所返回的第二列表。其中第二列表记录了处于存活状态的区块节点所对应的区块节点标识。第二列表存储在目标节点的本地缓存中。
步骤S208,若是,则对预设时长内接收到的全部第二列表进行合并,得到同步列表;区块链网络包括多个区块节点。
其中,同步列表是将接收到的全部第二列表所记录的处于存活状态的全部区块节点对应的区块节点标识进行合并,得到合并后的区块节点的区块节点标识。
具体地,若在发起列表同步请求的预设时长内接收到目标节点根据列表同步请求返回的第二列表,将该预设时长内接收到的所有第二列表记录的处于存活状态的区块节点的区块节点标识进行合并,将多个具有相同的区块节点标识的区块节点进行去重,保留一个区块节点标识,得到同步列表。
步骤S210,基于同步列表所记录的处于存活状态的区块节点的区块节点标识对第一列表增量更新。
具体地,基于得到的同步列表,该同步列表中记录的区块节点所对应的区块节点标识都是处于存活状态的,采用增量更新的方式根据同步列表对第一列表进行更新。其中,增量更新是指在进行更新操作时,只更新在同步列表中存在而在第一列表中不存在的节点。具体可以比对同步列表与第一列表,筛选在同步列表中存在而在第一列表中不存在的区块节点,将筛选得到的区块节点的区块节点标识更新到第一列表中,得到更新后的第一列表。
例如,同步列表记录了A节点的节点标识、B节点的节点标识和C节点的节点标识,第一列表记录了A节点的节点标识和B节点的节点标识,即在第一列表中更新同步列表中所记录的C节点的节点表示即可,得到更新后的第一列表,该更新后的列表记录了A节点的节点标识、B节点的节点标识和C节点的节点标识。
步骤S212,在更新后的第一列表中删除在预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
其中,在发起列表同步请求的预设时长内未返回第二列表的目标节点,判定该目标节点已处于失活状态。
具体地,根据第一列表所记录的目标节点标识,查询在发起列表同步请求的预设时长内未返回第二列表的目标节点的目标节点标识并标记为失活状态;基于更新后的第一列表,删除标记有失活状态的目标节点对应的目标节点标识。
当达到下一预设时间时,源节点从本地缓存中获取在上一预设时间更新后的第一列表,向第一列表中记录的目标节点标识对应的目标节点发起列表同步请求。
在其中一个实施例中,在更新后的第一列表中删除在预设时长内未返回第二列表的目标节点的目标节点标识包括:当在预设时长内未接收到目标节点根据列表同步请求所返回的第二列表时,向目标节点再次发起列表同步请求;在更新后的第一列表中删除在连续发起预设次数的列表同步请求后仍未返回第二列表的目标节点的目标节点标识。具体的,当在预设时长内未接收到目标节点返回的第二列表时,源节点再次向该目标节点发起列表同步请求,直到向该目标节点连续发起预设次数的列表同步请求后,仍然没有接收到该目标节点返回的第二列表,此时,源节点在更新后的第一列表中删除该目标节点对应的目标节点标识。
在上述实施例中,基于本地缓存的第一列表所记录的目标节点标识,根据目标节点标识向对应的目标节点发起列表同步请求,将在发起列表同步请求的预设时长内接收到的每个目标节点返回的第二列表进行合并,得到同步列表;进而基于同步列表中所记录的处于存活状态的区块节点的区块节点标识对本地存储的第一列表进行增量更新;并在更新后的第一列表中删除预设时长内未返回第二列表的处于失活状态的目标节点的目标节点标识。本方案通过向目标节点发起列表同步请求,根据在预设时长内是否返回第二列表来确定目标节点的存活状态和失活状态,既可以获得目标节点的节点状态信息,还可以获得目标节点所维护的处于存活状态的区块节点标识,从而可以快速的获取到区块链网络中全部区块节点的存活状态。
在一个实施例中,上述方法还包括:接收处于失活状态的目标节点在恢复存活状态时发送的网络加入请求;响应于网络加入请求,验证网络加入请求携带的目标节点的验证信息;当验证通过时,将本地缓存的第一列表返回至目标节点,使目标节点从第一列表中筛选不属于本地缓存的第二列表中的节点标识,并向筛选得到的每个节点标识对应的节点发起网络加入请求来加入区块链网络。
其中,网络加入请求用于请求加入源节点所在的区块链网络。
具体地,当目标节点处于失活状态时,比如目标节点宕机、网络异常等导致目标节点与源节点断开连接,处于失活状态;一旦目标节点恢复存活状态,目标节点根据本地缓存的第二列表所记录的区块节点标识,向每个区块节点标识对应的区块节点发情网络加入请求,源节点接收处于失活状态的目标节点在恢复存活状态时发送的网络加入请求,该网络加入请求携带了目标节点标识、目标节点公钥以及目标节点的验证信息。
源节点响应该网络加入请求,并验证目标节点的验证信息。在验证通过后,源节点将本地缓存的第一列表根据网络加入请求返回至对应的目标节点;目标节点在接收到返回的第一列表后,从第一列表中筛选不属于第二列表中的区块节点标识,进而,向筛选得到的每个区块节点标识对应的区块节点发送网络加入请求,获取区块节点自身所维护的处于存活状态的区块节点标识,从而快速加入区块链网络。
在其中一个实施例中,验证网络加入请求携带的目标节点的验证信息包括:源节点将目标节点标识和目标节点的公钥进行拼接,得到目标节点的拼接字符串;通过哈希算法对该目标节点的拼接字符串进行计算,生成目标节点的校验哈希值;根据目标节点的公钥对目标节点的验证信息进行解密,得到目标节点的解密哈希值;通过解密哈希值验证校验哈希值,得到验证结果。即当解密哈希值与校验哈希值一致时,则该验证信息正确;当解密哈希值与校验哈希值不一致时,则该验证信息不正确。
在本实施例中,当目标节点由失活状态恢复至存活状态时,此时该目标节点会发起网络加入请求至源节点,源节点根据接收到的网络加入请求验证目标节点的验证信息,在验证通过后将自身维护的节点状态的列表返回至目标节点,使目标节点根据该列表加入区块链网络,通过向本地记录的任一区块节点标识发起网络加入请求,获取到该区块节点所维护的处于存活状态的区块节点标识,从而可以快速加入区块链网络,克服了只能从根节点获取部分节点标识所带来的加入区块链网络比较慢的问题。
在其中一个实施例中,向每个目标节点标识所对应的目标节点发起列表同步请求包括:获取自身节点对应的源节点标识以及公钥;根据源节点标识以及公钥生成对应的验证信息;将携带有源节点标识、公钥以及验证信息的列表同步请求发送至每个目标节点标识所对应的目标节点;接收目标节点在验证验证信息正确后,根据列表同步请求返回的第二列表。
在其中一个实施例中,根据源节点标识以及公钥生成对应的验证信息包括:将源节点标识以及公钥进行拼接,得到拼接字符串;通过哈希算法对拼接字符串进行计算,得到对应的哈希值;根据公钥对应的私钥对哈希值加密,得到对应的验证信息。
具体地,源节点从缓存中获取自身节点对应的源节点标识和公钥,将源节点标识和公钥按顺序进行拼接,得到拼接字符串;进而通过哈希算法对拼接字符串进行哈希计算,得到具有固定长度的哈希值;进一步源节点从预先建立的公钥和私钥的对应关系中获取对应的私钥,将该私钥和哈希值输入到非对称加密算法中,通过非对称加密算法利用私钥对哈希值进行加密得到源节点的验证信息。其中,公钥和私钥是通过同一算法得到的一对秘钥对,私钥是非公开的数据,如果使用秘钥对中任一秘钥对数据进行加密,则只能采用另一秘钥对该数据进行解密。其中,验证信息可以是数字签名。哈希加密算法可以是MD5(信息-摘要算法5),SHA(安全哈希算法)等。
进一步,源节点根据目标节点的节点标识获取目标节点的端口标识和链接地址,根据端口标识和链接地址将携带有源节点的源节点标识、公钥以及验证信息的列表同步请求发送至目标节点标识。目标节点接收源节点发送的列表同步请求,根据该列表同步请求对验证信息进行验证,得到验证结果,当验证结果正确后,在发起列表同步请求的预设时长内返回本地缓存的第二列表。
在本实施例中,源节点将携带有验证信息的列表同步请求发送至目标节点,在目标节点对验证信息验证通过后,才返回目标节点所维护的节点状态的列表,进一步确保了源节点的真伪性,提高了信息传输的安全性。
在一个实施例中,如图3所示,提供了一种区块链节点状态维护方法,以该方法应用于图1中的目标节点为例进行说明,包括以下步骤:
步骤S302,接收源节点根据本地缓存的第一列表中记录的目标节点标识所发起的列表同步请求。
具体地,源节点通过加载本地的客户端向第一列表中记录的目标节点标识发起列表同步请求,目标节点通过加载本地的服务端接收源节点发送的列表同步请求。
步骤S304,根据列表同步请求获取当前预设时间在本地缓存的第二列表,第二列表记录了处于存活状态的区块节点所对应的区块节点标识。
具体地,目标节点在接收到列表同步请求后,根据该列表同步请求从缓存中获取当前预设时间在本地缓存的第二列表,并返回至源节点。第二列表记录了处于存活状态的区块节点所对应的区块节点标识。
步骤S306,在接收列表同步请求的预设时长内,将第二列表返回至源节点,使源节点对预设时长内接收到的全部第二列表进行合并,并基于合并得到的同步列表所记录的处于存活状态的区块节点的区块节点标识对第一列表增量更新;并在更新后的第一列表中删除在预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
在其中一个实施例中,列表同步请求记录了源节点标识;上述方法还包括:根据源节点标识获取源节点的端口标识;根据端口标识和源节点标识向源节点发起连接请求;当接收到源节点根据连接请求返回的连接应答时,将源节点标识添加到本地缓存的第二列表中。具体的,基于预先构建的节点标识、端口标识以及连接地址的映射关系,目标节点根据列表同步请求所携带的源节点标识获取到源节点的端口标识和链接地址,以此根据端口标识和链接地址想该源节点发起连接请求,源节点响应该连接请求并返回连接应答,目标节点根据接收到的连接应答,将源节点标识更新到本地缓存的第二列表汇中。
在一个实施例中,上述方法还包括:获取上一预设时间本地缓存的第二列表;第二列表记录了处于存活状态的区块节点所对应的区块节点标识;向每个区块节点标识所对应的区块节点发起列表同步请求;当在发起列表同步请求的预设时长内接收到区块节点根据列表同步请求所返回的第三列表时,对预设时长内接收到的全部第三列表进行合并,得到合并列表;基于合并列表所记录的处于存活状态的区块节点的区块节点标识对第二列表增量更新;在更新后的第二列表中删除在预设时长内未返回第三列表的区块节点的区块节点标识。
具体地,在当前预设时间,目标节点在本地缓存的第二列表是基于上一预设时间进行节点维护时所更新后的列表。目标节点获取上一预设时间在本地缓存的第二列表,基于第二列表中记录的每个区块节点的区块节点标识发起列表同步请求,该列表同步请求携带了目标节点的目标节点标识、目标节点的公钥和目标节点的验证信息;对应区块节点响应列表同步请求,验证目标节点的验证信息;当验证通过后,该区块节点返回本地缓存的第三列表;目标节点在发起列表同步请求的预设时长内接收到区块节点返回的第三列表,并对在预设时长内接收到的所有第三列表进行合并得到合并列表;进一步,目标节点基于得到的合并列表,采用增量更新方式根据同步列表对第二列表进行更新,得到更新后的第二列表;进而在更新后的第二列表中删除预设时长内未返回的第三列表的区块节点的区块节点标识。其中,合并列表中记录的区块节点所对应的区块节点标识都是处于存活状态的,合并列表的功能和同步列表相似。第三列表存储在区块节点的本地缓存中,记录了处于存活状态的区块节点的区块节点标识。
在本实施例中,根据接收到列表同步请求将自身节点所维护的处于存活状态的区块节点标识以及自身节点的状态一同返回至源节点,并且目标节点根据列表同步请求将源节点标识加载到本地缓存的区块链节点状态维护的列表中,进而,在下一预设时间,目标节点可以对源节点主动发起列表同步请求,以此维护源节点的节点状态,从而不需要目标节点对所维护的已处于失活状态的全部节点进行遍历来发现已恢复存活状态的节点;本实施例可以快速发现已经恢复存活状态的节点,加快了区块链节点状态维护的速率。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种区块链节点状态维护装置400,包括:第一列表获取模块402、请求发送模块404、第二列表合并模块406、第一列表更新模块408和节点删除模块410,其中:
第一列表获取模块402,用于获取本地缓存的第一列表;第一列表记录了目标节点标识。
请求发送模块404,用于向区块链网络中与每个目标节点标识对应的目标节点发起列表同步请求。
第二列表合并模块406,用于当在发起列表同步请求的预设时长内接收到目标节点根据列表同步请求所返回的第二列表时,对预设时长内接收到的全部第二列表进行合并,得到同步列表;区块链网络包括多个区块节点。
第一列表更新模块408,用于基于同步列表所记录的处于存活状态的区块节点的区块节点标识对第一列表增量更新。
节点删除模块410,用于在更新后的第一列表中删除在预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
在其中一个实施例中,上述装置还包括节点加入模块,用于接收处于失活状态的目标节点在恢复存活状态时发送的网络加入请求;响应于网络加入请求,验证网络加入请求携带的目标节点的验证信息;当验证通过时,将本地缓存的第一列表返回至目标节点,使目标节点从第一列表中筛选不属于本地缓存的第二列表中的区块节点标识,并向筛选得到的每个区块节点标识对应的区块节点发起网络加入请求来加入区块链网络。
在其中一个实施例中,上述请求发送模块还用于获取自身节点对应的源节点标识以及公钥;根据源节点标识以及公钥生成对应的验证信息;将携带有源节点标识、公钥以及验证信息的列表同步请求发送至每个目标节点标识所对应的目标节点;接收目标节点在验证验证信息正确后,根据列表同步请求返回的第二列表。
在其中一个实施例中,上述请求发送模块还用于将源节点标识以及公钥进行拼接,得到拼接字符串;通过哈希算法对拼接字符串进行计算,得到对应的哈希值;根据公钥对应的私钥对哈希值加密,得到对应的验证信息。
在其中一个实施例中,节点删除模块还用于当在预设时长内未接收到目标节点根据列表同步请求所返回的第二列表时,向目标节点再次发起列表同步请求;在更新后的第一列表中删除在连续发起预设次数的列表同步请求后仍未返回第二列表的目标节点的目标节点标识。
在本实施例中,基于本地缓存的第一列表所记录的目标节点标识,根据目标节点标识向对应的目标节点发起列表同步请求,将在发起列表同步请求的预设时长内接收到的每个目标节点返回的第二列表进行合并,得到同步列表;进而基于同步列表中所记录的处于存活状态的区块节点的区块节点标识对本地存储的第一列表进行增量更新;并在更新后的第一列表中删除预设时长内未返回第二列表的处于失活状态的目标节点的目标节点标识。本方案通过向目标节点发起列表同步请求,根据在预设时长内是否返回第二列表来确定目标节点的存活状态和失活状态,既可以获得目标节点的节点状态信息,还可以获得目标节点所维护的处于存活状态的区块节点标识,从而可以快速的获取到区块链网络中全部区块节点的存活状态。
在一个实施例中,如图5所示,提供了一种区块链节点状态维护装置500,包括:请求接收模块502、第二列表获取模块504和第二列表返回模块506,其中:
请求接收模块502,用于接收源节点根据本地缓存的第一列表中记录的目标节点标识所发起的列表同步请求。
第二列表获取模块504,用于获取当前预设时间在本地缓存的第二列表,第二列表记录了处于存活状态的区块节点所对应的区块节点标识。
第二列表返回模块506,用于在接收列表同步请求的预设时长内,将第二列表返回至源节点,使源节点对预设时长内接收到的全部第二列表进行合并,并基于合并得到的同步列表所记录的处于存活状态的区块节点的区块节点标识对第一列表增量更新;并在更新后的第一列表中删除在预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
在其中一个实施例中,上述装置还包括添加节点模块,用于根据源节点标识获取源节点的端口标识;根据端口标识和源节点标识向对应的源节点发起连接请求;当接收到源节点根据连接请求返回的连接应答时,将源节点标识添加到本地缓存的第二列表中。
在其中一个实施例中,上述装置还包括第二列表生成模块,用于获取上一预设时间在本地缓存的第二列表;第二列表记录了处于存活状态的区块节点所对应的区块节点标识;向每个区块节点标识所对应的区块节点发起列表同步请求;当在发起列表同步请求的预设时长内接收到区块节点根据列表同步请求所返回的第三列表时,对预设时长内接收到的全部第三列表进行合并,得到合并列表;基于合并列表所记录的处于存活状态的区块节点的区块节点标识对第二列表增量更新;在更新后的第二列表中删除在预设时长内未返回第三列表的区块节点的区块节点标识。
在本实施例中,根据接收到列表同步请求将自身节点所维护的处于存活状态的区块节点标识以及自身节点的状态一同返回至源节点,并且目标节点根据列表同步请求将源节点标识加载到本地缓存的区块链节点状态维护的列表中,进而,在下一预设时间,目标节点可以对源节点主动发起列表同步请求,以此维护源节点的节点状态,从而不需要目标节点对所维护的已处于失活状态的全部节点进行遍历来发现已恢复存活状态的节点;本实施例可以快速发现已经恢复存活状态的节点,加快了区块链节点状态维护的速率。
关于区块链节点状态维护装置的具体限定可以参见上文中对于区块链节点状态维护方法的限定,在此不再赘述。上述区块链节点状态维护装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链节点状态维护方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取本地缓存的第一列表;第一列表记录了目标节点标识;向区块链网络中与每个目标节点标识对应的目标节点发起列表同步请求;当在发起列表同步请求的预设时长内接收到目标节点根据列表同步请求所返回的第二列表时,对预设时长内接收到的全部第二列表进行合并,得到同步列表;区块链网络包括多个区块节点;基于同步列表所记录的处于存活状态的区块节点的区块节点标识对第一列表增量更新;在更新后的第一列表中删除在预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收处于失活状态的目标节点在恢复存活状态时发送的网络加入请求;响应于网络加入请求,验证网络加入请求携带的目标节点的验证信息;当验证通过时,将本地缓存的第一列表返回至目标节点,使目标节点从第一列表中筛选不属于本地缓存的第二列表中的区块节点标识,并向筛选得到的每个区块节点标识对应的区块节点发起网络加入请求来加入区块链网络。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取自身节点对应的源节点标识以及公钥;根据源节点标识以及公钥生成对应的验证信息;将携带有源节点标识、公钥以及验证信息的列表同步请求发送至每个目标节点标识所对应的目标节点;接收目标节点在验证验证信息正确后,根据列表同步请求返回的第二列表。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将源节点标识以及公钥进行拼接,得到拼接字符串;通过哈希算法对拼接字符串进行计算,得到对应的哈希值;根据公钥对应的私钥对哈希值加密,得到对应的验证信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当在预设时长内未接收到目标节点根据列表同步请求所返回的第二列表时,向目标节点再次发起列表同步请求;在更新后的第一列表中删除在连续发起预设次数的列表同步请求后仍未返回第二列表的目标节点的目标节点标识。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收源节点根据本地缓存的第一列表中记录的目标节点标识所发起的列表同步请求;根据列表同步请求获取当前预设时间在本地缓存的第二列表,第二列表记录了处于存活状态的区块节点所对应的区块节点标识;在接收列表同步请求的预设时长内,将第二列表返回至源节点,使源节点对预设时长内接收到的全部第二列表进行合并,并基于合并得到的同步列表所记录的处于存活状态的区块节点的区块节点标识对第一列表增量更新;并在更新后的第一列表中删除在预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据源节点标识获取源节点的端口标识;根据端口标识和源节点标识向源节点发起连接请求;当接收到源节点根据连接请求返回的连接应答时,将源节点标识添加到本地缓存的第二列表中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取上一预设时间在本地缓存的第二列表;第二列表记录了处于存活状态的区块节点所对应的区块节点标识;向每个区块节点标识所对应的区块节点发起列表同步请求;当在发起列表同步请求的预设时长内接收到区块节点根据列表同步请求所返回的第三列表时,对预设时长内接收到的全部第三列表进行合并,得到合并列表;基于合并列表所记录的处于存活状态的区块节点的区块节点标识对第二列表增量更新;在更新后的第二列表中删除在预设时长内未返回第三列表的区块节点的区块节点标识。
在本实施例中,基于本地缓存的第一列表所记录的目标节点标识,根据目标节点标识向对应的目标节点发起列表同步请求,将在发起列表同步请求的预设时长内接收到的每个目标节点返回的第二列表进行合并,得到同步列表;进而基于同步列表中所记录的处于存活状态的区块节点的区块节点标识对本地存储的第一列表进行增量更新;并在更新后的第一列表中删除预设时长内未返回第二列表的处于失活状态的目标节点的目标节点标识。本方案通过向目标节点发起列表同步请求,根据在预设时长内是否返回第二列表来确定目标节点的存活状态和失活状态,既可以获得目标节点的节点状态信息,还可以获得目标节点所维护的处于存活状态的区块节点标识,从而可以快速的获取到区块链网络中全部区块节点的存活状态。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取本地缓存的第一列表;第一列表记录了目标节点标识;向区块链网络中与每个目标节点标识对应的目标节点发起列表同步请求;当在发起列表同步请求的预设时长内接收到目标节点根据列表同步请求所返回的第二列表时,对预设时长内接收到的全部第二列表进行合并,得到同步列表;区块链网络包括多个区块节点;基于同步列表所记录的处于存活状态的区块节点的区块节点标识对第一列表增量更新;在更新后的第一列表中删除在预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
在一个实施例中,计算机程序被处理器执行时实现以下步骤:接收处于失活状态的目标节点在恢复存活状态时发送的网络加入请求;响应于网络加入请求,验证网络加入请求携带的目标节点的验证信息;当验证通过时,将本地缓存的第一列表返回至目标节点,使目标节点从第一列表中筛选不属于本地缓存的第二列表中的区块节点标识,并向筛选得到的每个区块节点标识对应的区块节点发起网络加入请求来加入区块链网络。
在一个实施例中,计算机程序被处理器执行时实现以下步骤:获取自身节点对应的源节点标识以及公钥;根据源节点标识以及公钥生成对应的验证信息;将携带有源节点标识、公钥以及验证信息的列表同步请求发送至每个目标节点标识所对应的目标节点;接收目标节点在验证验证信息正确后,根据列表同步请求返回的第二列表。
在一个实施例中,计算机程序被处理器执行时实现以下步骤:将源节点标识以及公钥进行拼接,得到拼接字符串;通过哈希算法对拼接字符串进行计算,得到对应的哈希值;根据公钥对应的私钥对哈希值加密,得到对应的验证信息。
在一个实施例中,计算机程序被处理器执行时实现以下步骤:当在预设时长内未接收到目标节点根据列表同步请求所返回的第二列表时,向目标节点再次发起列表同步请求;在更新后的第一列表中删除在连续发起预设次数的列表同步请求后仍未返回第二列表的目标节点的目标节点标识。
在一个实施例中,计算机程序被处理器执行时实现以下步骤:接收源节点根据本地缓存的第一列表中记录的目标节点标识所发起的列表同步请求;根据列表同步请求获取当前预设时间在本地缓存的第二列表,第二列表记录了处于存活状态的区块节点所对应的区块节点标识;在接收列表同步请求的预设时长内,将第二列表返回至源节点,使源节点对预设时长内接收到的全部第二列表进行合并,并基于合并得到的同步列表所记录的处于存活状态的区块节点的区块节点标识对第一列表增量更新;并在更新后的第一列表中删除在预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
在一个实施例中,计算机程序被处理器执行时实现以下步骤:根据源节点标识获取源节点的端口标识;根据端口标识和源节点标识向源节点发起连接请求;当接收到源节点根据连接请求返回的连接应答时,将源节点标识添加到本地缓存的第二列表中。
在一个实施例中,计算机程序被处理器执行时实现以下步骤:获取上一预设时间在本地缓存的第二列表;第二列表记录了处于存活状态的区块节点所对应的区块节点标识;向每个区块节点标识所对应的区块节点发起列表同步请求;当在发起列表同步请求的预设时长内接收到区块节点根据列表同步请求所返回的第三列表时,对预设时长内接收到的全部第三列表进行合并,得到合并列表;基于合并列表所记录的处于存活状态的区块节点的区块节点标识对第二列表增量更新;在更新后的第二列表中删除在预设时长内未返回第三列表的区块节点的区块节点标识。
在本实施例中,基于本地缓存的第一列表所记录的目标节点标识,根据目标节点标识向对应的目标节点发起列表同步请求,将在发起列表同步请求的预设时长内接收到的每个目标节点返回的第二列表进行合并,得到同步列表;进而基于同步列表中所记录的处于存活状态的区块节点的节点标识对本地存储的第一列表进行增量更新;并在更新后的第一列表中删除预设时长内未返回第二列表的处于失活状态的目标节点的目标节点标识。本方案通过向目标节点发起列表同步请求,根据在预设时长内是否返回第二列表来确定目标节点的存活状态和失活状态,既可以获得目标节点的存活状态或失活状态,还可以获得目标节点所维护的处于存活状态的区块节点标识,从而可以快速的获取到区块链网络中区块节点的存活状态。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、缓存或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种区块链节点状态维护方法,所述方法包括:
获取本地缓存的第一列表;所述第一列表记录了目标节点标识;
向区块链网络中与每个目标节点标识对应的目标节点发起列表同步请求;
当在发起所述列表同步请求的预设时长内接收到所述目标节点根据所述列表同步请求所返回的第二列表时,对所述预设时长内接收到的全部第二列表进行合并,得到同步列表;所述区块链网络包括多个区块节点;
基于所述同步列表所记录的处于存活状态的区块节点的区块节点标识对所述第一列表增量更新;
在更新后的第一列表中删除在所述预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收处于失活状态的目标节点在恢复存活状态时发送的网络加入请求;
响应于所述网络加入请求,验证网络加入请求携带的目标节点的验证信息;
当验证通过时,将本地缓存的第一列表返回至所述目标节点,使所述目标节点从所述第一列表中筛选不属于本地缓存的第二列表中的区块节点标识,并向筛选得到的每个区块节点标识对应的区块节点发起网络加入请求来加入所述区块链网络。
3.根据权利要求1所述的方法,其特征在于,所述向每个所述目标节点标识所对应的目标节点发起列表同步请求包括:
获取自身节点对应的源节点标识以及公钥;
根据所述源节点标识以及所述公钥生成对应的验证信息;
将携带有所述源节点标识、所述公钥以及所述验证信息的列表同步请求发送至每个所述目标节点标识所对应的目标节点;
接收所述目标节点在验证所述验证信息正确后,根据列表同步请求返回的第二列表。
4.根据权利要求3所述的方法,其特征在于,所述根据所述源节点标识以及所述公钥生成对应的验证信息包括:
将所述源节点标识以及所述公钥进行拼接,得到拼接字符串;
通过哈希算法对所述拼接字符串进行计算,得到对应的哈希值;
根据所述公钥对应的私钥对所述哈希值加密,得到对应的验证信息。
5.根据权利要求1所述的方法,其特征在于,所述在更新后的第一列表中删除在所述预设时长内未返回第二列表的目标节点的目标节点标识包括:
当在预设时长内未接收到所述目标节点根据所述列表同步请求所返回的所述第二列表时,向所述目标节点再次发起列表同步请求;
在更新后的第一列表中删除在连续发起预设次数的列表同步请求后仍未返回第二列表的目标节点的目标节点标识。
6.一种区块链节点状态维护方法,其特征在于,所述方法包括:
接收源节点根据本地缓存的第一列表中记录的目标节点标识所发起的列表同步请求;
根据所述列表同步请求获取当前预设时间在本地缓存的第二列表,所述第二列表记录了处于存活状态的区块节点所对应的区块节点标识;
在接收所述列表同步请求的预设时长内,将所述第二列表返回至所述源节点,使所述源节点对所述预设时长内接收到的全部第二列表进行合并,并基于合并得到的同步列表所记录的处于存活状态的区块节点的区块节点标识对所述第一列表增量更新;并在更新后的第一列表中删除在所述预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
7.根据权利要求6所述的方法,其特征在于,所述列表同步请求记录了源节点标识;所述方法还包括:
根据所述源节点标识获取所述源节点的端口标识;
根据所述端口标识和所述源节点标识向所述源节点发起连接请求;
当接收到所述源节点根据所述连接请求返回的连接应答时,将所述源节点标识添加到所述本地缓存的第二列表中。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
获取上一预设时间在本地缓存的第二列表;所述第二列表记录了处于存活状态的区块节点所对应的区块节点标识;
向每个所述区块节点标识所对应的区块节点发起列表同步请求;
当在发起所述列表同步请求的预设时长内接收到所述区块节点根据所述列表同步请求所返回的第三列表时,对所述预设时长内接收到的全部第三列表进行合并,得到合并列表;
基于所述合并列表所记录的处于存活状态的区块节点的区块节点标识对所述第二列表增量更新;
在更新后的第二列表中删除在所述预设时长内未返回第三列表的区块节点的区块节点标识。
9.一种区块链节点状态维护装置,其特征在于,所述装置包括:
第一列表获取模块,用于获取本地缓存的第一列表;所述第一列表记录了目标节点标识;
请求发送模块,用于向区块链网络中与每个目标节点标识对应的目标节点发起列表同步请求;
第二列表合并模块,用于当在发起所述列表同步请求的预设时长内接收到所述目标节点根据所述列表同步请求所返回的第二列表时,对所述预设时长内接收到的全部第二列表进行合并,得到同步列表;所述区块链网络包括多个区块节点;
第一列表更新模块,用于基于所述同步列表所记录的处于存活状态的区块节点的区块节点标识对所述第一列表增量更新;
节点删除模块,用于在更新后的第一列表中删除在所述预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
10.一种区块链节点状态维护装置,其特征在于,所述装置包括:
请求接收模块,用于接收源节点根据本地缓存的第一列表中记录的目标节点标识所发起的列表同步请求;
第二列表获取模块,用于获取当前预设时间在本地缓存的第二列表,所述第二列表记录了处于存活状态的区块节点所对应的区块节点标识;
第二列表返回模块,用于在接收所述列表同步请求的预设时长内,将所述第二列表返回至所述源节点,使所述源节点对所述预设时长内接收到的全部第二列表进行合并,并基于合并得到的同步列表所记录的处于存活状态的区块节点的区块节点标识对所述第一列表增量更新;并在更新后的第一列表中删除在所述预设时长内未返回第二列表的处于失活状态的目标节点所对应目标节点标识。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
CN201911011562.5A 2019-10-23 2019-10-23 区块链节点状态维护方法、装置、计算机设备和存储介质 Active CN110955721B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911011562.5A CN110955721B (zh) 2019-10-23 2019-10-23 区块链节点状态维护方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911011562.5A CN110955721B (zh) 2019-10-23 2019-10-23 区块链节点状态维护方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110955721A true CN110955721A (zh) 2020-04-03
CN110955721B CN110955721B (zh) 2022-12-06

Family

ID=69975611

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911011562.5A Active CN110955721B (zh) 2019-10-23 2019-10-23 区块链节点状态维护方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110955721B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475575A (zh) * 2020-04-09 2020-07-31 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
CN112632192A (zh) * 2020-12-31 2021-04-09 杭州趣链科技有限公司 节点维护方法、装置、计算机设备及介质
CN112738172A (zh) * 2020-12-23 2021-04-30 平安科技(深圳)有限公司 区块链节点的管理方法、装置、计算机设备和存储介质
CN113259118A (zh) * 2021-06-02 2021-08-13 支付宝(杭州)信息技术有限公司 同步节点信息列表的方法
CN114285745A (zh) * 2021-12-22 2022-04-05 上海摩联信息技术有限公司 一种节点更新方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190019183A1 (en) * 2016-03-03 2019-01-17 NEC Laboratories Europe GmbH Method for managing data in a network of nodes
CN109543456A (zh) * 2018-11-06 2019-03-29 北京新唐思创教育科技有限公司 区块生成方法及计算机存储介质
CN110113148A (zh) * 2019-04-28 2019-08-09 武汉理工大学 一种基于区块链的软件定义机会网络节点身份验证方法
US20190268407A1 (en) * 2018-02-26 2019-08-29 International Business Machines Corporation Service management for the infrastructure of blockchain networks
US20190280879A1 (en) * 2018-12-13 2019-09-12 Alibaba Group Holding Limited Achieving consensus among network nodes in a distributed system
US20190286531A1 (en) * 2018-12-13 2019-09-19 Alibaba Group Holding Limited Performing a recovery process for a network node in a distributed system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190019183A1 (en) * 2016-03-03 2019-01-17 NEC Laboratories Europe GmbH Method for managing data in a network of nodes
US20190268407A1 (en) * 2018-02-26 2019-08-29 International Business Machines Corporation Service management for the infrastructure of blockchain networks
CN109543456A (zh) * 2018-11-06 2019-03-29 北京新唐思创教育科技有限公司 区块生成方法及计算机存储介质
US20190280879A1 (en) * 2018-12-13 2019-09-12 Alibaba Group Holding Limited Achieving consensus among network nodes in a distributed system
US20190286531A1 (en) * 2018-12-13 2019-09-19 Alibaba Group Holding Limited Performing a recovery process for a network node in a distributed system
CN110113148A (zh) * 2019-04-28 2019-08-09 武汉理工大学 一种基于区块链的软件定义机会网络节点身份验证方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475575A (zh) * 2020-04-09 2020-07-31 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
CN111475575B (zh) * 2020-04-09 2021-08-10 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
CN112738172A (zh) * 2020-12-23 2021-04-30 平安科技(深圳)有限公司 区块链节点的管理方法、装置、计算机设备和存储介质
CN112632192A (zh) * 2020-12-31 2021-04-09 杭州趣链科技有限公司 节点维护方法、装置、计算机设备及介质
CN113259118A (zh) * 2021-06-02 2021-08-13 支付宝(杭州)信息技术有限公司 同步节点信息列表的方法
CN113259118B (zh) * 2021-06-02 2021-09-24 支付宝(杭州)信息技术有限公司 同步节点信息列表的方法
CN114285745A (zh) * 2021-12-22 2022-04-05 上海摩联信息技术有限公司 一种节点更新方法和装置

Also Published As

Publication number Publication date
CN110955721B (zh) 2022-12-06

Similar Documents

Publication Publication Date Title
CN110955721B (zh) 区块链节点状态维护方法、装置、计算机设备和存储介质
CN109728954B (zh) 联盟链节点管理系统以及方法
CN111949953B (zh) 基于区块链的身份认证方法、系统、装置和计算机设备
CN109471844B (zh) 文件共享方法、装置、计算机设备和存储介质
CN110781509B (zh) 数据验证方法、装置、存储介质和计算机设备
CN109359994B (zh) 基于区块链的业务处理方法、装置及系统
CN110602168B (zh) 数据同步方法、装置、计算机设备和存储介质
CN111740966B (zh) 一种基于区块链网络的数据处理方法及相关设备
CN112804354B (zh) 跨链进行数据传输的方法、装置、计算机设备和存储介质
CN110855760A (zh) 一种基于区块链的分布式安全存储系统部署方法
CN110597541B (zh) 基于区块链的接口更新处理方法、装置、设备及存储介质
CN107172001B (zh) 网站代理服务器的控制方法及装置、密钥代理服务器
CN108289074B (zh) 用户账号登录方法及装置
CN111614548A (zh) 消息推送方法、装置、计算机设备和存储介质
JP2015032962A (ja) 通信装置、鍵共有方法、プログラムおよび通信システム
CN110597820B (zh) 基于区块链的信息处理方法、装置、存储介质和设备
CN110598452B (zh) 基于区块链的证据信息处理方法、装置、存储介质和设备
CN114629648A (zh) 基于双栈密码的数据托管方法及装置
CN110381149B (zh) 数据分发方法、装置以及数据同步方法、装置
CN113626840A (zh) 接口认证方法、装置、计算机设备和存储介质
CN112637156A (zh) 密钥分配方法、装置、计算机设备和存储介质
CN110611725B (zh) 节点访问方法、装置、计算机设备和存储介质
CN108933804B (zh) 一种对等网络构建方法和装置
GB2608436A (en) Systems and methods for implementing indirect certificate pinning
CN116248416B (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