CN113364874B - 基于区块链的节点同步方法、装置、存储介质及服务器 - Google Patents
基于区块链的节点同步方法、装置、存储介质及服务器 Download PDFInfo
- Publication number
- CN113364874B CN113364874B CN202110644467.XA CN202110644467A CN113364874B CN 113364874 B CN113364874 B CN 113364874B CN 202110644467 A CN202110644467 A CN 202110644467A CN 113364874 B CN113364874 B CN 113364874B
- Authority
- CN
- China
- Prior art keywords
- node
- block
- storage
- storage node
- nodes
- 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
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种基于区块链的节点同步方法、装置、存储介质及服务器。方法包括:控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,待存储区块携带有状态数据,发送节点集群包括主节点以及多个从节点;当主节点异常时,在多个从节点中筛选出目标从节点,并将目标从节点更新为主节点,以及从存储节点集群中筛选出目标存储节点;控制更新后主节点从目标存储节点获取每一已存储区块携带的状态数据,以使更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。通过控制更新后的主节点从目标存储节点中获取状态数据的方式确定异常主节点在异常时的区块发送进度,提高区块数据的完整性。
Description
技术领域
本申请涉及计算机领域,具体涉及一种基于区块链的节点同步方法、装置、存储介质及服务器。
背景技术
近年来,伴随互联网技术的不断发展普及,区块链逐渐被各公司及个人所运用,Hyperledger Fabric是一个许可的区块链构架(permissioned blockchaininfrastructure)。HyperledgerFa Fabric由模块化架构支撑,并具备极佳的保密性、可伸缩性、灵活性和可扩展性。Hyperledger Fabric被设计成支持不同的模块组件直接拔插启用,并能适应在经济生态***中错综复杂的各种场景。
现有技术中,HyperledgerFa Fabric区块链架构中包括交易管理主节点以及交易管理从节点,交易管理主节点用于将交易打包成区块并将区块发送给存储节点。交易管理从节点用于接收交易管理主节点发送区块的发送进度,从而得知主节点当前的发送进度,进而实现交易管理主节点及交易管理从节点的状态同步。
发明内容
在对现有技术的研究和实践过程中,本申请的发明人发现,现有技术中,若交易管理主节点在异常时未及时将当前发送进度告知交易管理从节点,则异常后新产生的交易管理主节点基于主节点异常前告知的发送进度,无法准确得知异常交易管理主节点在异常时的发送进度,容易造成区块数据丢失等风险。
本申请实施例提供一种基于区块链的节点同步方法、装置、存储介质及服务器,可以避免区块数据丢失等风险,提高区块数据的完整性。
为解决上述技术问题,本申请实施例提供以下技术方案:
一种基于区块链的节点同步方法,包括:
控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,所述待存储区块携带有状态数据,所述发送节点集群包括主节点以及多个从节点,所述状态数据用于记录区块的交易状态;
当所述主节点异常时,在多个从节点中筛选出目标从节点,并将所述目标从节点更新为主节点,以及从所述存储节点集群中筛选出目标存储节点;
控制更新后主节点从所述目标存储节点获取每一已存储区块携带的状态数据,以使所述更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。
一种基于区块链的节点同步装置,包括:
发送模块,用于控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,所述待存储区块携带有状态数据,所述发送节点集群包括主节点以及多个从节点,所述状态数据用于记录区块的交易状态;
筛选模块,用于当所述主节点异常时,在多个从节点中筛选出目标从节点,并将所述目标从节点更新为主节点,以及从所述存储节点集群中筛选出目标存储节点;
获取模块,用于控制更新后主节点从所述目标存储节点获取每一已存储区块携带的状态数据,以使所述更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。
在一些实施例中,所述筛选模块,包括:
第一发送子模块,用于向每一存储节点发送第一查询请求,所述第一查询请求用于查询存储节点的最高区块的高度值以及最高区块的哈希值;
接收子模块,用于接收存储节点根据所述第一查询请求返回的第一反馈信息;
排序子模块,用于根据所述第一反馈信息,基于每个存储节点的最高区块高度值和哈希值对存储节点集群中的所有存储节点进行排序;
第一筛选子模块,用于根据排序结果从存储节点集群中筛选出目标存储节点。
在一些实施例中,所述装置还包括:
接收模块,用于接收每一所述存储节点发送的响应信息,当所述响应信息的数量大于第一预设数量时,向存储节点集群中的每一存储节点发送下一待存储区块;
所述排序子模块,包括:
第一排序单元,用于当所述第一反馈信息的数量大于第二预设数量时,按照高度值将最高区块高度值对应的每一存储节点进行排序,得到第一排序结果,所述第二预设数量为所述第一预设数量加一后的数量;
第二排序单元,用于按照哈希值将所述第一排序结果中的每一存储节点进行排序,得到第二排序结果;
所述第一筛选子模块,包括:
筛选单元,用于根据所述第二排序结果从存储节点集群中筛选出目标存储节点。
在一些实施例中,所述筛选单元用于:
获取所述第二排序结果中具有相同最高区块高度值和哈希值的第一候选存储节点的候选存储节点数量;
当所述候选存储节点数量大于所述第二预设数量时,将任一所述第一候选存储节点确定为目标存储节点。
在一些实施例中,所述筛选模块还用于:
当所述候选存储节点数量小于所述第二预设数量时,根据所述第一反馈信息的数量确定异常数量,所述异常数量为存储节点集群中未根据所述第一查询请求返回第一反馈信息的异常存储节点的数量;
计算所述异常数量与所述第一候选存储节点的数量之和,得到计算结果;
当所述计算结果小于所述第二预设数量时,根据第一高度值确定第二高度值,所述第一高度值为候选存储节点对应的最高区块高度值,所述第二高度值为所述第一高度值减一得到的高度值;
向每一存储节点发送第二查询请求,所述第二查询请求用于查询所述第二高度值对应区块的哈希值;
接收存储节点根据所述第二查询请求返回的第二反馈信息,确定具有相同哈希值的第二候选存储节点的数量;
若具有相同哈希值的第二候选存储节点的数量大于所述第二预设数量,则将任一第二候选存储节点确定为目标存储节点。
在一些实施例中,所述筛选模块还用于:
当所述计算结果大于所述第二预设数量时,判断在预设时间段内是否收到异常存储节点根据所述第一查询请求返回的第一反馈信息;
若在第一预设时间段内未收到异常存储节点根据所述第一查询请求返回的第一反馈信息,则将所述异常存储节点的最高区块的高度值确定为零,将所述异常存储节点的最高区块的哈希值确定为无。
在一些实施例中,所述筛选模块还用于:
若具有相同哈希值的第二候选存储节点的数量小于所述第二预设数量,则生成一提示信息,所述提示信息用于提示无法确定目标存储节点。
在一些实施例中,所述装置还包括:
控制模块,用于控制所述主节点按照预设时间间隔向每一从节点发送运行状态信息;
所述筛选模块,包括:
指定子模块,用于当从节点在当前运行状态信息的接收时间点未接收到所述运行状态信息时,控制每一从节点从多个从节点中指定一候选从节点,得到指定结果,并发送所述指定结果;
第二筛选子模块,用于接收每一从节点发送的指定结果,基于所述指定结果在多个从节点中筛选出目标从节点。
在一些实施例中,所述第二筛选子模块,包括:
第一确定单元,用于基于所述确定结果,确定多个从节点中每一从节点被指定为候选从节点的次数;
第二确定单元,用于将多个从节点中所述次数最高的从节点,确定为目标从节点。
一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述基于区块链的节点同步方法中的步骤。
一种服务器,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述基于区块链的节点同步方法中的步骤。
本申请实施例通过控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,所述待存储区块携带有状态数据,所述发送节点集群包括主节点以及多个从节点,所述状态数据用于记录区块的交易状态;当所述主节点异常时,在多个从节点中筛选出目标从节点,并将所述目标从节点更新为主节点,以及从所述存储节点集群中筛选出目标存储节点;控制更新后主节点从所述目标存储节点获取每一已存储区块携带的状态数据,以使所述更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。以此,通过控制更新后的主节点从目标存储节点中获取状态数据的方式确定异常主节点在异常时的区块发送进度,避免更新后的主节点无法准确得知异常主节点在异常时的发送进度,容易造成区块数据丢失等风险,提高区块数据的完整性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例所提供的基于区块链的节点同步方法的数据共享***示意图。
图1b为本申请实施例提供的区块链中区块的结构示意图。
图1c为本申请实施例提供的区块产生示意图。
图1d为本申请实施例提供的基于区块链的节点同步方法的第一种流程示意图。
图1e为本申请实施例提供的存储节点集群中每一存储节点的第一种存储示意图。
图1f为本申请实施例提供的存储节点集群中每一存储节点的第二种存储示意图。
图1g为本申请实施例提供的存储节点集群中每一存储节点的第三种存储示意图。
图1h为本申请实施例提供的存储节点集群中每一存储节点的第四种存储示意图。
图2a为本申请实施例提供的基于区块链的节点同步方法的第二种流程示意图。
图2b为本申请实施例提供的发送节点集群中的主从节点与存储节点集群中的存储节点之间的第一种通信连接图。
图2c为本申请实施例提供的发送节点集群中的主从节点与存储节点集群中的存储节点之间的第二种通信连接图。
图2d为本申请实施例提供的发送节点集群中的主从节点与存储节点集群中的存储节点之间的第三种通信连接图。
图2e为本申请实施例提供的发送节点集群中的主从节点与存储节点集群中的存储节点之间的第四种通信连接图。
图2f为本申请实施例提供的发送节点集群中的主从节点与存储节点集群中的存储节点之间的第五种通信连接图。
图3为本申请实施例提供的基于区块链的节点同步装置的结构示意图;
图4为本申请实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一基于区块链的节点同步方法、装置及计算机可读存储介质。
请参阅图1a,图1a为本申请实施例所提供的基于区块链的节点同步方法的数据共享***示意图,参见图1a所示的数据共享***,数据共享***100是指用于进行节点与节点之间数据共享的***,该数据共享***中可以包括多个节点11,多个节点11可以是指数据共享***中各个客户端。每个节点11在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享***内的共享数据。为了保证数据共享***内的信息互通,数据共享***中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享***中的任意节点接收到输入信息时,数据共享***中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享***中全部节点上存储的数据均一致。
对于数据共享***中的每个节点,均具有与其对应的节点标识,而且数据共享***中的每个节点均可以存储有数据共享***中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享***中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1
节点名称 | 节点标识 |
节点1 | 112.112.152.172 |
节点2 | 113.113.183.143 |
… | … |
节点N | 119.129.789.259 |
数据共享***中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1b,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在生成区块链中的各个区块时,参见图1c,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享***中其他节点的节点标识,将新生成的区块分别发送给其所在的数据共享***中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
在本实施例中,将从基于区块链的节点同步装置的角度进行描述,该基于区块链的节点同步装置具体可以集成在具备储存单元并安装有微处理器而具有运算能力的服务器中。
请参阅图1d,图1d为本申请实施例提供的基于区块链的节点同步方法的第一种流程示意图。该基于区块链的节点同步方法包括:
在步骤101中,控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,待存储区块携带有状态数据,节点集群包括主节点以及多个从节点,状态数据用于记录区块的交易状态。
其中,在区块链上进行交易时,交易会被主节点进行拆分以及打包,最终得到打包后的多个待存储区块,主节点会将多个待存储区块中的每一待存储区块分别发送至存储节点集群中的每一存储节点,并由存储节点进行存储。其中,每一区块中均携带有状态数据(State Database),状态数据记录的是交易执行的结果,最新的状态代表了通道(Channel)上所有键的最新值,所以又称为“世界状态”。因此,交易以区块的形式在链上被执行时,到达每一进度,均会在区块的状态数据中记录。
具体的,为避免主节点因宕机等原因出现异常,会在区块链中部署多个从节点,以备主节点出现异常时,代替异常主节点继续执行交易的拆分以及打包操作。
在步骤102中,当主节点异常时,在多个从节点中筛选出目标从节点,并将目标从节点更新为主节点,以及从存储节点集群中筛选出目标存储节点。
其中,当主节点异常时,会从多个备用的从节点中选择一可以代替异常主节点的目标从节点,进而将目标从节点更新为主节点,以继续异常主节点的发送进度。
具体的,目标存储节点为多个存储节点中可信度最高的存储节点。
在一些实施方式中,在该当该主节点异常时,在多个从节点中筛选出目标从节点的步骤之前,还包括:
控制该主节点按照预设时间间隔向每一从节点发送运行状态信息;
该当该主节点异常时,在多个从节点中筛选出目标从节点的步骤,包括:
(1)当从节点在当前运行状态信息的接收时间点未接收到该运行状态信息时,控制每一从节点从多个从节点中指定一候选从节点,得到指定结果,并发送该指定结果;
(2)接收每一从节点发送的指定结果,基于该指定结果在多个从节点中筛选出目标从节点。
其中,可事先设定主节点按照预设时间间隔(例如,5s)向每一从节点发送运行状态信息,该运行状态信息用于告知主节点当前运行状态正常。从而在下一当前运行状态信息的接收时间点,从节点未接收到该运行状态信息时,即可判定主节点异常,需要从多个从节点中确定出可代替异常主节点的目标从节点。
具体的,多个从节点中确定目标从节点的方式可以为:控制每一从节点在多个从节点中指定一候选从节点,并发送指定后的指定结果,从而根据接收到的指定结果从多个从节点中筛选出目标从节点。
在一些实施方式中,该基于该确定结果在多个从节点中筛选出目标从节点的步骤,包括:
(1.1)基于该确定结果,确定多个从节点中每一从节点被指定为候选从节点的次数;
(1.2)将多个从节点中该次数最高的从节点,确定为目标从节点。
其中,每一从节点均会发送一指定结果,因此可接收到多个指定结果,根据每一指定结果中从节点被指定的次数,将被指定次数最高的从节点确定为目标从节点。
例如,接收到5个指定结果,其中3个指定结果中指定从节点1作为候选从节点,2个指定结果中指定从节点2作为候选从节点,则将从节点1作为目标从节点。
在一些实施方式中,所述从所述存储节点集群中筛选出目标存储节点的步骤,包括:
(1)向每一存储节点发送第一查询请求,所述第一查询请求用于查询存储节点的最高区块的高度值以及最高区块的哈希值;
(2)接收存储节点根据所述第一查询请求返回的第一反馈信息;
(3)根据所述第一反馈信息,基于每个存储节点的最高区块高度值和哈希值对存储节点集群中的所有存储节点进行排序;
(4)根据排序结果从存储节点集群中筛选出目标存储节点。
其中,目标从节点为了确定异常主节点在异常时的区块发送进度,需要从存储节点集群中筛选出一可信任的(即未宕机或被人为恶意修改导致出现异常的)存储节点,该类型存储节点即为目标存储节点。
具体的,筛选目标存储节点的方式可以通过第一查询请求来查询存储节点中最高区块的高度值以及最高区块的哈希值,并根据第一反馈信息以及每个存储节点的最高区块高度值和哈希值对存储节点集群中的所有存储节点进行排序的方式来筛选。
在一些实施方式中,在所述向存储节点集群中的每一存储节点发送所述待存储区块的步骤之后,还包括:
接收每一所述存储节点发送的响应信息,当所述响应信息的数量大于第一预设数量时,向存储节点集群中的每一存储节点发送下一待存储区块;
所述根据所述第一反馈信息,基于每个存储节点的最高区块高度值和哈希值对存储节点集群中的所有存储节点进行排序的步骤,包括:
(1.1)当所述第一反馈信息的数量大于第二预设数量时,按照高度值将最高区块高度值对应的每一存储节点进行排序,得到第一排序结果,所述第二预设数量为所述第一预设数量加一后的数量;
(1.2)按照哈希值将所述第一排序结果中的每一存储节点进行排序,得到第二排序结果;
所述根据排序结果从存储节点集群中筛选出目标存储节点的步骤,包括:
根据所述第二排序结果从存储节点集群中筛选出目标存储节点。
其中,事先设定主节点在向存储集群中的每一存储节点发送待存储区块时的发送规则,当每一存储节点将待存储区块存储完毕后会发送响应信息,以告知区块存储完成,此处的第一预设数量即为存储节点数量的一半,当有超过一半的存储节点发送第一反馈信息,则主节点继续发送下一待存储区块。依次类推,每一存储节点的高度仅能存储一区块,因此在存储节点中不同的区块对应有不同的高度值。从而在从存储节点集群中确定可信任的存储节点时,可以根据每个存储节点中最高区块的高度值确定可信任的存储节点。
具体的,请参阅图1e、图1f、图1g以及图1h,图1e为本申请实施例提供的存储节点集群中每一存储节点的第一种存储示意图;图1f为本申请实施例提供的存储节点集群中每一存储节点的第二种存储示意图;图1g为本申请实施例提供的存储节点集群中每一存储节点的第三种存储示意图;图1h为本申请实施例提供的存储节点集群中每一存储节点的第四种存储示意图。其中,当每一存储节点的存储性能相差不大时,可以得到如图1e所示的区块存储状态,即每一存储节点中存储的区块高度均相同;当存储节点的存储性能相差较大时,如图1f所示,存储节点1、存储节点2以及存储节点3的存储性能相似,但存储节点5存储到区块6,存储节点4存储到区块4,说明存储节点5的存储性能与存储节点1、存储节点2以及存储节点3的存储性能差,但优于存储节点4的存储性能。如图1g所示,少数存储节点中已存储区块的高度值达到9,大多数存储节点中已存储区块的高度值并未达到9;如图1h所示,存储节点3宕机,存储节点4宕机,仅有存储节点1、存储节点2以及存储节点5运行,针对于不同的情况,存在不同确定目标存储节点的方式。
此外,人为篡改已存储区块的区块数据、存储节点程序出错以及存储节点、磁盘、内存跳变均会导致同一区块高度下异常存储节点存储的区块哈希值与其他存储节点的区块哈希值不同,因此为了避免人为篡改存储节点、存储节点程序出错以及存储节点磁盘、内存跳变导致区块数据丢失,以及不可信任的风险,可以结合区块哈希值确定可信任存储节点。
具体的,可向每一存储节点发送查询存储节点的最高区块的高度值以及最高区块的哈希值的第一查询请求,并接收存储节点返回的第一反馈信息。从而根据第一反馈信息得知每一存储节点最高区块的高度值以及最高区块对应的哈希值。从而从多个高度值中确定第一高度值,以及该第一高度值对应区块的目标哈希值。由于存在存储节点宕机的情况,因此需判断接收到的第一反馈信息的数量是否大于第二预设数量,第二预设数量为存储节点集群中所有存储节点的数量一半加一。当第一反馈信息的数量大于第二预设数量,则说明有超过一半的存储节点是处于运行状态的。此时可以按照高度值将最高区块高度值对应的每一存储节点进行排序。排序的方式可以为按照高度值从高到低的顺序对每一存储节点进行排序。如表2及表3所示。表2所示的为根据第一反馈信息所整理出的存储节点1至存储节点5中每一存储节点的最高区块高度值以及最高区块哈希值。按照高度值从高到低的顺序对每一存储节点进行排序后,得到表3所示的第一排序结果。
表2
存储节点 | 最高区块高度值 | 最高区块对应的哈希值 |
存储节点1 | 8 | BBB |
存储节点2 | 9 | AAA |
存储节点3 | 9 | AAA |
存储节点4 | 7 | CCC |
存储节点5 | 9 | AAA |
表3
存储节点 | 最高区块高度值 | 最高区块对应的哈希值 |
存储节点2 | 9 | AAA |
存储节点3 | 9 | AAA |
存储节点5 | 9 | AAA |
存储节点1 | 8 | BBB |
存储节点4 | 7 | CCC |
按照高度值对存储节点进行排序后,再按照哈希值对第一排序结果中最高区块的哈希值对应的每一存储节点进行排序。哈希值的排序方式可以为按照哈希的字典顺序进行排序,从而得到第二排序结果。表3所示的第一排序结果在经历哈希值排序后并未改变,因此,表3的第一排序结果也可以作为经哈希值排序后的第二排序结果进行使用。
具体的,确定目标存储节点时可根据该第二排序结果进行确定。
在一些实施方式中,所述根据所述第二排序结果从存储节点集群中筛选出目标存储节点的步骤,包括:
(1.1)获取所述第二排序结果中具有相同最高区块高度值和哈希值的第一候选存储节点的候选存储节点数量;
(1.2)当所述候选存储节点数量大于所述第二预设数量时,将任一所述第一候选存储节点确定为目标存储节点。
其中,判断具有相同最高区块高度值和哈希值的第一候选存储节点的候选存储节点数量是否大于该第二预设数量,若大于该第二预设数量,说明当前存储节点中的状态符合图1e(存储节点1至5任意节点均可确定为目标存储节点)的状态,以及图1f(存储节点1、2及3均可确定为目标存储节点)的状态。则将任意一第一候选存储节点确定为目标存储节点。
例如,如表3所示,表3中存储节点1、2、3及4返回了第一反馈信息,其中存储节点1中最高区块的高度值为8,对应哈希值为BBB,存储节点2中最高区块的高度值为9,对应哈希值为AAA,存储节点3中最高区块的高度值为9,对应哈希值为AAA,存储节点4中最高区块的高度值为7,存储节点5中最高区块的高度值为9,对应哈希值为AAA,对应哈希值为CCC。则可将存储节点2、3及5中任一存储节点确定为目标存储节点。
在一些实施方式中,该方法还包括:
(1.1)当所述候选存储节点数量小于所述第二预设数量时,根据所述第一反馈信息的数量确定异常数量,所述异常数量为存储节点集群中未根据所述第一查询请求返回第一反馈信息的异常存储节点的数量;
(1.2)计算所述异常数量与所述第一候选存储节点的数量之和,得到计算结果;
(1.3)当所述计算结果小于所述第二预设数量时,根据第一高度值确定第二高度值,所述第一高度值为候选存储节点对应的最高区块高度值,所述第二高度值为所述第一高度值减一得到的高度值;
(1.4)向每一存储节点发送第二查询请求,所述第二查询请求用于查询所述第二高度值对应区块的哈希值;
(1.5)接收存储节点根据所述第二查询请求返回的第二反馈信息,确定具有相同哈希值的第二候选存储节点的数量;
(1.6)若具有相同哈希值的第二候选存储节点的数量大于所述第二预设数量,则将任一第二候选存储节点确定为目标存储节点。
其中,若存在部分存储节点未完成区块存储,或存在宕机的情况,会造成第一反馈信息的数量少于第二预设数量,进而导致无法从已获取到的最高区块高度值以及最高区块哈希值确定出目标存储节点的情况,或者确定出的目标存储节点为人为恶意修改等异常的存储节点,因此需要根据第一反馈信息的数量确定未反馈存在异常的存储节点的数量,得到异常数量。计算第一候选存储节点的数量与异常数量之和,得到计算结果。比较计算结果与第二预设数量,当该计算结果小于该第二预设数量时,则说明存储节点集群中的存储状态为图1g所示,仅有少部分存储节点存储到了第一高度值。因此无法将少部分存储节点确定为可信存储节点(存在人为在存储节点中添加区块的风险)。根据该第一高度值确定第二高度值,该第二高度值为该第一高度值减一得到的高度值。
具体的,当第一高度值为9时,则第二高度值为8,因此重新发送第二查询请求,用于查询第二高度值对应的哈希值,根据返回的第二反馈信息确定具有相同哈希值的第二候选存储节点的数量。若具有相同哈希值的第二候选存储节点的数量大于第二预设数量,则说明存储节点集群中大部分存储节点均处于运行状态,仅有小部分存储节点存储到最高区块高度值。因此可将任一一第二候选存储节点确定为目标存储节点。
例如,表4所示,表4中根据第一查询请求反馈的第一反馈信息为:存储节点1中最高区块的高度值为9,对应哈希值为AAA,存储节点2中最高区块的高度值为5,对应哈希值为DDD,存储节点3中最高区块的高度值为9,对应哈希值为AAA,存储节点4中最高区块的高度值为8,对应哈希值为EEE,存储节点5中最高区块的高度值为8,对应哈希值为EEE。由于无法确定出目标存储节点,因此发送第二查询请求,查询高度值为9-1=8的区块对应哈希值,从而得到表4。表4中存储节点1及存储节点3的最高区块高度值变更为8,对应哈希值为EEE,从而得到表5,因此可将存储节点1、存储节点3、存储节点4及存储节点5中任一存储节点确定为目标存储节点。
表4
存储节点 | 最高区块高度值 | 最高区块对应的哈希值 |
存储节点1 | 9 | AAA |
存储节点3 | 9 | AAA |
存储节点4 | 8 | EEE |
存储节点5 | 8 | EEE |
存储节点2 | 5 | DDD |
表5
存储节点 | 最高区块高度值 | 最高区块对应的哈希值 |
存储节点1 | 8 | EEE |
存储节点3 | 8 | EEE |
存储节点4 | 8 | EEE |
存储节点5 | 8 | EEE |
存储节点2 | 5 | DDD |
在一些实施方式中,该方法还包括:
(1)当该计算结果大于该第二预设数量时,判断在预设时间段内是否收到异常存储节点根据该第一查询请求返回的第一反馈信息;
(2)若在第一预设时间段内未收到异常存储节点根据该第一查询请求返回的第一反馈信息,则将该异常存储节点的最高区块的高度值确定为零,将该异常存储节点的最高区块的哈希值确定为无。
其中,当结算结果大于第二预设数量,则说明未返回第一反馈信息的存储节点数量较多,可以延长接收时间,判断在预设时间段内是否收到异常存储节点根据该第一查询请求返回的第一反馈信息;若超过预设时间段还未接收到第一反馈信息,则将异常存储节点的最高区块的高度值确定为零,将该异常存储节点的最高区块的哈希值确定为无。
在一些实施方式中,该方法还包括:
若具有相同哈希值的第二候选存储节点的数量小于该第二预设数量,则生成一提示信息,该提示信息用于提示无法确定目标存储节点。
其中,若具有相同哈希值的第二候选存储节点的数量小于该第二预设数量,则说明当前存储节点集群中的异常存储节点过多,无法确定出可信任的存储节点,生成提示信息,用于提示管理区块链的管理机构处理。
在步骤103中,控制更新后主节点从目标存储节点获取每一已存储区块携带的状态数据,以使更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。
其中,控制更新后的主节点从筛选出的目标存储节点中获取每一已存储区块携带的状态数据,从而根据状态数据用于记录区块的交易状态确定异常主节点在异常时的区块发送进度。
具体的,交易可被打包成单一区块,所需处理量较大的交易可被拆分并打包成多个区块,所有区块内的子交易组成交易整体,同一区块被发送给每一存储节点,从而当区块被发送至存储节点并存储后,区块携带的状态数据会进行更新,从而更新后主节点可根据已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。
由上述可知,本申请实施例通过控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,该待存储区块携带有状态数据,该发送节点集群包括主节点以及多个从节点,该状态数据用于记录区块的交易状态;当该主节点异常时,在多个从节点中筛选出目标从节点,并将该目标从节点更新为主节点,以及从该存储节点集群中筛选出目标存储节点;控制更新后主节点从该目标存储节点获取每一已存储区块携带的状态数据,以使该更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。以此,通过控制更新后的主节点从目标存储节点中获取状态数据的方式确定异常主节点在异常时的区块发送进度,避免更新后的主节点无法准确得知异常主节点在异常时的发送进度,容易造成区块数据丢失等风险,提高区块数据的完整性。
结合上述实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该基于区块链的节点同步装置具体集成在服务器中为例进行说明,具体参照以下说明。
请参阅图2a,图2a为本申请实施例提供的基于区块链的节点同步方法的第二种流程示意图。该方法具体包括:
在步骤201中,控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,待存储区块携带有状态数据,发送节点集群包括主节点以及多个从节点,状态数据用于记录区块的交易状态。
其中,在区块链上进行交易时,交易会被主节点进行拆分以及打包,最终得到打包后的多个待存储区块,主节点会将多个待存储区块中的每一待存储区块分别发送至存储节点集群中的每一存储节点,并由存储节点进行存储。其中,每一区块中均携带有状态数据(State Database),状态数据记录的是交易执行的结果,最新的状态代表了通道(Channel)上所有键的最新值,所以又称为“世界状态”。因此,交易以区块的形式在链上被执行时,到达每一进度,均会在区块的状态数据中记录。
具体的,为避免主节点因宕机等原因出现异常,会在区块链中部署多个从节点,以备主节点出现异常时,代替异常主节点继续执行交易的拆分以及打包操作。
在步骤202中,接收每一存储节点发送的响应信息,当响应信息的数量大于第一预设数量时,向存储节点集群中的每一存储节点发送下一待存储区块。
其中,事先设定主节点在向存储集群中的每一存储节点发送待存储区块时的发送规则,当每一存储节点将待存储区块存储完毕后会发送响应信息,以告知区块存储完成,此处的第一预设数量即为存储节点数量的一半,当有超过一半的存储节点发送第一反馈信息,则主节点继续发送下一待存储区块。
在步骤203中,控制主节点按照预设时间间隔向每一从节点发送运行状态信息。
其中,可事先设定主节点按照预设时间间隔(例如,5s)向每一从节点发送运行状态信息,该运行状态信息用于告知主节点当前运行状态正常。
在步骤204中,当从节点在当前运行状态信息的接收时间点未接收到该运行状态信息时,控制每一从节点从多个从节点中指定一候选从节点,得到指定结果,并发送指定结果。
其中,在下一当前运行状态信息的接收时间点,从节点未接收到该运行状态信息时,即可判定主节点异常,需要从多个从节点中确定出可代替异常主节点的目标从节点。
具体的,多个从节点中确定目标从节点的方式可以为:控制每一从节点在多个从节点中指定一候选从节点,并发送指定后的指定结果,从而根据接收到的指定结果从多个从节点中筛选出目标从节点。
在步骤205中,接收每一从节点发送的指定结果,基于确定结果,确定多个从节点中每一从节点被指定为候选从节点的次数。
其中,每一从节点均会发送一指定结果,因此可接收到多个指定结果,根据每一指定结果中从节点被指定的次数,将被指定次数最高的从节点确定为目标从节点。
在步骤206中,将多个从节点中次数最高的从节点,确定为目标从节点。
例如,接收到5个指定结果,其中3个指定结果中指定从节点1作为候选从节点,2个指定结果中指定从节点2作为候选从节点,则将从节点1作为目标从节点。
在步骤207中,向每一存储节点发送第一查询请求,第一查询请求用于查询存储节点的最高区块的高度值以及最高区块的哈希值。
每一存储节点的高度仅能存储一区块,因此在存储节点中不同的区块对应有不同的高度值。从而在从存储节点集群中确定可信任的存储节点时,可以根据每个存储节点中最高区块的高度值确定可信任的存储节点。
具体的,请参阅图1e、图1f、图1g以及图1h,图1e为本申请实施例提供的存储节点集群中每一存储节点的第一种存储示意图;图1f为本申请实施例提供的存储节点集群中每一存储节点的第二种存储示意图;图1g为本申请实施例提供的存储节点集群中每一存储节点的第三种存储示意图;图1h为本申请实施例提供的存储节点集群中每一存储节点的第四种存储示意图。其中,当每一存储节点的存储性能相差不大时,可以得到如图1e所示的区块存储状态,即每一存储节点中存储的区块高度均相同;当存储节点的存储性能相差较大时,如图1f所示,存储节点1、存储节点2以及存储节点3的存储性能相似,但存储节点5存储到区块6,存储节点4存储到区块4,说明存储节点5的存储性能与存储节点1、存储节点2以及存储节点3的存储性能差,但优于存储节点4的存储性能。如图1g所示,少数存储节点中已存储区块的高度值达到9,大多数存储节点中已存储区块的高度值并未达到9;如图1h所示,存储节点3宕机,存储节点4宕机,仅有存储节点1、存储节点2以及存储节点5运行,针对于不同的情况,存在不同确定目标存储节点的方式。
此外,人为篡改已存储区块的区块数据、存储节点程序出错以及存储节点、磁盘、内存跳变均会导致同一区块高度下异常存储节点存储的区块哈希值与其他存储节点的区块哈希值不同,因此为了避免人为篡改存储节点、存储节点程序出错以及存储节点磁盘、内存跳变导致区块数据丢失,以及不可信任的风险,可以结合区块哈希值确定可信任存储节点。
具体的,可向每一存储节点发送查询存储节点的最高区块的高度值以及最高区块的哈希值的第一查询请求,并接收存储节点返回的第一反馈信息。从而根据第一反馈信息得知每一存储节点最高区块的高度值以及最高区块对应的哈希值。
在步骤208中,接收存储节点根据第一查询请求返回的第一反馈信息。
其中,正常工作下的存储节点会根据该第一反馈信息反馈最高区块高度值以及最高区块哈希值。
在步骤209中,当第一反馈信息的数量大于第二预设数量时,按照高度值将最高区块高度值对应的每一存储节点进行排序,得到第一排序结果,第二预设数量为所述第一预设数量加一后的数量。
其中,当第一反馈信息的数量大于第二预设数量,则说明有超过一半的存储节点是处于运行状态的。可以按照高度值将最高区块高度值对应的每一存储节点进行排序。排序的方式可以为按照高度值从高到低的顺序对每一存储节点进行排序。如表2及表3所示。表6所示的为根据第一反馈信息所整理出的存储节点1至存储节点5中每一存储节点的最高区块高度值以及最高区块哈希值。按照高度值从高到低的顺序对每一存储节点进行排序后,得到表7所示的第一排序结果。
在步骤210中,按照哈希值将第一排序结果中的每一存储节点进行排序,得到第二排序结果。
其中,按照高度值对存储节点进行排序后,再按照哈希值对第一排序结果中最高区块的哈希值对应的每一存储节点进行排序。哈希值的排序方式可以为按照哈希的字典顺序进行排序,从而得到第二排序结果。表7所示的第一排序结果在经历哈希值排序后并未改变,因此,表7的第一排序结果也可以作为经哈希值排序后的第二排序结果进行使用。
在步骤211中,获取第二排序结果中具有相同最高区块高度值和哈希值的第一候选存储节点的候选存储节点数量。
其中,判断具有相同最高区块高度值和哈希值的第一候选存储节点的候选存储节点数量是否大于该第二预设数量,若大于该第二预设数量,说明当前存储节点中的状态符合图1e(存储节点1至5任意节点均可确定为目标存储节点)的状态,以及图1f(存储节点1、2及3均可确定为目标存储节点)的状态。
将任意一第一候选存储节点确定为目标存储节点。
在步骤212中,当候选存储节点数量大于所述第二预设数量时,将任一第一候选存储节点确定为目标存储节点。
其中,将任意一第一候选存储节点确定为目标存储节点。
例如,如表6所示,表6中存储节点1、2、3、4及5返回了第一反馈信息,其中存储节点1中最高区块的高度值为8,对应哈希值为BBB,存储节点2中最高区块的高度值为9,对应哈希值为AAA,存储节点3中最高区块的高度值为9,对应哈希值为AAA,存储节点4中最高区块的高度值为7,存储节点5中最高区块的高度值为9,对应哈希值为AAA,对应哈希值为CCC。则可将存储节点2、3及5中任一存储节点确定为目标存储节点。
表6
存储节点 | 最高区块高度值 | 最高区块对应的哈希值 |
存储节点2 | 9 | AAA |
存储节点3 | 9 | AAA |
存储节点5 | 9 | AAA |
存储节点1 | 8 | BBB |
存储节点4 | 7 | CCC |
表7
在步骤213中,当候选存储节点数量小于所述第二预设数量时,根据第一反馈信息的数量确定异常数量,异常数量为存储节点集群中未根据第一查询请求返回第一反馈信息的异常存储节点的数量。
其中,若存在部分存储节点未完成区块存储,或存在宕机的情况,会造成第一反馈信息的数量少于第二预设数量,进而导致无法从已获取到的最高区块高度值以及最高区块哈希值确定出目标存储节点的情况,或者确定出的目标存储节点为人为恶意修改等异常的存储节点。因此需要根据第一反馈信息的数量确定未反馈存在异常的存储节点的数量,得到异常数量。
在步骤214中,计算异常数量与第一候选存储节点的数量之和,得到计算结果。
其中,计算第一候选存储节点的数量与异常数量之和,得到计算结果。
在步骤215中,当计算结果小于第二预设数量时,根据第一高度值确定第二高度值,第二高度值为该第一高度值减一得到的高度值。
其中,比较计算结果与第二预设数量,当该计算结果小于该第二预设数量时,则说明存储节点集群中的存储状态为图1g所示,仅有少部分存储节点存储到了第一高度值。因此无法将少部分存储节点确定为可信存储节点(存在人为在存储节点中添加区块的风险)。根据该第一高度值确定第二高度值,该第二高度值为该第一高度值减一得到的高度值。
在步骤216中,向每一存储节点发送第二查询请求,第二查询请求用于查询第二高度值对应区块的哈希值。
其中,当第一高度值为9时,则第二高度值为8,因此重新发送第二查询请求,用于查询第二高度值对应的哈希值。
在步骤217中,接收存储节点根据第二查询请求返回的第二反馈信息,确定具有相同哈希值的第二候选存储节点的数量。
其中,根据返回的第二反馈信息确定具有相同哈希值的第二候选存储节点的数量。
在步骤218中,若具有相同哈希值的第二候选存储节点的数量大于第二预设数量,则将任一第二候选存储节点确定为目标存储节点。
其中,若具有相同哈希值的第二候选存储节点的数量大于第二预设数量,则说明存储节点集群中大部分存储节点均处于运行状态,仅有小部分存储节点存储到最高区块高度值。因此可将任一一第二候选存储节点确定为目标存储节点。
例如表8所示,表8中根据第一查询请求反馈的第一反馈信息为:存储节点1中最高区块的高度值为9,对应哈希值为AAA,存储节点2中最高区块的高度值为5,对应哈希值为DDD,存储节点3中最高区块的高度值为9,对应哈希值为AAA,存储节点4中最高区块的高度值为8,对应哈希值为EEE,存储节点5中最高区块的高度值为8,对应哈希值为EEE。由于无法确定出目标存储节点,因此发送第二查询请求,查询高度值为9-1=8的区块对应哈希值,从而得到表4。表4中存储节点1及存储节点3的最高区块高度值变更为8,对应哈希值为EEE,从而得到表9,因此可将存储节点1、存储节点3、存储节点4及存储节点5中任一存储节点确定为目标存储节点。
表8
存储节点 | 最高区块高度值 | 最高区块对应的哈希值 |
存储节点1 | 9 | AAA |
存储节点3 | 9 | AAA |
存储节点4 | 8 | EEE |
存储节点5 | 8 | EEE |
存储节点2 | 5 | DDD |
表9
存储节点 | 最高区块高度值 | 最高区块对应的哈希值 |
存储节点1 | 8 | EEE |
存储节点3 | 8 | EEE |
存储节点4 | 8 | EEE |
存储节点5 | 8 | EEE |
存储节点2 | 5 | DDD |
由上述可知,本申请实施例通过控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,该待存储区块携带有状态数据,该发送节点集群包括主节点以及多个从节点,该状态数据用于记录区块的交易状态;当该主节点异常时,在多个从节点中筛选出目标从节点,并将该目标从节点更新为主节点,以及从该存储节点集群中筛选出目标存储节点;控制更新后主节点从该目标存储节点获取每一已存储区块携带的状态数据,以使该更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。以此,通过控制更新后的主节点从目标存储节点中获取状态数据的方式确定异常主节点在异常时的区块发送进度,避免更新后的主节点无法准确得知异常主节点在异常时的发送进度,容易造成区块数据丢失等风险,提高区块数据的完整性。
在一些实施方式中,请参阅图2b,图2b为本申请实施例提供的发送节点集群中的主从节点与存储节点集群中的存储节点之间的第一种通信连接图。其中,图2c以发送节点集群为由主节点、从节点1以及从节点2构成,存储节点集群为由存储节点1、存储节点2、存储节点3以及存储节点4构成为例。当接收到交易时,主节点用于将交易进行排序和打包成区块,并发送到存储节点集群中的每一存储节点。每一存储节点会验证接收到的区块中的交易是否合法,将合法的交易执行并进行存储。为了避免主节点在异常时,交易无法正常被打包以及执行等,需要为主节点配置多个从节点,从而在主节点异常时,可以由一从节点代替异常的主节点继续执行交易。而为了确定主节点在异常时的区块发送进度,可控制每一从节点从任一一存储节点获取已存储区块对应的状态数据,从而确定主节点在异常时的区块发送进度。
具体的,如图2b所示,接收交易后,主节点会将交易进行排序打包成待存储区块,并将该待存储区块分发至存储节点1、存储节点2、存储节点3以及存储节点4进行验证,当存储节点验证通过后,将该区块进行存储。对应的,区块的状态数据即从待存储至待写入至已存储这三种交易状态。从节点1及从节点2从存储节点集群中的任一存储节点获取已存储区块携带的状态数据,以保证与主节点的区块发送进度的同步。例如,从节点1从存储节点2中获取到已存储区块携带的状态数据有区块1已存储,区块2已存储以及区块3已存储,则从节点1确定主节点已经将区块1、区块2以及区块3进行分发并验证通过后被存储节点进行存储,则主节点的区块发送进度为区块1、区块2以及区块3。
具体的,为使从节点可以确定主节点是否发生异常,可建立每一从节点与主节点之间的通信关系,从而在主节点异常时,从节点可快速得知。如图2c所示,可控制主节点定时向从节点1以及从节点2发送运行状态信息,以告知从节点当前运行正常,而在下一发送时间点从节点未接收到运行状态信息,则从节点可将主节点判定为异常。
在一些实施方式中,请参阅图2c,图2c为本申请实施例提供的发送节点集群中的主从节点与存储节点集群中的存储节点之间的第二种通信连接图。其中,当主节点未向从节点发送运行状态信息时,从节点之间进行投票,选举出可以代替异常的主节点继续执行交易的目标从节点,或者从节点将投票结果统一发送至发送节点集群对应的管理端,由管理端将得票数最多的从节点确定为目标从节点。
在一些实施方式中,请参阅图2d,图2d为本申请实施例提供的发送节点集群中的主从节点与存储节点集群中的存储节点之间的第三种通信连接图。其中,当选举出目标从节点后,设定目标从节点向其他从节点以及恢复后的主节点发送运行状态信息。并且目标从节点需从存储节点集群中确定出可信任的存储节点,从而根据高可信的存储节点确定出主节点在异常时的区块发送进度。因此,目标从节点需查询每一存储节点中的最高区块的高度值以及最高区块的哈希值,从而确定出可信任的存储节点。
例如,从节点2被确定为目标从节点,此时异常主节点并未恢复,则控制目标从节点向从节点1定时发送运行状态信息,并查询存储节点1、存储节点2、存储节点3以及存储节点4中最高区块的高度值以及最高区块的哈希值。
在一些实施方式中,请参阅图2e,图2e为本申请实施例提供的发送节点集群中的主从节点与存储节点集群中的存储节点之间的第四种通信连接图。其中,当确定出存储节点1为可信任的存储节点后,目标从节点从存储节点1中获取已存储区块的状态数据,并根据已存储区块的状态数据确定主节点在异常时的区块发送进度。
例如,目标从节点在存储节点1中获取到已存储区块携带的状态数据有区块1已存储,区块2已存储以及区块3已存储,则从节点1确定主节点已经将区块1、区块2以及区块3进行分发并验证通过后被存储节点进行存储,则主节点的区块发送进度为区块1、区块2以及区块3。
在一些实施方式中,请参阅图2f,图2f为本申请实施例提供的发送节点集群中的主从节点与存储节点集群中的存储节点之间的第五种通信连接图。其中,目标从节点在确定了主节点在异常时的区块发送进度后,代替主节点继续交易的执行,因此,接收交易的节点从主节点变更为目标从节点,并由目标从节点进行交易的排序和打包成区块的过程,并将待存储区块发送至存储节点集群中的每一存储节点进行验证及存储。
例如,主节点在异常时的区块发送进度为区块1、区块2以及区块3,则目标从节点在代替主节点继续交易的执行后,会继续发送区块4等的区块至存储节点集群中的每一存储节点进行验证及存储。
为便于更好的实施本申请实施例提供的基于区块链的节点同步方法,本申请实施例还提供一种基于上述基于区块链的节点同步方法的装置。其中名词的含义与上述基于区块链的节点同步方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图3,图3为本申请实施例提供的基于区块链的节点同步装置的结构示意图,其中该基于区块链的节点同步装置可以包括发送模块301、筛选模块302以及获取模块303等。
发送模块301,用于控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,该待存储区块携带有状态数据,该发送节点集群包括主节点以及多个从节点,该状态数据用于记录区块的交易状态;
筛选模块302,用于当该主节点异常时,在多个从节点中筛选出目标从节点,并将该目标从节点更新为主节点,以及从该存储节点集群中筛选出目标存储节点;
获取模块303,用于控制更新后主节点从该目标存储节点获取每一已存储区块携带的状态数据,以使该更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。
在一些实施例中,所述筛选模块302,包括:
第一发送子模块,用于向每一存储节点发送第一查询请求,所述第一查询请求用于查询存储节点的最高区块的高度值以及最高区块的哈希值;
接收子模块,用于接收存储节点根据所述第一查询请求返回的第一反馈信息;
排序子模块,用于根据所述第一反馈信息,基于每个存储节点的最高区块高度值和哈希值对存储节点集群中的所有存储节点进行排序;
第一筛选子模块,用于根据排序结果从存储节点集群中筛选出目标存储节点。
在一些实施例中,所述装置还包括:
接收模块,用于接收每一所述存储节点发送的响应信息,当所述响应信息的数量大于第一预设数量时,向存储节点集群中的每一存储节点发送下一待存储区块;
所述排序子模块,包括:
第一排序单元,用于当所述第一反馈信息的数量大于第二预设数量时,按照高度值将最高区块高度值对应的每一存储节点进行排序,得到第一排序结果,所述第二预设数量为所述第一预设数量加一后的数量;
第二排序单元,用于按照哈希值将所述第一排序结果中的每一存储节点进行排序,得到第二排序结果;
所述第一筛选子模块,包括:
筛选单元,用于根据所述第二排序结果从存储节点集群中筛选出目标存储节点。
在一些实施例中,所述筛选单元用于:
获取所述第二排序结果中具有相同最高区块高度值和哈希值的第一候选存储节点的候选存储节点数量;
当所述候选存储节点数量大于所述第二预设数量时,将任一所述第一候选存储节点确定为目标存储节点。
在一些实施例中,所述筛选模块302还用于:
当所述候选存储节点数量小于所述第二预设数量时,根据所述第一反馈信息的数量确定异常数量,所述异常数量为存储节点集群中未根据所述第一查询请求返回第一反馈信息的异常存储节点的数量;
计算所述异常数量与所述第一候选存储节点的数量之和,得到计算结果;
当所述计算结果小于所述第二预设数量时,根据第一高度值确定第二高度值,所述第一高度值为候选存储节点对应的最高区块高度值,所述第二高度值为所述第一高度值减一得到的高度值;
向每一存储节点发送第二查询请求,所述第二查询请求用于查询所述第二高度值对应区块的哈希值;
接收存储节点根据所述第二查询请求返回的第二反馈信息,确定具有相同哈希值的第二候选存储节点的数量;
若具有相同哈希值的第二候选存储节点的数量大于所述第二预设数量,则将任一第二候选存储节点确定为目标存储节点。
在一些实施例中,所述筛选模块302还用于:
当所述计算结果大于所述第二预设数量时,判断在预设时间段内是否收到异常存储节点根据所述第一查询请求返回的第一反馈信息;
若在第一预设时间段内未收到异常存储节点根据所述第一查询请求返回的第一反馈信息,则将所述异常存储节点的最高区块的高度值确定为零,将所述异常存储节点的最高区块的哈希值确定为无。
在一些实施例中,所述筛选模块302还用于:
若具有相同哈希值的第二候选存储节点的数量小于所述第二预设数量,则生成一提示信息,所述提示信息用于提示无法确定目标存储节点。
在一些实施例中,所述装置还包括:
控制模块,用于控制所述主节点按照预设时间间隔向每一从节点发送运行状态信息;
所述筛选模块302,包括:
指定子模块,用于当从节点在当前运行状态信息的接收时间点未接收到所述运行状态信息时,控制每一从节点从多个从节点中指定一候选从节点,得到指定结果,并发送所述指定结果;
第二筛选子模块,用于接收每一从节点发送的指定结果,基于所述指定结果在多个从节点中筛选出目标从节点。
在一些实施例中,所述第二筛选子模块,包括:
第一确定单元,用于基于所述确定结果,确定多个从节点中每一从节点被指定为候选从节点的次数;
第二确定单元,用于将多个从节点中所述次数最高的从节点,确定为目标从节点。
由上述可知,本申请实施例通过发送模块301控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,该待存储区块携带有状态数据,该发送节点集群包括主节点以及多个从节点,该状态数据用于记录区块的交易状态;筛选模块302当该主节点异常时,在多个从节点中筛选出目标从节点,并将该目标从节点更新为主节点,以及从该存储节点集群中筛选出目标存储节点;获取模块303控制更新后主节点从该目标存储节点获取每一已存储区块携带的状态数据,以使该更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。以此,通过控制更新后的主节点从目标存储节点中获取状态数据的方式确定异常主节点在异常时的区块发送进度,避免更新后的主节点无法准确得知异常主节点在异常时的发送进度,容易造成区块数据丢失等风险,提高区块数据的完整性。
相应的,本申请实施例还提供一种服务器。如图4所示,图4为本申请实施例提供的服务器的结构示意图。该服务器400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器401是服务器400的控制中心,利用各种接口和线路连接整个服务器400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器400的各种功能和处理数据,从而对服务器400进行整体监控。
在本申请实施例中,服务器400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,该待存储区块携带有状态数据,该发送节点集群包括主节点以及多个从节点,该状态数据用于记录区块的交易状态;当该主节点异常时,在多个从节点中筛选出目标从节点,并将该目标从节点更新为主节点,以及从该存储节点集群中筛选出目标存储节点;控制更新后主节点从该目标存储节点获取每一已存储区块携带的状态数据,以使该更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图4所示,服务器400还包括:输入单元403以及电源404。其中,处理器401分别与输入单元403以及电源404电性连接。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在本申请实施例中,输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源404用于给服务器400的各个部件供电。可选的,电源404可以通过电源管理***与处理器401逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源404还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的服务器,通过控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,该待存储区块携带有状态数据,该发送节点集群包括主节点以及多个从节点,该状态数据用于记录区块的交易状态;当该主节点异常时,在多个从节点中筛选出目标从节点,并将该目标从节点更新为主节点,以及从该存储节点集群中筛选出目标存储节点;控制更新后主节点从该目标存储节点获取每一已存储区块携带的状态数据,以使该更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。以此,通过控制更新后的主节点从目标存储节点中获取状态数据的方式确定异常主节点在异常时的区块发送进度,避免更新后的主节点无法准确得知异常主节点在异常时的发送进度,容易造成区块数据丢失等风险,提高区块数据的完整性。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种数据处理方法中的步骤。例如,该计算机程序可以执行如下步骤:
控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,该待存储区块携带有状态数据,该发送节点集群包括主节点以及多个从节点,该状态数据用于记录区块的交易状态;当该主节点异常时,在多个从节点中筛选出目标从节点,并将该目标从节点更新为主节点,以及从该存储节点集群中筛选出目标存储节点;控制更新后主节点从该目标存储节点获取每一已存储区块携带的状态数据,以使该更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种数据处理方法中的步骤,因此,可以实现本申请实施例所提供的任一种基于区块链的节点同步方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种基于区块链的节点同步方法、装置、存储介质及服务器进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种基于区块链的节点同步方法,其特征在于,包括:
控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,所述待存储区块携带有状态数据,所述发送节点集群包括主节点以及多个从节点,所述状态数据用于记录区块的交易状态;
当所述主节点异常时,在多个从节点中筛选出目标从节点,并将所述目标从节点更新为主节点,以及从所述存储节点集群中筛选出目标存储节点;
控制更新后主节点从所述目标存储节点获取每一已存储区块携带的状态数据,以使所述更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。
2.根据权利要求1所述的基于区块链的节点同步方法,其特征在于,所述从所述存储节点集群中筛选出目标存储节点的步骤,包括:
向每一存储节点发送第一查询请求,所述第一查询请求用于查询存储节点的最高区块的高度值以及最高区块的哈希值;
接收存储节点根据所述第一查询请求返回的第一反馈信息;
根据所述第一反馈信息,基于每个存储节点的最高区块高度值和哈希值对存储节点集群中的所有存储节点进行排序;
根据排序结果从存储节点集群中筛选出目标存储节点。
3.根据权利要求2所述的基于区块链的节点同步方法,其特征在于,在所述向存储节点集群中的每一存储节点发送所述待存储区块的步骤之后,还包括:
接收每一所述存储节点发送的响应信息,当所述响应信息的数量大于第一预设数量时,向存储节点集群中的每一存储节点发送下一待存储区块;
所述根据所述第一反馈信息,基于每个存储节点的最高区块高度值和哈希值对存储节点集群中的所有存储节点进行排序的步骤,包括:
当所述第一反馈信息的数量大于第二预设数量时,按照高度值将最高区块高度值对应的每一存储节点进行排序,得到第一排序结果,所述第二预设数量为所述第一预设数量加一后的数量;
按照哈希值将所述第一排序结果中的每一存储节点进行排序,得到第二排序结果;
所述根据排序结果从存储节点集群中筛选出目标存储节点的步骤,包括:
根据所述第二排序结果从存储节点集群中筛选出目标存储节点。
4.根据权利要求3所述的基于区块链的节点同步方法,其特征在于,所述根据所述第二排序结果从存储节点集群中筛选出目标存储节点的步骤,包括:
获取所述第二排序结果中具有相同最高区块高度值和哈希值的第一候选存储节点的候选存储节点数量;
当所述候选存储节点数量大于所述第二预设数量时,将任一所述第一候选存储节点确定为目标存储节点。
5.根据权利要求4所述的基于区块链的节点同步方法,其特征在于,所述方法还包括:
当所述候选存储节点数量小于所述第二预设数量时,根据所述第一反馈信息的数量确定异常数量,所述异常数量为存储节点集群中未根据所述第一查询请求返回第一反馈信息的异常存储节点的数量;
计算所述异常数量与所述第一候选存储节点的数量之和,得到计算结果;
当所述计算结果小于所述第二预设数量时,根据第一高度值确定第二高度值,所述第一高度值为候选存储节点对应的最高区块高度值,所述第二高度值为所述第一高度值减一得到的高度值;
向每一存储节点发送第二查询请求,所述第二查询请求用于查询所述第二高度值对应区块的哈希值;
接收存储节点根据所述第二查询请求返回的第二反馈信息,确定具有相同哈希值的第二候选存储节点的数量;
若具有相同哈希值的第二候选存储节点的数量大于所述第二预设数量,则将任一第二候选存储节点确定为目标存储节点。
6.根据权利要求5所述的基于区块链的节点同步方法,其特征在于,所述方法还包括:
当所述计算结果大于所述第二预设数量时,判断在预设时间段内是否收到异常存储节点根据所述第一查询请求返回的第一反馈信息;
若在第一预设时间段内未收到异常存储节点根据所述第一查询请求返回的第一反馈信息,则将所述异常存储节点的最高区块的高度值确定为零,将所述异常存储节点的最高区块的哈希值确定为无。
7.根据权利要求4所述的基于区块链的节点同步方法,其特征在于,所述方法还包括:
若具有相同哈希值的第二候选存储节点的数量小于所述第二预设数量,则生成一提示信息,所述提示信息用于提示无法确定目标存储节点。
8.根据权利要求1所述的基于区块链的节点同步方法,其特征在于,在所述当所述主节点异常时,在多个从节点中筛选出目标从节点的步骤之前,还包括:
控制所述主节点按照预设时间间隔向每一从节点发送运行状态信息;
所述当所述主节点异常时,在多个从节点中筛选出目标从节点的步骤,包括:
当从节点在当前运行状态信息的接收时间点未接收到所述运行状态信息时,控制每一从节点从多个从节点中指定一候选从节点,得到指定结果,并发送所述指定结果;
接收每一从节点发送的指定结果,基于所述指定结果在多个从节点中筛选出目标从节点。
9.根据权利要求8所述的基于区块链的节点同步方法,其特征在于,所述基于所述确定结果在多个从节点中筛选出目标从节点的步骤,包括:
基于所述确定结果,确定多个从节点中每一从节点被指定为候选从节点的次数;
将多个从节点中所述次数最高的从节点,确定为目标从节点。
10.一种基于区块链的节点同步装置,其特征在于,包括:
发送模块,用于控制发送节点集群中的主节点向存储节点集群中的每一存储节点发送待存储区块,所述待存储区块携带有状态数据,所述发送节点集群包括主节点以及多个从节点,所述状态数据用于记录区块的交易状态;
筛选模块,用于当所述主节点异常时,在多个从节点中筛选出目标从节点,并将所述目标从节点更新为主节点,以及从所述存储节点集群中筛选出目标存储节点;
获取模块,用于控制更新后主节点从所述目标存储节点获取每一已存储区块携带的状态数据,以使所述更新后主节点根据每一已存储区块携带的状态数据确定异常主节点在异常时的区块发送进度。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至9任一项所述的基于区块链的节点同步方法中的步骤。
12.一种服务器,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至9任一项所述的基于区块链的节点同步方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110644467.XA CN113364874B (zh) | 2021-06-09 | 2021-06-09 | 基于区块链的节点同步方法、装置、存储介质及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110644467.XA CN113364874B (zh) | 2021-06-09 | 2021-06-09 | 基于区块链的节点同步方法、装置、存储介质及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113364874A CN113364874A (zh) | 2021-09-07 |
CN113364874B true CN113364874B (zh) | 2022-06-10 |
Family
ID=77533404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110644467.XA Active CN113364874B (zh) | 2021-06-09 | 2021-06-09 | 基于区块链的节点同步方法、装置、存储介质及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113364874B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794764A (zh) * | 2021-09-10 | 2021-12-14 | 小红书科技有限公司 | 服务器集群的请求处理方法、介质和电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018149385A1 (zh) * | 2017-02-17 | 2018-08-23 | 阿里巴巴集团控股有限公司 | 一种区块链***、数据存储方法及装置 |
CN109951331A (zh) * | 2019-03-15 | 2019-06-28 | 北京百度网讯科技有限公司 | 用于发送信息的方法、装置和计算集群 |
CN110430064A (zh) * | 2017-03-30 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 区块链***、消息处理方法及存储介质 |
CN110633323A (zh) * | 2019-09-16 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 业务数据存储方法、装置、存储介质和计算机设备 |
CN110868337A (zh) * | 2019-11-15 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 容错共识机制测试方法、装置、存储介质和计算机设备 |
WO2020048436A1 (zh) * | 2018-09-07 | 2020-03-12 | 腾讯科技(深圳)有限公司 | 代表节点设备选举方法、装置、计算机设备及存储介质 |
CN111694694A (zh) * | 2020-05-22 | 2020-09-22 | 北京三快在线科技有限公司 | 数据库集群的处理方法、装置、存储介质和节点 |
WO2020187069A1 (zh) * | 2019-03-15 | 2020-09-24 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、计算机设备以及可读存储介质 |
WO2020258912A1 (zh) * | 2019-06-26 | 2020-12-30 | 京东数字科技控股有限公司 | 一种区块链共识方法、装置和*** |
CN112190924A (zh) * | 2020-12-04 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 一种数据容灾方法、装置及计算机可读介质 |
-
2021
- 2021-06-09 CN CN202110644467.XA patent/CN113364874B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018149385A1 (zh) * | 2017-02-17 | 2018-08-23 | 阿里巴巴集团控股有限公司 | 一种区块链***、数据存储方法及装置 |
CN110430064A (zh) * | 2017-03-30 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 区块链***、消息处理方法及存储介质 |
WO2020048436A1 (zh) * | 2018-09-07 | 2020-03-12 | 腾讯科技(深圳)有限公司 | 代表节点设备选举方法、装置、计算机设备及存储介质 |
CN109951331A (zh) * | 2019-03-15 | 2019-06-28 | 北京百度网讯科技有限公司 | 用于发送信息的方法、装置和计算集群 |
WO2020187069A1 (zh) * | 2019-03-15 | 2020-09-24 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、计算机设备以及可读存储介质 |
WO2020258912A1 (zh) * | 2019-06-26 | 2020-12-30 | 京东数字科技控股有限公司 | 一种区块链共识方法、装置和*** |
CN110633323A (zh) * | 2019-09-16 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 业务数据存储方法、装置、存储介质和计算机设备 |
CN110868337A (zh) * | 2019-11-15 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 容错共识机制测试方法、装置、存储介质和计算机设备 |
CN111694694A (zh) * | 2020-05-22 | 2020-09-22 | 北京三快在线科技有限公司 | 数据库集群的处理方法、装置、存储介质和节点 |
CN112190924A (zh) * | 2020-12-04 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 一种数据容灾方法、装置及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113364874A (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7428210B2 (en) | Fail over method and a computing system having fail over function | |
CN109886693B (zh) | 区块链***的共识实现方法、装置、设备和介质 | |
CN113342893B (zh) | 基于区块链的节点同步方法、装置、存储介质及服务器 | |
KR20120018178A (ko) | 객체 저장부들의 네트워크상의 스웜-기반의 동기화 | |
CN107451147A (zh) | 一种kafka集群动态切换的方法和装置 | |
WO2020199713A1 (zh) | 数据验证方法、***、装置及设备 | |
Berger et al. | AWARE: Adaptive wide-area replication for fast and resilient Byzantine consensus | |
CN113157810B (zh) | 一种区块同步方法、计算机设备和存储介质 | |
CN111400112A (zh) | 分布式集群的存储***的写入方法、装置及可读存储介质 | |
CN114092252B (zh) | 一种区块链交易执行方法、装置、设备及可读存储介质 | |
CN114049123A (zh) | 区块链的共识方法、装置、计算机设备和存储介质 | |
CN112231108A (zh) | 任务处理方法、装置、计算机可读存储介质及服务器 | |
EP3813335A1 (en) | Service processing method and system based on alliance chain network | |
CN111198662A (zh) | 一种数据存储方法、装置和计算机可读存储介质 | |
CN113364874B (zh) | 基于区块链的节点同步方法、装置、存储介质及服务器 | |
CN111541762A (zh) | 数据处理的方法、管理服务器、设备及存储介质 | |
CN113395165B (zh) | 共识流程处理方法、装置、存储介质及计算机设备 | |
CN110569124A (zh) | 一种任务分配方法和装置 | |
CN114936253A (zh) | 区块链的共识方法及装置、电子设备、存储介质 | |
CN114172785A (zh) | 告警信息处理方法、装置、设备和存储介质 | |
WO2024113956A1 (zh) | 节点选取方法、装置、第一节点、存储介质及程序产品 | |
CN111737351A (zh) | 分布式管理***事务管理方法及装置 | |
CN112181599A (zh) | 模型训练方法、装置及存储介质 | |
CN110704196A (zh) | 资源数据的转移方法、装置和区块链*** | |
CN114489772A (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 |