CN111475575A - 基于区块链的数据同步方法、装置及计算机可读存储介质 - Google Patents

基于区块链的数据同步方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN111475575A
CN111475575A CN202010274759.4A CN202010274759A CN111475575A CN 111475575 A CN111475575 A CN 111475575A CN 202010274759 A CN202010274759 A CN 202010274759A CN 111475575 A CN111475575 A CN 111475575A
Authority
CN
China
Prior art keywords
block
data
height
service node
missing
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
CN202010274759.4A
Other languages
English (en)
Other versions
CN111475575B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010274759.4A priority Critical patent/CN111475575B/zh
Publication of CN111475575A publication Critical patent/CN111475575A/zh
Priority to PCT/CN2021/074977 priority patent/WO2021203820A1/zh
Application granted granted Critical
Publication of CN111475575B publication Critical patent/CN111475575B/zh
Priority to US17/719,293 priority patent/US11899689B2/en
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
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

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

Abstract

本申请公开了一种基于区块链的数据同步方法、装置及计算机可读存储介质,该方法由第一业务节点执行,该方法包括:获取目标区块数据,获取第一本地区块高度;第一本地区块高度指第一业务节点在获取目标区块数据之前,本地区块数据中的最高区块高度;目标区块数据中的最小区块高度大于第一本地区块高度;根据目标区块数据中的区块高度和第一本地区块高度,确定缺失区块数据的区块高度;缺失区块数据的区块高度小于目标区块数据中的最小区块高度,且大于第一本地区块高度;根据缺失区块数据的区块高度,向目标业务节点请求同步缺失区块数据。采用本申请,可提高缺失区块数据的同步效率。

Description

基于区块链的数据同步方法、装置及计算机可读存储介质
技术领域
本申请涉及数据处理的技术领域,尤其涉及一种基于区块链的数据同步方法、装置及计算机可读存储介质。
背景技术
随着区块链技术的不断发展,越来越多的事物可以通过区块链网络进行执行。其中,区块链网络中可以包括多个业务节点,各个业务节点之间相互连接,且各个业务节点之间可以相互拉取区块数据(该区块数据可以是区块头数据)。
现有技术中,当某个业务节点向其他业务节点拉取区块数据时,若是遗漏了某些区块数据未拉取过来,则需要重新向其他业务节点重新同步所有的区块数据。由于所有的区块数据的数据量往往比较大,因此,重新同步所有的区块数据会导致区块数据的拉取效率低。
申请内容
本申请提供了一种基于区块链的数据同步方法、装置及计算机可读存储介质,可提高缺失区块数据的同步效率。
本申请一方面提供了一种基于区块链的数据同步方法,由第一业务节点执行,包括:
获取目标区块数据,获取第一本地区块高度;第一本地区块高度指第一业务节点在获取目标区块数据之前,本地区块数据中的最高区块高度;目标区块数据中的最小区块高度大于第一本地区块高度;
根据目标区块数据中的区块高度和第一本地区块高度,确定缺失区块数据的区块高度;缺失区块数据的区块高度小于目标区块数据中的最小区块高度,且大于第一本地区块高度;
根据缺失区块数据的区块高度,向目标业务节点请求同步缺失区块数据。
本申请一方面提供了一种基于区块链的数据同步装置,应用于第一业务节点,包括:
数据获取模块,用于获取目标区块数据,获取第一本地区块高度;第一本地区块高度指第一业务节点在获取目标区块数据之前,本地区块数据中的最高区块高度;目标区块数据中的最小区块高度大于第一本地区块高度;
高度确定模块,用于根据目标区块数据中的区块高度和第一本地区块高度,确定缺失区块数据的区块高度;缺失区块数据的区块高度小于目标区块数据中的最小区块高度,且大于第一本地区块高度;
同步模块,用于根据缺失区块数据的区块高度,向目标业务节点请求同步缺失区块数据。
其中,数据获取模块,包括:
第一高度获取单元,用于获取第二业务节点广播的第二本地区块高度;第二本地区块高度为第二业务节点根据广播周期向第一业务节点所广播的;
数据获取单元,用于当检测到第二本地区块高度大于第一本地区块高度时,根据第一本地区块高度和第二本地区块高度,获取目标区块数据。
其中,数据同步装置,还用于:
根据广播周期向第二业务节点广播第一本地区块高度,以使第二业务节点在检测到第一本地区块高度大于第二本地区块高度时,根据第一本地区块高度和第二本地区块高度向第三业务节点拉取区块数据;第三业务节点为业务节点集群中服务质量分数最高的业务节点。
其中,数据获取模块,包括:
队列获取单元,用于获取最高区块高度队列;最高区块高度队列中包括第一业务节点每次拉取区块数据时,所拉取到的区块数据中的最高区块高度;
第二高度获取单元,用于从最高区块高度队列中获取数值最大的区块高度,作为第一本地区块高度;
高度添加单元,用于将目标区块数据所携带的区块高度中的最高区块高度添加至最高区块高度队列中。
其中,同步模块,包括:
缺失高度添加单元,用于将缺失区块数据的区块高度添加至缺失区块队列中;
同步单元,用于根据缺失区块队列,向目标业务节点请求同步缺失区块数据。
其中,数据同步装置,还用于:
当根据缺失区块队列向目标业务节点成功同步到缺失区块数据后,将缺失区块数据的区块高度从缺失区块队列中删除。
其中,缺失区块队列中的区块高度均携带有获取状态;获取状态包括未获取状态;
缺失高度添加单元,包括:
状态添加子单元,用于为缺失区块数据的区块高度添加未获取状态;
状态高度添加子单元,用于将添加有未获取状态的区块高度,添加至缺失区块队列。
其中,获取状态还包括已获取状态;
同步单元,包括:
扫描子单元,用于根据扫描周期,扫描缺失区块队列中添加有未获取状态的区块高度;
同步子单元,用于根据扫描到的添加有未获取状态的区块高度,向目标业务节点请求同步缺失区块数据;
状态更改子单元,用于当向目标业务节点成功同步到缺失区块数据时,将缺失区块队列中,缺失区块数据的区块高度所添加的未获取状态更改为已获取状态。
其中,同步模块,包括:
分数检测单元,用于检测业务节点集群中的每个业务节点的服务质量分数;每个业务节点的服务质量分数是根据每个业务节点在单位时间内所获取到的区块数据的数量所决定的;
节点确定单元,用于将业务节点集群中具有最高服务质量分数的业务节点,确定为目标业务节点;
数据同步单元,用于根据缺失区块数据的区块高度,向目标业务节点请求同步缺失区块数据。
其中,一个区块数据对应于一个区块;第一业务节点所获取到的每个区块数据中分别包括所对应的区块中的区块头以及所对应的区块中的所有业务数据的哈希值;
数据同步装置,还包括:
待验证模块,用于获取待验证业务数据,获取待验证业务数据的哈希值;
区块获取模块,用于从所获取到的区块数据中获取包括待验证业务数据的哈希值的区块数据,作为待验证区块数据;
验证模块,用于根据待验证区块数据中的区块头以及待验证区块数据中的所有哈希值,验证待验证业务数据,得到验证结果;验证结果包括合法验证结果和非法验证结果。
其中,验证模块,包括:
树根获取单元,用于从待验证区块数据中的区块头中,获取区块默克尔树根;
树根确定单元,用于根据待验证区块数据中的所有哈希值,确定待验证默克尔树根;
第一结果获取单元,用于当区块默克尔树根与待验证默克尔树根相同时,得到合法验证结果;
第二结果获取单元,用于当真实默克尔树根与待验证默克尔树根不相同时,得到非法验证结果。
本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如本申请中一方面中的方法。
本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述一方面中的方法。
本申请可以获取目标区块数据,获取第一本地区块高度;第一本地区块高度指第一业务节点在获取目标区块数据之前,本地区块数据中的最高区块高度;目标区块数据中的最小区块高度大于第一本地区块高度;根据目标区块数据中的区块高度和第一本地区块高度,确定缺失区块数据的区块高度;缺失区块数据的区块高度小于目标区块数据中的最小区块高度,且大于第一本地区块高度;根据缺失区块数据的区块高度,向目标业务节点请求同步缺失区块数据。由此可见,本申请提出的方法可以通过目标区块数据的区块高度以及第一本地区块高度,得到缺失区块数据的区块高度,进而可以通过该缺失区块数据的区块高度快速同步到缺失区块数据。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种系统架构示意图;
图2是本申请提供的一种数据拉取的场景示意图;
图3是本申请提供的一种基于区块链的数据同步方法的流程示意图;
图4是本申请提供的一种队列变化的场景示意图;
图5是本申请提供的一种队列变化的场景示意图;
图6是本申请提供的一种数据验证的场景示意图;
图7是本申请提供的一种基于区块链的数据同步装置的结构示意图;
图8是本申请提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请涉及到区块链的相关技术。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。区块链中包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
请参见图1,是本申请提供的一种系统架构示意图。如图1所示,该系统架构示意图包括多个业务节点,该多个业务节点均为区块链网络中的区块链节点,该多个业务节点具体包括业务节点100a、业务节点101a、业务节点102a以及业务节点103a。此处,一个业务节点可以由一个服务器构成,也可以由多个服务器构成,构成一个业务节点的服务器的个数根据实际应用场景决定,对此不做限制。业务节点100a、业务节点101a、业务节点102a以及业务节点103a之间相互连接,业务节点100a、业务节点101a、业务节点102a以及业务节点103a之间可以相互拉取区块数据,该区块数据可以是区块头。其中,以业务节点100a向其他业务节点拉取区块数据的过程为例进行本申请的说明。
请一并参见图2,是本申请提供的一种数据拉取的场景示意图。如图2所示,业务节点100a中可以维护两个队列,即队列100b和队列101b。其中,队列100b中包括业务节点100a每次向其他业务节点(可以是业务节点101a、业务节点102a或业务节点103a)拉取区块数据时,所拉取到的区块数据的最高区块高度。队列100b中包括业务节点100a每次向其他业务节点拉取区块数据时,所缺失的区块数据的区块高度。
具体为,通常业务节点每次拉取到的区块数据都是区块高度连续的区块数据,如图2所示,当业务节点100a第1次向其他业务节点拉取到了区块数据106a(包括区块高度为1的区块数据、区块高度为2的区块数据以及区块高度为3的区块数据)时,此次拉取到的区块数据106a中的最高区块高度即为3,因此,业务节点100a可以将该最高区块高度3添加到队列100b中。
之后,当业务节点100a第2次向其他业务节点拉取到区块数据105a(包括区块高度为4的区块数据、区块高度为5的区块数据以及区块高度为6的区块数据)时,此次拉取到的区块数据105a中的最高区块高度为6,最低区块高度为4。因此,业务节点100a可以将最高区块高度6添加到队列100b中,由于在将最高区块高度6添加到队列100b中之前,队列100b中的最高区块高度为3,该最高区块高度3与第2次拉取到的区块数据105a中的最低区块高度4之间是连续的没有间断(即没有跳跃的区块高度),表明第2次拉取区块数据时,没有缺失的区块数据,因此,第2次拉取区块数据后,并不会向队列101b中添加区块高度。
当业务节点100a第3次向其他业务节点拉取到区块数据104a(包括区块高度为8的区块数据、区块高度为9的区块数据以及区块高度为10的区块数据)时,此次拉取到的区块数据104a中的最高区块高度为10,最低区块高度为8。因此,业务节点100a可以将最高区块高度10添加到队列100b中,由于在将最高区块高度10添加到队列100b中之前,队列100b中的最高区块高度为6,该最高区块高度6与第3次拉取到的区块数据104a中的最低区块高度8之间不是连续的而是间断的(即有跳跃的区块高度7),表明第3次拉取区块数据时,有缺失的区块数据,该缺失的区块数据即为区块高度为7的区块数据,因此,第3次拉取区块数据后,业务节点100a可以向队列101b中添加区块高度7。
当业务节点100a第4次向其他业务节点拉取到区块数据103a(包括区块高度为12的区块数据以及区块高度为13的区块数据)时,此次拉取到的区块数据103a中的最高区块高度为13,最低区块高度为12。因此,业务节点100a可以将最高区块高度13添加到队列100b中,由于在将最高区块高度13添加到队列100b中之前,队列100b中的最高区块高度为10,该最高区块高度10与第4次拉取到的区块数据103a中的最低区块高度12之间不是连续的而是间断的(即有跳跃的区块高度11),表明第4次拉取区块数据时,有缺失的区块数据,该缺失的区块数据即为区块高度为11的区块数据,因此,第4次拉取区块数据后,业务节点100a可以向队列101b中添加区块高度11。
当业务节点100a第5次向其他业务节点拉取到区块数据102a(包括区块高度为16的区块数据以及区块高度为17的区块数据)时,此次拉取到的区块数据102a中的最高区块高度为17,最低区块高度为16。因此,业务节点100a可以将最高区块高度17添加到队列100b中,由于在将最高区块高度17添加到队列100b中之前,队列100b中的最高区块高度为13,该最高区块高度13与第4次拉取到的区块数据102a中的最低区块高度16之间不是连续的而是间断的(即有跳跃的区块高度14和区块高度15),表明第5次拉取区块数据时,有缺失的区块数据,该缺失的区块数据即为区块高度为14的区块数据和区块高度为15的区块数据,因此,第5次拉取区块数据后,业务节点100a可以向队列101b中添加区块高度14和区块高度15。
通过上述过程可以理解的是,每次业务节点a在向其他业务节点拉取新的区块数据时,都会将所拉取到的区块数据中的最高区块高度添加到队列100b,并根据队列100b中的最高区块高度以及拉取到的区块数据的最低区块高度,找出缺失的区块数据的区块高度,业务节点可以将缺失的区块数据的区块高度添加到队列101b中。后续,业务节点100a可以通过队列101b中所记录的区块高度向其他业务节点(可以是业务节点101a、业务节点102a或业务节点103a)拉取对应区块高度的区块数据。此处,即为业务节点100a向其他业务节点拉取到区块数据107a(包括区块高度为7的区块数据100c、区块高度为11的区块数据101c、区块高度为14的区块数据102c以及区块高度为15的区块数据103c),以实现快速同步之前拉取区块数据时所缺失的区块数据。通过上述队列101b快速同步到缺失的区块数据(包括区块高度为7的区块数据100c、区块高度为11的区块数据101c、区块高度为14的区块数据102c以及区块高度为15的区块数据103c)之后,业务节点100a就持有了当前完整的区块数据,该完整的区块数据即包括区块高度为1的区块数据、区块高度为2的区块数据、……以及区块高度为17的区块数据共17个连续的区块数据。并且,在业务节点100a通过队列101b同步自己所缺失的区块数据的同时,还可以持续向其他业务节点拉取新的区块数据(例如区块高度为18的区块数据、区块高度为19的区块数据……)。
同理,区块链网络中的每个业务节点(包括业务节点100a、业务节点101a、业务节点102a和业务节点103a)都可以维护与上述队列100b和队列101b同类型的两个队列,每个业务节点可以通过自己所维护的该两个队列,实现快速同步缺失的区块数据,每个业务节点同步缺失的区块数据的过程与上述业务节点100a同步缺失的区块数据的过程相同。
采用本申请所提供的方法,可以在业务节点中维护两个队列,以通过该两个队列实现快速同步业务节点所缺失的区块数据,提高了针对缺失的区块数据的拉取效率。并且,通过该两个队列,在同步缺失的区块数据的过程中,也不影响业务节点继续拉取其他新的区块数据。
请参见图3,是本申请提供的一种基于区块链的数据同步方法的流程示意图,如图3所示,该方法可以包括:
步骤S101,获取目标区块数据,获取第一本地区块高度;第一本地区块高度指第一业务节点在获取目标区块数据之前,本地区块数据中的最高区块高度;目标区块数据中的最小区块高度大于第一本地区块高度;
具体的,本实施例以第一业务节点作为执行主体为例进行说明,第一业务节点可以是区块链网络中的任意一个区块链节点。例如,第一业务节点可以是区块链网络中的任意一个轻量节点(即spv节点),也可以是区块链网络中的任意一个共识节点,还可以是区块链网络中除共识节点之外的任意一个区块链节点。其中,第一业务节点为一个计算机设备,该计算机设备可以是服务器或者终端设备等。换句话说,区块链网络中的一个区块链节点可以是服务器也可以是终端设备等,并且,一个区块链节点对应的服务器的个数或者终端设备的个数根据实际应用场景决定,对此不做限制。第一业务节点中可以维护一个最高区块高度队列,该最高区块高度队列用于存储第一业务节点每次向其他业务节点拉取区块数据时,所拉取到的区块数据的最高区块高度。在某个时间点,该最高区块高度队列中的数值最大的区块高度即为第一业务节点在该时间点所拉取到的区块数据中的最高区块高度。举个例子,若最高区块高度队列中的数值最大的区块高度为100,则表明原理上第一业务节点现在已经拉取到了区块高度为11到100,共100个区块数据(此种情况的实际场景中,可能会存在拉取时缺失的区块数据,例如第一业务节点并未拉取到区块高度为50的区块数据,则缺失的区块数据就为区块高度为50的区块数据)。其中,区块数据可以包括区块中的区块头,区块数据还可以包括区块中所有业务数据的哈希值(也可以是部分业务数据的哈希值,举个例子,第一业务节点拉取到的区块数据可以包括区块中的区块头以及区块中不属于第一业务节点的那部分业务数据的哈希值)。
区块链网络中除了可以有第一业务节点之外,还可以包括其他多个业务节点,区块链网络中的多个业务节点之间可以相互定期(例如每隔30分钟,或者每隔1小时等)广播自己的本地区块高度。其中,本地区块高度是指在某个时间点,业务节点中所存储的所有区块数据中的最高区块高度。因此,第一业务节点也可以知道区块链网络中的其他业务节点的本地区块高度。可以将第一业务节点的本地区块高度称之为第一本地区块高度,因此,由上可知,第一本地区块高度即为第一业务节点的最高区块高度队列中数值最大的区块高度。第一业务节点可以将获取到的其他业务节点的本地区块高度与自己的第一本地区块高度进行比对,当比对出其他业务节点的本地区块高度大于第一本地区块高度时,第一业务节点就可以向其他业务节点拉取新的区块数据。
举个例子,第一业务节点可以获取到第二业务节点(可以是区块链网络中除第一业务节点之外的任意一个业务节点)向其广播的本地区块高度,其中,第二业务节点可以根据广播周期(例如1分钟,1小时或者1天等)定期向第一业务节点广播自己的本地区块高度。可以将第二业务节点的本地区块高度称之为第二本地区块高度,第一业务节点当检测到第二本地区块高度大于第一本地区块高度时,第一业务节点可以根据第一本地区块高度和第二本地区块高度,向其他业务节点(例如第二业务节点)拉取新的区块数据。例如,当第一本地区块高度为5,第二本地区块高度为10,则第一业务节点可以向其他业务节点拉取区块高度6到10的区块数据,即拉取区块高度为6的区块数据、区块高度为7的区块数据、区块高度为8的区块数据、区块高度为9的区块数据以及区块高度为10的区块数据。可以将第一业务节点拉取到的新的区块数据称之为目标业务数据,但是,第一业务节点在向其他业务节点拉取新的区块数据时,有可能会遗漏掉某些区块数据没有拉取到,该没有拉取到的区块数据即为第一业务节点的缺失区块数据。例如,同样,当第一本地区块高度为5,第二本地区块高度为10,第一业务节点向其他业务节点拉取新的区块数据时,有可能只拉取到了区块高度为8的区块数据、区块高度为9的区块数据以及区块高度为10的区块数据,而未拉取到区块高度为6的区块数据和区块高度为7的区块数据。那么,可以将拉取到的区块高度为8的区块数据、区块高度为9的区块数据以及区块高度为10的区块数据称之为目标业务数据,将未拉取到的区块高度为6的区块数据和区块高度为7的区块数据称之为缺失区块数据。
反之,第一业务节点也可以向其他业务节点广播自己的本地区块高度(即第一本地区块高度)。例如,第一业务节点可以根据广播周期向第二业务节点广播自己的第一本地区块高度,使得第二业务节点若是检测到第一本地区块高度大于自己的本地区块高度,第二业务节点也可以根据第一本地区块高度和第二本地区块高度向其他业务节点(例如第一业务节点)拉取新的自己没有的区块数据。可选的,第二业务节点可以选择向第三业务节点拉取新的区块数据,第三业务节点可以是区块链网络中服务质量分数最高的业务节点。其中,每个业务节点的服务质量分数可以分别由单位时间内每个业务节点所拉取的区块数据的数量决定,某个业务节点在单位时间内拉取到的区块数据的数量越大,表明该个业务节点的服务质量分数越高。
同理,上述目标区块数据也是第一业务节点拉取到的新的区块数据,目标区块数据可以是多个区块数据,也可以是1个区块数据。因此,第一业务节点也可以将目标业务数据中的最高区块高度,添加到最高区块高度队列中,此时第一业务节点的最高区块高度队列中数值最大的区块高度就为目标区块数据中的最高区块高度。
步骤S102,根据目标区块数据中的区块高度和第一本地区块高度,确定缺失区块数据的区块高度;缺失区块数据的区块高度小于目标区块数据中的最小区块高度,且大于第一本地区块高度;
具体的,此处,第一本地区块高度指在获取目标区块数据之前,第一业务节点所获取到的所有区块数据中的最高区块高度,也就是在获取目标区块数据之前,最高区块高度队列中具有最大数值的区块高度。第一业务节点可以根据目标区块数据的区块高度以及第一本地区块高度,得到缺失区块数据的区块高度。上述步骤S102中已经举例说明过了,缺失区块数据就是第一业务节点在拉取新的区块数据时所遗漏的区块数据。因此,可以理解的是,缺失区块数据的区块高度小于目标区块数据中的最小区块高度,并且缺失区块数据的区块高度大于第一本地区块高度。举个例子,若目标区块数据中的最小区块高度为10,第一本地区块高度为8,则缺失区块数据的区块高度就为小于10且大于8的区块高度,也就是9。
步骤S103,根据缺失区块数据的区块高度,向目标业务节点请求同步缺失区块数据;
具体的,第一业务节点可以将缺失区块数据的区块高度记录下来,后续,第一业务节点可以通过所记录的缺失区块数据的区块高度,向目标业务节点同步(即拉取)自己的缺失区块数据。其中,第一业务节点可以检测业务节点集群(即区块链网络中的业务节点所构成的集群)中的每个业务节点的服务质量分数,将检测到的具有最高服务质量分数(就服务质量分数最高的)的业务节点作为目标业务节点。其中,每个业务节点的服务质量分数可以分别由单位时间内每个业务节点所拉取的区块数据的数量决定,某个业务节点在单位时间内拉取到的区块数据的数量越大,表明该个业务节点的服务质量分数越高。可选的,目标业务节点也可以是业务集群中的任意一个业务节点。
其中,第一业务节点还可以将缺失区块数据的区块高度添加到缺失区块队列中,以队列的形式来存储和管理缺失区块数据的区块高度。后续,第一业务节点可以通过该缺失区块队列来向目标业务节点请求同步缺失区块数据。采样本申请所提供的方法,可以实现第一业务节点在同步缺失区块数据的时候,也不影响第一业务节点继续拉取新的区块数据。其中,当第一业务节点通过缺失区块队列中的区块高度,成功向目标业务节点同步到缺失区块数据之后,第一业务节点可以将同步到的缺失区块数据的区块高度从缺失区块队列中删除,即保持缺失区块队列中所添加的区块高度为第一业务节点未拉取到的缺失区块数据的区块高度。
请参见图4,是本申请提供的一种队列变化的场景示意图。如图4所示,在第一时刻,第一业务节点的缺失区块队列100d中包括区块高度3、区块高度6、区块高度10、区块高度13以及区块高度17。后续,当第一业务节点成功拉取到区块数据101d(包括区块高度为3的区块数据100e以及区块高度为6的区块数据101e)后,第一业务节点可以将缺失区块队列100d中的区块高度3和区块高度6删除,得到缺失区块队列102d。接着,当第一业务节点成功拉取到区块数据103d(包括区块高度为10的区块数据102e以及区块高度为13的区块数据103e)后,可以继续将缺失区块队列102d中的区块高度10和区块高度13删除,得到缺失区块队列104d。再之后,当第一业务节点成功拉取到区块高度为17的区块数据104d之后,可以将缺失区块队列102d中的区块高度17删除,得到缺失区块队列105d。此时,缺失区块队列105d为空,表明已经拉取到了全部的缺失区块数据。其中,上述缺失区块队列100d、缺失区块队列102d、缺失区块队列104d以及缺失区块队列105d为第一业务节点的同一个缺失区块队列在不同时间点的不同状态下的队列。
可选的,第一业务节点也可以不将同步到的缺失区块数据的区块高度从缺失区块队列中删除。具体为:第一业务节点在将缺失区块数据的区块高度添加到缺失区块队列中之前,可以为缺失区块数据的区块高度添加未获取状态,第一业务节点可以将添加有未获取状态的区块高度添加到缺失区块队列中。该未获取状态表征对应区块高度的区块数据还未获取。第一业务节点可以根据扫描周期(例如1小时或者1天等),定期扫描缺失区块队列中添加有未获取状态的区块高度,并可以根据扫描到的添加有未获取状态的区块高度向目标业务节点请求同步缺失区块数据。第一业务节点在成功从目标业务节点同步到缺失区块数据之后,可以将缺失区块队列中同步到的缺失区块数据的区块高度的未获取状态更改为已获取状态,该已获取状态表明对应的区块高度的缺失区块数据已经同步到了。即可以根据缺失区块队列中的区块高度被添加的获取状态(包括未获取状态和已获取状态),来表明对应的缺失区块数据是否同步成功了。
请参见图5,是本申请提供的一种队列变化的场景示意图。如图5所示,第一业务节点的缺失区块队列100f中的每个区块高度均添加由获取状态,具体的,缺失区块队列100f中的区块高度5添加有未获取状态,区块高度8添加有未获取状态,区块高度12添加有未获取状态,区块高度16添加有未获取状态,区块高度20添加有未获取状态。当第一业务节点成功拉取到区块高度为5的区块数据100g以及区块高度为8的区块数据之后,第一业务节点可以将缺失区块队列100f中的区块高度5的未获取状态更改为已获取状态,将区块高度8的未获取状态更改为已获取状态,得到缺失区块队列101f。之后,当第一业务节点又成功拉取到了区块高度为12的缺失区块数据102g以及区块高度为16的缺失区块数据103g之后,第一业务节点可以将缺失区块队列101f中的区块高度12的未获取状态更改为已获取状态,将区块高度16的未获取状态更改为已获取状态,得到缺失区块队列101f。再之后,当第一业务节点成功拉取到区块高度为20的缺失区块数据104g之后,第一业务节点可以将缺失区块队列102f中的区块高度20的未获取状态更改为已获取状态,得到缺失区块队列103f。到此,缺失区块队列103f中的每个区块高度被添加的获取状态都为已获取状态,表明第一业务节点已经拉取到了全部的缺失区块数据。其中,上述缺失区块队列100f、缺失区块队列101f、缺失区块队列102f以及缺失区块队列103f为第一业务节点的同一个缺失区块队列在不同时间点的不同状态下的队列。
其中,第一业务节点还可以通过拉取到的区块数据对待验证业务数据进行验证,即验证待验证业务数据是否是真实的,即是否被遭到过篡改。其中,一个区块数据对应于一个区块,一个区块数据中可以包括对应的区块中的区块头以及对应的区块中的所有业务数据的哈希值,因此,待验证业务数据对应的真实业务数据(即实际的未被篡改过的业务数据)可以是第一业务节点所拉取到的区块数据对应的区块中的任意一个业务数据。第一业务节点可以对待验证业务数据进行哈希运算,得到待验证业务数据的哈希值。第一业务节点可以从之前拉取到的所有区块数据中遍历包括待验证业务数据的哈希值的区块数据,可以将遍历到的区块数据称之为待验证区块数据。可以通过该待验证区块数据来对待验证业务数据进行验证,得到验证结果。该验证结果包括合法验证结果和非法验证结果,其中,合法验证结果表明待验证业务数据是真实的未被遭到篡改的业务数据,非法验证结果表明待验证业务数据不是真实的业务数据。具体为:第一业务节点可以从待验证区块数据中的区块头中,获取到一个区块默克尔树根,该区块默克尔树根为待验证区块数据对应的区块中的真实的默克尔树根。第一业务节点还可以根据待验证区块数据中的哈希值,计算得到一个待验证默克尔树根。第一业务节点可以对所获取到的区块默克尔树根和待验证默克尔树根进行比对,当比对出待验证默克尔树根与区块默克尔树根相同时,得到上述合法验证结果,当比对出待验证默克尔树根与区块默克尔树根不相同时,得到上述非法验证结果。
请参见图6,是本申请提供的一种数据验证的场景示意图。如图6所示,可以通过待验证业务数据100h的哈希值,在第一业务节点获取到的区块数据中遍历包含待验证业务数据100h的哈希值的区块数据。此处第一业务节点获取到的区块数据包括区块数据101h、区块数据102h以及区块数据103h。其中区块数据101h中包括对应区块的区块头以及对应区块中的所有交易数据的哈希值(包括哈希值a1、哈希值a2、……、哈希值a10);区块数据102h中包括对应区块的区块头以及对应区块中的所有交易数据的哈希值(包括哈希值b1、哈希值b2、……、哈希值b12);区块数据103h中包括对应区块的区块头以及对应区块中的所有交易数据的哈希值(包括哈希值c1、哈希值c2、……、哈希值c16)。此处,遍历到的包含待验证业务数据100h的哈希值的区块数据为区块数据102h。第一业务节点可以从区块数据102h的区块头中获取到区块默克尔树根,并根据区块数据102h中的哈希值计算得到待验证默克尔树根。第一业务节点可以通过对比区块默克尔树根和待验证默克尔树根得到验证结果104h,该验证结果104h包括合法验证结果和非法验证结果。具体的,当对比出区块默克尔树根和待验证默克尔树根相同时,得到上述合法验证结果,当对比出区块默克尔树根和待验证默克尔树根不相同时,得到上述非法验证结果。
本申请可以获取目标区块数据,获取第一本地区块高度;第一本地区块高度指第一业务节点在获取目标区块数据之前,本地区块数据中的最高区块高度;目标区块数据中的最小区块高度大于第一本地区块高度;根据目标区块数据中的区块高度和第一本地区块高度,确定缺失区块数据的区块高度;缺失区块数据的区块高度小于目标区块数据中的最小区块高度,且大于第一本地区块高度;根据缺失区块数据的区块高度,向目标业务节点请求同步缺失区块数据。由此可见,本申请提出的方法可以通过目标区块数据的区块高度以及第一本地区块高度,得到缺失区块数据的区块高度,进而可以通过该缺失区块数据的区块高度快速同步到缺失区块数据。
请参见图7,是本申请提供的一种基于区块链的数据同步装置的结构示意图。所述基于区块链的数据同步装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据同步装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。该数据同步装置还可应用于第一业务节点,如图7所示,该数据同步装置1可以包括:数据获取模块11、高度确定模块12和同步模块13;
数据获取模块11,用于获取目标区块数据,获取第一本地区块高度;第一本地区块高度指第一业务节点在获取目标区块数据之前,本地区块数据中的最高区块高度;目标区块数据中的最小区块高度大于第一本地区块高度;
高度确定模块12,用于根据目标区块数据中的区块高度和第一本地区块高度,确定缺失区块数据的区块高度;缺失区块数据的区块高度小于目标区块数据中的最小区块高度,且大于第一本地区块高度;
同步模块13,用于根据缺失区块数据的区块高度,向目标业务节点请求同步缺失区块数据。
其中,数据获取模块11、高度确定模块12和同步模块13的具体功能实现方式请参见图3对应的实施例中的步骤S101-步骤S103,这里不再进行赘述。
其中,数据获取模块11,包括:第一高度获取单元111和数据获取单元112;
第一高度获取单元111,用于获取第二业务节点广播的第二本地区块高度;第二本地区块高度为第二业务节点根据广播周期向第一业务节点所广播的;
数据获取单元112,用于当检测到第二本地区块高度大于第一本地区块高度时,根据第一本地区块高度和第二本地区块高度,获取目标区块数据。
其中,第一高度获取单元111和数据获取单元112的具体功能实现方式请参见图3对应的实施例中的步骤S101,这里不再进行赘述。
其中,数据同步装置1,还用于:
根据广播周期向第二业务节点广播第一本地区块高度,以使第二业务节点在检测到第一本地区块高度大于第二本地区块高度时,根据第一本地区块高度和第二本地区块高度向第三业务节点拉取区块数据;第三业务节点为业务节点集群中服务质量分数最高的业务节点。
其中,数据获取模块11,包括:队列获取单元113、第二高度获取单元114和高度添加单元115;
队列获取单元113,用于获取最高区块高度队列;最高区块高度队列中包括第一业务节点每次拉取区块数据时,所拉取到的区块数据中的最高区块高度;
第二高度获取单元114,用于从最高区块高度队列中获取数值最大的区块高度,作为第一本地区块高度;
高度添加单元115,用于将目标区块数据所携带的区块高度中的最高区块高度添加至最高区块高度队列中。
其中,队列获取单元113、第二高度获取单元114和高度添加单元115的具体功能实现方式请参见图3对应的实施例中的步骤S101,这里不再进行赘述。
其中,同步模块13,包括:缺失高度添加单元131和同步单元132;
缺失高度添加单元131,用于将缺失区块数据的区块高度添加至缺失区块队列中;
同步单元132,用于根据缺失区块队列,向目标业务节点请求同步缺失区块数据。
其中,缺失高度添加单元131和同步单元132的具体功能实现方式请参见图3对应的实施例中的步骤S103,这里不再进行赘述。
其中,数据同步装置1,还用于:
当根据缺失区块队列向目标业务节点成功同步到缺失区块数据后,将缺失区块数据的区块高度从缺失区块队列中删除。
其中,缺失区块队列中的区块高度均携带有获取状态;获取状态包括未获取状态;
缺失高度添加单元131,包括:状态添加子单元1311和状态高度添加子单元1312;
状态添加子单元1311,用于为缺失区块数据的区块高度添加未获取状态;
状态高度添加子单元1312,用于将添加有未获取状态的区块高度,添加至缺失区块队列。
其中,状态添加子单元1311和状态高度添加子单元1312的具体功能实现方式请参见图3对应的实施例中的步骤S103,这里不再进行赘述。
其中,获取状态还包括已获取状态;
同步单元132,包括:扫描子单元1321、同步子单元1322和状态更改子单元1323;
扫描子单元1321,用于根据扫描周期,扫描缺失区块队列中添加有未获取状态的区块高度;
同步子单元1322,用于根据扫描到的添加有未获取状态的区块高度,向目标业务节点请求同步缺失区块数据;
状态更改子单元1323,用于当向目标业务节点成功同步到缺失区块数据时,将缺失区块队列中,缺失区块数据的区块高度所添加的未获取状态更改为已获取状态。
其中,扫描子单元1321、同步子单元1322和状态更改子单元1323的具体功能实现方式请参见图3对应的实施例中的步骤S103,这里不再进行赘述。
其中,同步模块13,包括:分数检测单元133、节点确定单元134和数据同步单元135;
分数检测单元133,用于检测业务节点集群中的每个业务节点的服务质量分数;每个业务节点的服务质量分数是根据每个业务节点在单位时间内所获取到的区块数据的数量所决定的;
节点确定单元134,用于将业务节点集群中具有最高服务质量分数的业务节点,确定为目标业务节点;
数据同步单元135,用于根据缺失区块数据的区块高度,向目标业务节点请求同步缺失区块数据。
其中,分数检测单元133、节点确定单元134和数据同步单元135的具体功能实现方式请参见图3对应的实施例中的步骤S103,这里不再进行赘述。
其中,一个区块数据对应于一个区块;第一业务节点所获取到的每个区块数据中分别包括所对应的区块中的区块头以及所对应的区块中的所有业务数据的哈希值;
数据同步装置1,还包括:待验证模块14、区块获取模块15和验证模块16;
待验证模块14,用于获取待验证业务数据,获取待验证业务数据的哈希值;
区块获取模块15,用于从所获取到的区块数据中获取包括待验证业务数据的哈希值的区块数据,作为待验证区块数据;
验证模块16,用于根据待验证区块数据中的区块头以及待验证区块数据中的所有哈希值,验证待验证业务数据,得到验证结果;验证结果包括合法验证结果和非法验证结果。
其中,待验证模块14、区块获取模块15和验证模块16的具体功能实现方式请参见图3对应的实施例中的步骤S103,这里不再进行赘述。
其中,验证模块16,包括:树根获取单元161、树根确定单元162、第一结果获取单元163和第二结果获取单元164;
树根获取单元161,用于从待验证区块数据中的区块头中,获取区块默克尔树根;
树根确定单元162,用于根据待验证区块数据中的所有哈希值,确定待验证默克尔树根;
第一结果获取单元163,用于当区块默克尔树根与待验证默克尔树根相同时,得到合法验证结果;
第二结果获取单元164,用于当真实默克尔树根与待验证默克尔树根不相同时,得到非法验证结果。
其中,树根获取单元161、树根确定单元162、第一结果获取单元163和第二结果获取单元164的具体功能实现方式请参见图3对应的实施例中的步骤S103,这里不再进行赘述。
本申请可以获取目标区块数据,获取第一本地区块高度;第一本地区块高度指第一业务节点在获取目标区块数据之前,本地区块数据中的最高区块高度;目标区块数据中的最小区块高度大于第一本地区块高度;根据目标区块数据中的区块高度和第一本地区块高度,确定缺失区块数据的区块高度;缺失区块数据的区块高度小于目标区块数据中的最小区块高度,且大于第一本地区块高度;根据缺失区块数据的区块高度,向目标业务节点请求同步缺失区块数据。由此可见,本申请提出的方法可以通过目标区块数据的区块高度以及第一本地区块高度,得到缺失区块数据的区块高度,进而可以通过该缺失区块数据的区块高度快速同步到缺失区块数据。
请参见图8,是本申请提供的一种计算机设备的结构示意图。如图8所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图8所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现前文提供的实施例中对基于区块链的数据同步方法的描述。应当理解,本申请中所描述的计算机设备1000也可执行前文图7所对应实施例中对基于区块链的数据同步装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的基于区块链的数据同步装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3所对应实施例中对基于区块链的数据同步方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖范围。

Claims (15)

1.一种基于区块链的数据同步方法,由第一业务节点执行,其特征在于,包括:
获取目标区块数据,获取第一本地区块高度;所述第一本地区块高度指所述第一业务节点在获取所述目标区块数据之前,本地区块数据中的最高区块高度;所述目标区块数据中的最小区块高度大于所述第一本地区块高度;
根据所述目标区块数据中的区块高度和所述第一本地区块高度,确定缺失区块数据的区块高度;所述缺失区块数据的区块高度小于所述目标区块数据中的最小区块高度,且大于所述第一本地区块高度;
根据所述缺失区块数据的区块高度,向目标业务节点请求同步所述缺失区块数据。
2.根据权利要求1所述的方法,其特征在于,所述获取目标区块数据,包括:
获取第二业务节点广播的第二本地区块高度;所述第二本地区块高度为所述第二业务节点根据广播周期向所述第一业务节点所广播的;
当检测到所述第二本地区块高度大于所述第一本地区块高度时,根据所述第一本地区块高度和所述第二本地区块高度,获取所述目标区块数据。
3.根据权利要求2所述的方法,其特征在于,还包括:
根据所述广播周期向所述第二业务节点广播所述第一本地区块高度,以使所述第二业务节点在检测到所述第一本地区块高度大于所述第二本地区块高度时,根据所述第一本地区块高度和所述第二本地区块高度向第三业务节点拉取区块数据;所述第三业务节点为业务节点集群中服务质量分数最高的业务节点。
4.根据权利要求1所述的方法,其特征在于,所述获取第一本地区块高度,包括:
获取最高区块高度队列;所述最高区块高度队列中包括所述第一业务节点每次拉取区块数据时,所拉取到的区块数据中的最高区块高度;
从所述最高区块高度队列中获取数值最大的区块高度,作为所述第一本地区块高度;
将所述目标区块数据所携带的区块高度中的最高区块高度添加至所述最高区块高度队列中。
5.根据权利要求1所述的方法,其特征在于,所述根据所述缺失区块数据的区块高度,向目标业务节点请求同步所述缺失区块数据,包括:
将所述缺失区块数据的区块高度添加至缺失区块队列中;
根据所述缺失区块队列,向所述目标业务节点请求同步所述缺失区块数据。
6.根据权利要求5所述的方法,其特征在于,还包括:
当根据所述缺失区块队列向所述目标业务节点成功同步到所述缺失区块数据后,将所述缺失区块数据的区块高度从所述缺失区块队列中删除。
7.根据权利要求5所述的方法,其特征在于,所述缺失区块队列中的区块高度均携带有获取状态;所述获取状态包括未获取状态;
所述将所述缺失区块数据的区块高度添加至缺失区块队列中,包括:
为所述缺失区块数据的区块高度添加所述未获取状态;
将添加有所述未获取状态的区块高度,添加至所述缺失区块队列。
8.根据权利要求7所述的方法,其特征在于,所述获取状态还包括已获取状态;
所述根据所述缺失区块队列,向所述目标业务节点请求同步所述缺失区块数据,包括:
根据扫描周期,扫描所述缺失区块队列中添加有所述未获取状态的区块高度;
根据扫描到的添加有所述未获取状态的区块高度,向所述目标业务节点请求同步所述缺失区块数据;
当向所述目标业务节点成功同步到所述缺失区块数据时,将所述缺失区块队列中,所述缺失区块数据的区块高度所添加的未获取状态更改为所述已获取状态。
9.根据权利要求1所述的方法,其特征在于,所述根据所述缺失区块数据的区块高度,向目标业务节点请求同步所述缺失区块数据,包括:
检测业务节点集群中的每个业务节点的服务质量分数;所述每个业务节点的服务质量分数是根据所述每个业务节点在单位时间内所获取到的区块数据的数量所决定的;
将所述业务节点集群中具有最高服务质量分数的业务节点,确定为所述目标业务节点;
根据所述缺失区块数据的区块高度,向所述目标业务节点请求同步所述缺失区块数据。
10.根据权利要求1所述的方法,其特征在于,一个区块数据对应于一个区块;所述第一业务节点所获取到的每个区块数据中分别包括所对应的区块中的区块头以及所对应的区块中的所有业务数据的哈希值;
还包括:
获取待验证业务数据,获取所述待验证业务数据的哈希值;
从所获取到的区块数据中获取包括所述待验证业务数据的哈希值的区块数据,作为待验证区块数据;
根据所述待验证区块数据中的区块头以及所述待验证区块数据中的所有哈希值,验证所述待验证业务数据,得到验证结果;所述验证结果包括合法验证结果和非法验证结果。
11.根据权利要求10所述的方法,其特征在于,所述根据所述待验证区块数据中的区块头以及所述待验证区块数据中的所有哈希值,验证所述待验证业务数据,得到验证结果,包括:
从所述待验证区块数据中的区块头中,获取区块默克尔树根;
根据所述待验证区块数据中的所有哈希值,确定待验证默克尔树根;
当所述区块默克尔树根与所述待验证默克尔树根相同时,得到所述合法验证结果;
当所述真实默克尔树根与所述待验证默克尔树根不相同时,得到所述非法验证结果。
12.一种基于区块链的数据同步装置,应用于第一业务节点,其特征在于,包括:
数据获取模块,用于获取目标区块数据,获取第一本地区块高度;所述第一本地区块高度指所述第一业务节点在获取所述目标区块数据之前,本地区块数据中的最高区块高度;所述目标区块数据中的最小区块高度大于所述第一本地区块高度;
高度确定模块,用于根据所述目标区块数据中的区块高度和所述第一本地区块高度,确定缺失区块数据的区块高度;所述缺失区块数据的区块高度小于所述目标区块数据中的最小区块高度,且大于所述第一本地区块高度;
同步模块,用于根据所述缺失区块数据的区块高度,向目标业务节点请求同步所述缺失区块数据。
13.根据权利要求12所述的装置,其特征在于,所述数据获取模块,包括:
高度获取单元,用于获取第二业务节点广播的第二本地区块高度;所述第二本地区块高度为所述第二业务节点根据广播周期向所述第一业务节点所广播的;
数据获取单元,用于当检测到所述第二本地区块高度大于所述第一本地区块高度时,根据所述第一本地区块高度和所述第二本地区块高度,获取所述目标区块数据。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-11中任一项所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-11任一项所述的方法。
CN202010274759.4A 2020-04-09 2020-04-09 基于区块链的数据同步方法、装置及计算机可读存储介质 Active CN111475575B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010274759.4A CN111475575B (zh) 2020-04-09 2020-04-09 基于区块链的数据同步方法、装置及计算机可读存储介质
PCT/CN2021/074977 WO2021203820A1 (zh) 2020-04-09 2021-02-03 基于区块链的数据同步方法、装置及计算机可读存储介质
US17/719,293 US11899689B2 (en) 2020-04-09 2022-04-12 Blockchain-based data synchronization method, apparatus, and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010274759.4A CN111475575B (zh) 2020-04-09 2020-04-09 基于区块链的数据同步方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111475575A true CN111475575A (zh) 2020-07-31
CN111475575B CN111475575B (zh) 2021-08-10

Family

ID=71751619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010274759.4A Active CN111475575B (zh) 2020-04-09 2020-04-09 基于区块链的数据同步方法、装置及计算机可读存储介质

Country Status (3)

Country Link
US (1) US11899689B2 (zh)
CN (1) CN111475575B (zh)
WO (1) WO2021203820A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112085504A (zh) * 2020-11-16 2020-12-15 腾讯科技(深圳)有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN112231415A (zh) * 2020-12-16 2021-01-15 腾讯科技(深圳)有限公司 区块链网络的数据同步方法、系统、电子设备及可读介质
CN112287031A (zh) * 2020-12-15 2021-01-29 腾讯科技(深圳)有限公司 区块链系统的数据同步方法、装置、可读介质及电子设备
CN112714192A (zh) * 2021-03-25 2021-04-27 腾讯科技(深圳)有限公司 数据同步方法、装置、计算机可读介质及电子设备
CN112800129A (zh) * 2020-12-31 2021-05-14 杭州趣链科技有限公司 区块状态更新方法、装置、系统和电子设备
CN113157810A (zh) * 2021-04-29 2021-07-23 网易(杭州)网络有限公司 一种区块同步方法、计算机设备和存储介质
WO2021203820A1 (zh) * 2020-04-09 2021-10-14 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
CN114048270A (zh) * 2022-01-14 2022-02-15 北京大学深圳研究生院 区块链数据同步的方法和计算机可读存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180086679A (ko) * 2017-01-23 2018-08-01 주식회사 데일리인텔리전스 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 시스템 및 방법
CN108600353A (zh) * 2018-04-12 2018-09-28 北京天德科技有限公司 一种区块链节点的并行块同步方法
CN108984662A (zh) * 2018-06-28 2018-12-11 杭州复杂美科技有限公司 一种区块链数据同步方法
CN109165229A (zh) * 2018-08-23 2019-01-08 北京京东金融科技控股有限公司 本地区块同步的检验方法、装置、设备及存储介质
CN109446273A (zh) * 2018-12-04 2019-03-08 深圳前海环融联易信息科技服务有限公司 区块链的数据同步方法、装置、计算机设备及存储介质
CN109714412A (zh) * 2018-12-25 2019-05-03 深圳前海微众银行股份有限公司 区块同步方法、装置、设备及计算机可读存储介质
WO2019101246A2 (en) * 2019-03-21 2019-05-31 Alibaba Group Holding Limited Data isolation in blockchain networks
CN110008206A (zh) * 2019-03-22 2019-07-12 深圳前海微众银行股份有限公司 一种基于区块链系统的数据处理方法及装置
CN110572450A (zh) * 2019-09-05 2019-12-13 腾讯科技(深圳)有限公司 数据同步方法、装置、计算机可读存储介质和计算机设备
CN110609872A (zh) * 2019-09-20 2019-12-24 北京海益同展信息科技有限公司 用于同步节点数据的方法和装置
CN110889729A (zh) * 2019-11-29 2020-03-17 腾讯科技(深圳)有限公司 一种基于区块链网络的数据验证方法和装置
CN110955721A (zh) * 2019-10-23 2020-04-03 金蝶软件(中国)有限公司 区块链节点状态维护方法、装置、计算机设备和存储介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2246920A1 (en) * 1998-09-10 2000-03-10 Ibm Canada Limited - Ibm Canada Limitee An activemark mechanism for a live parsing editor
US10417217B2 (en) * 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
EP3559882A1 (en) * 2017-03-22 2019-10-30 NEC Laboratories Europe GmbH Method for operating a blockchain
CN107124457A (zh) 2017-04-27 2017-09-01 广东欧珀移动通信有限公司 应用数据同步方法、应用数据同步装置及服务器
US20190132350A1 (en) * 2017-10-30 2019-05-02 Pricewaterhousecoopers Llp System and method for validation of distributed data storage systems
US10868865B2 (en) * 2017-11-20 2020-12-15 Moshe Shadmon System and apparatus to manage data using a peer-to-peer network and the blockchain
WO2019142049A1 (en) * 2018-01-17 2019-07-25 Geeq Corporation Blockchain methods, nodes, systems and products
US20190236606A1 (en) * 2018-01-31 2019-08-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a virtual chain model for distributed ledger technologies in a cloud based computing environment
US10897499B2 (en) * 2018-04-24 2021-01-19 International Business Machines Corporation Resolving status and synchronization discrepancies in a distributed computing environment using blockchains
CN109086325A (zh) * 2018-06-29 2018-12-25 阿里巴巴集团控股有限公司 基于区块链的数据处理方法和装置
EP3599740A1 (de) * 2018-07-25 2020-01-29 Siemens Aktiengesellschaft Steuern eines datennetzes hinsichtlich eines einsatzes einer verteilten datenbank
US11243917B2 (en) * 2018-10-03 2022-02-08 International Business Machines Corporation Blockchain implementing reliability database
US11080144B2 (en) * 2019-01-25 2021-08-03 Coinbase, Inc. System and method for managing blockchain nodes
US10839377B2 (en) * 2019-01-25 2020-11-17 Coinbase, Inc. Syncing blockchain nodes with snapshots
US11824864B2 (en) * 2019-01-31 2023-11-21 Salesforce, Inc. Systems, methods, and apparatuses for implementing a declarative and metadata driven blockchain platform using distributed ledger technology (DLT)
US11257025B2 (en) * 2019-05-03 2022-02-22 Accenture Global Solutions Limited High performance blockchain architecture for logistics services
CN110365768B (zh) * 2019-07-15 2021-07-06 腾讯科技(深圳)有限公司 分布式系统的数据同步方法、装置、介质、电子设备
US11113272B2 (en) * 2019-07-31 2021-09-07 Advanced New Technologies Co., Ltd. Method and apparatus for storing blockchain state data and electronic device
CN110473104B (zh) * 2019-08-20 2023-11-17 深圳市迅雷网络技术有限公司 一种交易处理方法及相关设备
US11349637B2 (en) * 2019-11-04 2022-05-31 International Business Machines Corporation Random node selection for permissioned blockchain
US11308223B2 (en) * 2019-11-07 2022-04-19 Kyndryl, Inc. Blockchain-based file handling
US11144335B2 (en) * 2020-01-30 2021-10-12 Salesforce.Com, Inc. System or method to display blockchain information with centralized information in a tenant interface on a multi-tenant platform
CN111475575B (zh) * 2020-04-09 2021-08-10 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
KR20210140851A (ko) * 2020-05-14 2021-11-23 삼성에스디에스 주식회사 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치
WO2022067045A1 (en) * 2020-09-25 2022-03-31 Barton Benny M Blockchain-based carbon credit database
US11652604B2 (en) * 2020-11-12 2023-05-16 Paypal, Inc. Blockchain data compression and storage
US20220272085A1 (en) * 2021-02-24 2022-08-25 International Business Machines Corporation Blockchain network identity management using ssi
US12010226B2 (en) * 2021-03-17 2024-06-11 International Business Machines Corporation Blockchain data segregation
US20220329411A1 (en) * 2021-04-13 2022-10-13 International Business Machines Corporation Blockchain processing offload to network device

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180086679A (ko) * 2017-01-23 2018-08-01 주식회사 데일리인텔리전스 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 시스템 및 방법
CN108600353A (zh) * 2018-04-12 2018-09-28 北京天德科技有限公司 一种区块链节点的并行块同步方法
CN108984662A (zh) * 2018-06-28 2018-12-11 杭州复杂美科技有限公司 一种区块链数据同步方法
CN109165229A (zh) * 2018-08-23 2019-01-08 北京京东金融科技控股有限公司 本地区块同步的检验方法、装置、设备及存储介质
CN109446273A (zh) * 2018-12-04 2019-03-08 深圳前海环融联易信息科技服务有限公司 区块链的数据同步方法、装置、计算机设备及存储介质
CN109714412A (zh) * 2018-12-25 2019-05-03 深圳前海微众银行股份有限公司 区块同步方法、装置、设备及计算机可读存储介质
WO2019101246A2 (en) * 2019-03-21 2019-05-31 Alibaba Group Holding Limited Data isolation in blockchain networks
CN110008206A (zh) * 2019-03-22 2019-07-12 深圳前海微众银行股份有限公司 一种基于区块链系统的数据处理方法及装置
CN110572450A (zh) * 2019-09-05 2019-12-13 腾讯科技(深圳)有限公司 数据同步方法、装置、计算机可读存储介质和计算机设备
CN110609872A (zh) * 2019-09-20 2019-12-24 北京海益同展信息科技有限公司 用于同步节点数据的方法和装置
CN110955721A (zh) * 2019-10-23 2020-04-03 金蝶软件(中国)有限公司 区块链节点状态维护方法、装置、计算机设备和存储介质
CN110889729A (zh) * 2019-11-29 2020-03-17 腾讯科技(深圳)有限公司 一种基于区块链网络的数据验证方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邵奇峰等: "区块链技术:架构及进展", 《计算机学报》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021203820A1 (zh) * 2020-04-09 2021-10-14 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
US11899689B2 (en) 2020-04-09 2024-02-13 Tencent Technology (Shenzhen) Company Limited Blockchain-based data synchronization method, apparatus, and computer-readable storage medium
CN112085504A (zh) * 2020-11-16 2020-12-15 腾讯科技(深圳)有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN112287031A (zh) * 2020-12-15 2021-01-29 腾讯科技(深圳)有限公司 区块链系统的数据同步方法、装置、可读介质及电子设备
CN112287031B (zh) * 2020-12-15 2021-04-23 腾讯科技(深圳)有限公司 区块链系统的数据同步方法、装置、可读介质及电子设备
CN112231415A (zh) * 2020-12-16 2021-01-15 腾讯科技(深圳)有限公司 区块链网络的数据同步方法、系统、电子设备及可读介质
CN112800129A (zh) * 2020-12-31 2021-05-14 杭州趣链科技有限公司 区块状态更新方法、装置、系统和电子设备
CN112800129B (zh) * 2020-12-31 2024-04-23 杭州趣链科技有限公司 区块状态更新方法、装置、系统和电子设备
CN112714192A (zh) * 2021-03-25 2021-04-27 腾讯科技(深圳)有限公司 数据同步方法、装置、计算机可读介质及电子设备
CN113157810A (zh) * 2021-04-29 2021-07-23 网易(杭州)网络有限公司 一种区块同步方法、计算机设备和存储介质
CN114048270A (zh) * 2022-01-14 2022-02-15 北京大学深圳研究生院 区块链数据同步的方法和计算机可读存储介质
CN114048270B (zh) * 2022-01-14 2022-05-13 北京大学深圳研究生院 区块链数据同步的方法和计算机可读存储介质

Also Published As

Publication number Publication date
US20220245173A1 (en) 2022-08-04
WO2021203820A1 (zh) 2021-10-14
CN111475575B (zh) 2021-08-10
US11899689B2 (en) 2024-02-13

Similar Documents

Publication Publication Date Title
CN111475575B (zh) 基于区块链的数据同步方法、装置及计算机可读存储介质
US12063411B2 (en) Reception apparatus, reception method, program, and information processing system
CN112837160B (zh) 基于区块链的跨链交易方法、装置和计算机可读存储介质
CN112714192B (zh) 数据同步方法、装置、计算机可读介质及电子设备
CN104348859B (zh) 文件同步方法、装置、服务器、终端及系统
CN102215115B (zh) 播放列表信息同步方法及用于播放列表信息同步的服务器
CN108776897B (zh) 数据处理方法、装置、服务器及计算机可读存储介质
CN111770355B (zh) 媒体服务器确定方法、装置、服务器以及存储介质
JP2007074724A (ja) デジタル放送ネットワークでサーバとクライアントとの間のepg情報を同期化させるための方法及び装置
CN111831748A (zh) 数据同步方法、装置及存储介质
JP2008500606A (ja) 分散コンピューティング・システム内のデータを管理するための方法
CN108228363A (zh) 一种消息发送方法及装置
US20150026244A1 (en) Communication system, client terminal, and server device
CN111818181B (zh) 基于区块链的数据处理方法、装置及计算机可读存储介质
CN104980489A (zh) 使用匹配的网络名称的安全集合同步
WO2013078797A1 (zh) 网络文件传输方法及系统
CN101883079A (zh) 在互联网中用于加速点播多媒体内容的方法与装置
CN108628901A (zh) 一种数据更新方法及装置
CN111479142B (zh) 一种基于信息发布的节目内容更新方法和系统
CN116132625A (zh) 交易流程的监管方法和装置
CN112258184B (zh) 冻结区块链网络的方法、装置、电子设备及可读存储介质
CN113760519B (zh) 分布式事务处理方法、装置、系统和电子设备
CN105812894A (zh) 一种基于智能终端的视频文件处理方法和装置
CN111400327A (zh) 一种数据同步方法、装置、电子设备及存储介质
CN115190339B (zh) 直播信息发送方法、装置、电子设备、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40026146

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant