数据同步方法及系统

阅读:983发布:2021-03-23

专利汇可以提供数据同步方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 提供一种数据同步方法及系统,该方法包括:向目标 节点 请求 包括目标数据的账本数据;其中,目标数据对应于一数据单元,包括用于通过校验将各目标数据连接成数据链的数据链校验信息;接收所请求的账本数据并进行校验;根据数据链校验信息将各通过校验的账本数据中的目标数据按序连接成数据链,并依次根据数据链中的各目标数据对数据单元进行数据同步。本发明在通过交易存储在 区 块 链 的各账本数据中、对应于同一数据单元(例如数据表)的目标数据中配置用于通过校验将各目标数据连接成数据链的数据链校验信息,实现对获取的各目标数据进行有序验证,同时还对接收的账本数据进行验证,为数据同步提供了多重安全保障。,下面是数据同步方法及系统专利的具体信息内容。

1.一种数据同步方法,其特征在于,所述方法包括:
向目标节点请求包括目标数据的账本数据;其中,所述目标数据对应于一数据单元,包括用于通过校验将各目标数据连接成数据链的数据链校验信息;
接收所请求的账本数据并进行校验;
根据所述数据链校验信息将各通过校验的账本数据中的目标数据按序连接成数据链,并依次根据所述数据链中的各目标数据对所述数据单元进行数据同步。
2.根据权利要求1所述的数据同步方法,其特征在于,所述向目标节点请求包括目标数据的账本数据包括:
将当前网络中的链划分为若干同步段;
依次向目标节点发送请求信息以分别获取各同步段内包括目标数据的账本数据;
其中,所述请求信息包括用于校验当前同步段中第一项账本数据的账本数据校验信息,以及,当前数据链中最后一项目标数据的校验信息。
3.根据权利要求2所述的数据同步方法,其特征在于,在向目标节点发送请求信息以获取当前同步段内包括目标数据的账本数据之前还包括:
判断本地区块链是否存有当前同步段:若存有,则直接从本地获取当前同步段内包括目标数据的账本数据。
4.根据权利要求1-3任一项所述的数据同步方法,其特征在于,所述向目标节点请求包括目标数据的账本数据之前还包括:
获取所述数据单元的名称,并查询当前网络的区块链中是否存在所述数据单元:若不存在,则结束同步。
5.根据权利要求1-3任一项所述的数据同步方法,其特征在于,所述数据链校验信息包括以下至少一组信息:
前一目标数据所在账本数据的第一队列号,当前目标数据所在账本数据的第二队列号,前一目标数据所在账本数据的第一校验码,当前目标数据所在账本数据的第二校验码;
当前目标数据所在账本数据的第二队列号,后一目标数据所在账本数据的第三队列号,当前目标数据所在账本数据的第二校验码,后一目标数据所在账本数据的第三校验码。
6.根据权利要求5所述的数据同步方法,其特征在于,所述接收所请求的账本数据并进行校验包括:
接收所请求的账本数据;
从本地或当前网络的区块链获取所接收的账本数据的校验码;
根据所获取的校验码和所接收的账本数据中的第二校验码进行校验:若校验失败,则返回所述接收所请求的账本数据。
7.根据权利要求6所述的数据同步方法,其特征在于,所述接收所请求的账本数据还包括:
若接收超时,则重新生成请求信息,向目标节点发送,或,更换目标节点发送。
8.根据权利要求7所述的数据同步方法,其特征在于,所述请求信息还包括根据当前已接收并通过校验的各账本数据确定的同步段信息。
9.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述数据链校验信息将各通过校验的账本数据中的目标数据按序连接成数据链,并依次根据所述数据链中的各目标数据对所述数据单元进行数据同步包括:
根据所述数据链校验信息判断当前通过校验的账本数据中的第一目标数据是否能与当前数据链中最后一项目标数据连接成链:
否,则将第一目标数据存入临时队列;
是,则将第一目标数据存入当前数据链,并根据第一目标数据对所述数据单元进行数据同步;以及,
将所述临时队列中能与当前数据链中最后一项目标数据连接成链的第二目标数据存入当前数据链,并根据第二目标数据对所述数据单元进行数据同步。
10.根据权利要求9所述的数据同步方法,其特征在于,所述根据所述数据链校验信息判断当前通过校验的账本数据中的第一目标数据是否能与当前数据链中最后一项目标数据连接成链之前还包括:
判断当前通过校验的账本数据中存在第一目标数据或当前同步段的结束信息:
若存在结束信息,则判断所述结束信息是否能与当前数据链中最后一项目标数据连接成链:
是,则结束当前同步段的数据同步,返回所述向目标节点请求包括目标数据的账本数据;
否,则将所述结束信息存入临时队列,返回所述接收所请求的账本数据并进行校验。
11.根据权利要求5所述的数据同步方法,其特征在于,所述根据所述数据链校验信息将各通过校验的账本数据中的目标数据按序连接成数据链,并依次根据所述数据链中的各目标数据对所述数据单元进行数据同步之前还包括:
对通过校验的账本数据中的第一目标数据进行以下至少一项检验:
检验数据同步的目标数据库中是否还存在所述数据单元:否,则终止数据同步;
根据当前数据链中最后一项目标数据的第二队列号检验第一目标数据的第二队列号是否正常:否,则返回所述接收所请求的账本数据并进行校验。
12.根据权利要求1-11任一项所述的数据同步方法,其特征在于,所述目标数据为数据库操作日志。
13.一种数据同步方法,其特征在于,所述方法包括:
接收请求包括目标数据的账本数据的请求信息;其中,所述目标数据对应于一数据单元,包括用于通过校验将各目标数据连接成数据链的数据链校验信息;
根据所述请求信息在本地区块链中查找所述包括目标数据的账本数据,返回查找到的账本数据以供根据所述目标数据对对应的数据单元进行数据同步。
14.根据权利要求13所述的数据同步方法,其特征在于,当前网络中的区块链划分为若干同步段,所述请求信息包括用于校验当前同步段中第一项账本数据的账本数据校验信息,以及,当前数据链中最后一项目标数据的校验信息;
所述根据所述请求信息在本地区块链中查找所述包括目标数据的账本数据,返回查找到的账本数据以供根据所述目标数据对对应的数据单元进行数据同步之前还包括:
根据所述账本数据校验信息校验本地区块链中是否存在当前同步段中第一项账本数据:否,则结束查找。
15.根据权利要求14所述的数据同步方法,其特征在于,所述数据链校验信息包括以下至少一组信息:
前一目标数据所在账本数据的第一队列号,当前目标数据所在账本数据的第二队列号,前一目标数据所在账本数据的第一校验码,当前目标数据所在账本数据的第二校验码;
当前目标数据所在账本数据的第二队列号,后一目标数据所在账本数据的第三队列号,当前目标数据所在账本数据的第二校验码,后一目标数据所在账本数据的第三校验码;
所述根据所述请求信息在本地区块链中查找所述包括目标数据的账本数据,返回查找到的账本数据以供根据所述目标数据对对应的数据单元进行数据同步包括:
判断本地区块链是否包括完整的当前同步段:
否,则根据所述请求信息在本地区块链中查找所述包括目标数据的账本数据,返回查找到的账本数据;
是,则判断当前同步段中最后一项账本数据的队列号是否不小于所述请求信息中当前数据链中最后一项目标数据的第二队列号:
否,则生成能与请求信息所包括的数据链校验信息连接的结束信息并返回;
是,则根据所述请求信息在本地区块链中查找所述包括目标数据的账本数据,返回查找到的账本数据。
16.根据权利要求13-15任一项所述的数据同步方法,其特征在于,所述根据所述请求信息在本地区块链中查找所述包括目标数据的账本数据,返回查找到的账本数据以供根据所述目标数据对对应的数据单元进行数据同步还包括:
在本地区块链中结束查找时,判断是否查找到账本数据:
是,则生成能与所返回的最后一项账本数据中的目标数据连接成数据链的结束信息并返回;
否,则生成能与请求信息所包括的数据链校验信息连接的结束信息并返回。
17.根据权利要求13-15任一项所述的数据同步方法,其特征在于,所述目标数据为数据库操作日志。
18.一种数据同步系统,其特征在于,所述系统包括:
数据获取单元,配置用于向目标节点请求包括目标数据的账本数据;其中,所述目标数据对应于一数据单元,包括用于通过校验将各目标数据连接成数据链的数据链校验信息;
数据校验单元,配置用于接收所请求的账本数据并进行校验;
数据同步单元,配置用于根据所述数据链校验信息将各通过校验的账本数据中的目标数据按序连接成数据链,并依次根据所述数据链中的各目标数据对所述数据单元进行数据同步;
数据查询单元,配置用于接收请求包括目标数据的账本数据的请求信息,根据所述请求信息在本地区块链中查找所述包括目标数据的账本数据,返回查找到的账本数据以供根据所述目标数据对对应的数据单元进行数据同步。
19.根据权利要求18所述的数据同步系统,其特征在于,所述数据获取单元进一步配置用于:
将当前网络中的区块链划分为若干同步段;
依次向目标节点发送请求信息以分别获取各同步段内包括目标数据的账本数据;
其中,所述请求信息包括用于校验当前同步段中第一项账本数据的账本数据校验信息,以及,当前数据链中最后一项目标数据的校验信息;
所述数据查询单元进一步配置用于根据接收的请求信息中的账本数据校验信息校验本地区块链中是否存在当前同步段中第一项账本数据:否,则结束查找。
20.根据权利要求19所述的数据同步系统,其特征在于,所述数据获取单元进一步配置用于在向目标节点发送请求信息之前,通过所述数据查询单元判断本地区块链是否存有当前同步段:若存有,则直接从本地获取当前同步段内包括目标数据的账本数据。
21.根据权利要求18-20任一项所述的数据同步系统,其特征在于,所述数据获取单元进一步配置用于获取所述数据单元的名称,并查询当前网络的区块链中是否存在所述数据单元:若不存在,则结束同步。
22.根据权利要求18-20任一项所述的数据同步系统,其特征在于,所述数据链校验信息包括以下至少一组信息:
前一目标数据所在账本数据的第一队列号,当前目标数据所在账本数据的第二队列号,前一目标数据所在账本数据的第一校验码,当前目标数据所在账本数据的第二校验码;
当前目标数据所在账本数据的第二队列号,后一目标数据所在账本数据的第三队列号,当前目标数据所在账本数据的第二校验码,后一目标数据所在账本数据的第三校验码。
23.根据权利要求22所述的数据同步系统,其特征在于,所述数据校验单元进一步配置用于:接收所请求的账本数据;从本地或当前网络的区块链获取所接收的账本数据的校验码;根据所获取的校验码和所接收的账本数据中的第二校验码进行校验。
24.根据权利要求23所述的数据同步系统,其特征在于,所述数据获取单元进一步配置用于在接收超时时,重新生成请求信息,向目标节点发送,或,更换目标节点发送。
25.根据权利要求24所述的数据同步系统,其特征在于,所述请求信息还包括根据当前已接收并通过校验的各账本数据确定的同步段信息。
26.根据权利要求18所述的数据同步系统,其特征在于,所述数据同步单元进一步配置用于根据数据链校验信息判断当前通过校验的账本数据中的第一目标数据是否能与当前数据链中最后一项目标数据连接成链:否,则将第一目标数据存入临时队列;是,则将第一目标数据存入当前数据链,并根据第一目标数据对所述数据单元进行数据同步;以及,将所述临时队列中能与当前数据链中最后一项目标数据连接成链的第二目标数据存入当前数据链,并根据第二目标数据对所述数据单元进行数据同步。
27.根据权利要求26所述的数据同步系统,其特征在于,所述数据同步单元进一步配置用于判断当前通过校验的账本数据中存在第一目标数据或当前同步段的结束信息:
若存在结束信息,则判断所述结束信息是否能与当前数据链中最后一项目标数据连接成链:是,则结束当前同步段的数据同步;否,则将所述结束信息存入临时队列。
28.根据权利要求22所述的数据同步系统,其特征在于,所述数据同步单元进一步配置用于对通过校验的账本数据中的第一目标数据进行以下至少一项检验:
检验数据同步的目标数据库中是否还存在所述数据单元:否,则终止数据同步;
根据当前数据链中最后一项目标数据的第二队列号检验第一目标数据的第二队列号是否正常。
29.根据权利要求22所述的数据同步系统,其特征在于,所述数据查询单元进一步配置用于判断本地区块链是否包括接收的请求信息所请求查询的完整的当前同步段:
否,则根据所述请求信息在本地区块链中查找所述包括目标数据的账本数据,返回查找到的账本数据;
是,则判断当前同步段中最后一项账本数据的队列号是否不小于所述请求信息中当前数据链中最后一项目标数据的第二队列号:
否,则生成能与请求信息所包括的数据链校验信息连接的结束信息并返回;
是,则根据所述请求信息在本地区块链中查找所述包括目标数据的账本数据,返回查找到的账本数据。
30.根据权利要求18所述的数据同步系统,其特征在于,所述数据查询单元进一步配置用于在本地区块链中结束查找时,判断是否查找到账本数据:
是,则生成能与所返回的最后一项账本数据中的目标数据连接成数据链的结束信息并返回;
否,则生成能与请求信息所包括的数据链校验信息连接的结束信息并返回。
31.根据权利要求18-30任一项所述的数据同步系统,其特征在于,所述目标数据为数据库操作日志。
32.一种分布式数据同步网络,包括若干节点,其特征在于,各所述节点上分别配置有权利要求18-31中任一项所述的数据同步系统。
33.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-12中任一项所述的方法,以及如权利要求13-17中任一项所述的方法。

说明书全文

数据同步方法及系统

技术领域

[0001] 本申请涉及链技术领域,具体涉及一种数据同步方法及系统。

背景技术

[0002] 区块链网络是一个基于分布式原理的网络系统,理论上来讲各网络节点上的内容是一致的,想获取区块链中的数据,只要从其中任意一个节点,或者本地节点获取即可。
[0003] 但是在实际的应用当中,本地节点可以自由配置当前本地节点的类型。例如,可以选择性地将本地节点配置为包含完整区块链数据的全记录节点(full-node),或包含部分区块链数据的非全记录节点(n-full-node)。
[0004] 本地存储哪些数据可以由当前本地节点类型及具体配置所决定,因此本地节点的区块链中不一定存有当前网络中完整区块链的所有数据。
[0005] 在本地节点配置为非全记录节点时,在进行数据同步时需要向所在区块链网络的其它节点获取所需的数据,当前现有的数据同步方法难以实现在上述场景中进行安全且高效的数据同步。发明内容
[0006] 鉴于现有技术中的上述缺陷或不足,期望提供一种适用于区块链网络中非全记录节点进行安全且高效的数据同步的数据同步方法及系统。
[0007] 第一方面,本发明提供一种数据同步方法,该方法包括:
[0008] 向目标节点请求包括目标数据的账本数据;其中,目标数据对应于一数据单元,包括用于通过校验将各目标数据连接成数据链的数据链校验信息;
[0009] 接收所请求的账本数据并进行校验;
[0010] 根据数据链校验信息将各通过校验的账本数据中的目标数据按序连接成数据链,并依次根据数据链中的各目标数据对数据单元进行数据同步。
[0011] 第二方面,本发明提供另一种数据同步方法,该方法包括:
[0012] 接收请求包括目标数据的账本数据的请求信息;其中,目标数据对应于一数据单元,包括用于通过校验将各目标数据连接成数据链的数据链校验信息;
[0013] 根据请求信息在本地区块链中查找包括目标数据的账本数据,返回查找到的账本数据以供根据目标数据对对应的数据单元进行数据同步。
[0014] 第三方面,本发明提供一种数据同步系统,该系统包括:
[0015] 数据获取单元,配置用于向目标节点请求包括目标数据的账本数据;其中,目标数据对应于一数据单元,包括用于通过校验将各目标数据连接成数据链的数据链校验信息;
[0016] 数据校验单元,配置用于接收所请求的账本数据并进行校验;
[0017] 数据同步单元,配置用于根据数据链校验信息将各通过校验的账本数据中的目标数据按序连接成数据链,并依次根据数据链中的各目标数据对数据单元进行数据同步;
[0018] 数据查询单元,配置用于接收请求包括目标数据的账本数据的请求信息,根据请求信息在本地区块链中查找包括目标数据的账本数据,返回查找到的账本数据以供根据目标数据对对应的数据单元进行数据同步。
[0019] 第四方面,本发明提供一种分布式数据同步网络,包括若干节点,各节点上分别配置有上述数据同步系统。
[0020] 第五方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的数据同步方法。
[0021] 第六方面,本发明还提供一种存储有计算机程序的计算机可读存储介质,该计算机程序使计算机执行根据本发明各实施例提供的数据同步方法。
[0022] 本发明诸多实施例提供的数据同步方法及系统在通过交易存储在区块链的各账本数据中、对应于同一数据单元(例如数据表)的目标数据中配置用于通过校验将各目标数据连接成数据链的数据链校验信息,实现对获取的各目标数据进行有序验证,同时还对接收的账本数据进行验证,为数据同步提供了多重安全保障;
[0023] 本发明一些实施例提供的数据同步方法及系统进一步通过将数据同步配置为分段同步,并在请求信息中配置相关信息以供校验当前同步段和数据链的下一项目标数据,以避免在分段同步中进行重复遍历,保障数据同步的高效性;
[0024] 本发明一些实施例提供的数据同步方法及系统进一步通过将数据链校验信息配置为队列号和校验码(例如哈希值等)的组合,提高了校验的安全性的同时丰富了请求端和查询端两端的校验方式,并使得进一步提高数据同步的效率具备可行性;
[0025] 本发明一些实施例提供的数据同步方法及系统进一步通过接收超时时重新生成包括实时的同步段信息的请求信息,并更换目标节点发送,进一步提高了数据同步的效率;
[0026] 本发明一些实施例提供的数据同步方法及系统进一步通过将无法与当前数据链连接的目标数据存入临时队列,保障了数据同步的准确性和高效性;
[0027] 本发明一些实施例提供的数据同步方法及系统进一步通过在每个同步段查询完时发送能与数据链连接成链的结束信息,保障了分段同步的准确性和高效性;
[0028] 本发明一些实施例提供的数据同步方法及系统进一步通过对目标数据进行验证,以避免进行不必要的同步操作,进一步提高了数据同步的准确性和高效性;
[0029] 本发明一些实施例提供的数据同步方法及系统进一步通过将目标数据配置为数据库操作日志,减少了存储在区块链中的数据量,减少了数据通讯的时间成本,进一步提高了数据同步的高效性;
[0030] 本发明一些实施例提供的数据同步方法及系统进一步通过在查询当前同步段之前利用区块链的特性校验当前同步段的最后一项账本数据(结束点),从而无需对部分同步段进行遍历查询,大幅提升了数据同步的效率。附图说明
[0031] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0032] 图1为本发明一实施例中一种数据同步方法的流程图
[0033] 图2为图1所示方法的一种优选实施方式的流程图。
[0034] 图3为图2所示方法的一种优选实施方式的流程图。
[0035] 图4为图3所示方法的一种优选实施方式的流程图。
[0036] 图5为图1所示方法中步骤S14的一种优选实施方式的流程图。
[0037] 图6为图1所示方法中步骤S16的一种优选实施方式的流程图。
[0038] 图7为图6所示步骤S16的一种优选实施方式的流程图。
[0039] 图8为图1所示方法的一种优选实施方式的流程图。
[0040] 图9为本发明一实施例中另一种数据同步方法的流程图。
[0041] 图10为图9所示方法的一种优选实施方式的流程图。
[0042] 图11为图9所示步骤S25的一种优选实施方式的流程图。
[0043] 图12为图11所示步骤S25的一种优选实施方式的流程图。
[0044] 图13为本发明一实施例中数据同步系统的结构示意图。
[0045] 图14为本发明一实施例中分布式数据同步网络的结构示意图。
[0046] 图15为本发明一实施例中一种设备的结构示意图。

具体实施方式

[0047] 下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
[0048] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0049] 图1为本发明一实施例中一种数据同步方法的流程图。
[0050] 如图1所示,在本实施例中,本发明提供的一种适用于数据同步端的数据同步方法包括:
[0051] S12:向目标节点请求包括目标数据的账本数据。其中,目标数据对应于一数据单元,包括用于通过校验将各目标数据连接成数据链的数据链校验信息。
[0052] S14:接收所请求的账本数据并进行校验。
[0053] S16:根据数据链校验信息将各通过校验的账本数据中的目标数据按序连接成数据链,并依次根据数据链中的各目标数据对数据单元进行数据同步。
[0054] 具体地,在本实施例中,数据单元为数据表,目标数据为数据库操作日志,数据链校验信息包括以下一组信息:前一目标数据所在账本数据的第一队列号sfPreviousTxnLgrSeq,当前目标数据所在账本数据的第二队列号sfTxnLgrSeq,前一目标数据所在账本数据的第一校验码sfPrevTxnLedgerHash,当前目标数据所在账本数据的第二校验码sfTxnLedgerHash,其中校验码类型为哈希值。
[0055] 例如,在当前网络区块链的各账本数据(ledger)中,队列号为5、14、22、90等的各ledger中存有数据表m的数据库操作日志。
[0056] 通过交易存储在队列号为5的ledger中的目标数据TD1中存储的数据链校验信息包括:第一队列号0,第二队列号5,第一校验码Null,第二校验码Hashledger5;
[0057] 存储在队列号为14的ledger中的目标数据TD2中存储的数据链校验信息包括:第一队列号5,第二队列号14,第一校验码Hashledger5,第二校验码Hashledger14;
[0058] 依此类推,每项目标数据中的数据链校验信息可供校验前一项目标数据,从而将各目标数据连接成数据链。
[0059] 在更多实施例中,还可根据实际需求采用以下可选配置:
[0060] 将数据单元配置为数据块等不同类型或格式的数据单元;
[0061] 将目标数据配置为待更新数据、待更新数据的下载地址等不同类型或格式的目标数据;
[0062] 将校验码类型配置为各种本领域技术人员常用的加密算法或校验算法所生成的校验码;
[0063] 将数据链校验信息配置为包括当前目标数据所在账本数据的第二队列号,后一目标数据所在账本数据的第三队列号,当前目标数据所在账本数据的第二校验码,后一目标数据所在账本数据的第三校验码;或,包括上述第一队列号、第二队列号、第三队列号,以及,第一校验码、第二校验码、第三校验码;乃至于其它各类不同参数组合的配置,只要能通过校验将各目标数据连接成数据链,即可实现相同的技术效果。
[0064] 上述实施例在通过交易存储在区块链的各账本数据中、对应于同一数据单元(例如数据表)的目标数据中配置用于通过校验将各目标数据连接成数据链的数据链校验信息,实现对获取的各目标数据进行有序验证,同时还对接收的账本数据进行验证,为数据同步提供了多重安全保障;进一步还通过将数据链校验信息配置为队列号和校验码(例如哈希值等)的组合,提高了校验的安全性的同时丰富了请求端和查询端两端的校验方式,并使得进一步提高数据同步的效率具备可行性;还进一步通过将目标数据配置为数据库操作日志,减少了存储在区块链中的数据量,减少了数据通讯的时间成本,进一步提高了数据同步的高效性。
[0065] 图2为图1所示方法的一种优选实施方式的流程图。
[0066] 如图2所示,在一优选实施例中,步骤S12包括:
[0067] S121:将当前网络中的区块链划分为若干同步段。
[0068] S123:依次向目标节点发送请求信息以分别获取各同步段内包括目标数据的账本数据。
[0069] 其中,请求信息包括用于校验当前同步段中第一项账本数据的账本数据校验信息,以及,当前数据链中最后一项目标数据的校验信息。
[0070] 具体地,在本实施例中,步骤S121中,将区块链划分为长度为256的若干同步段,步骤S123中依次请求遍历各同步段,各同步段的账本数据的队列号为1-256、257-512、513-768、……,等。在更多实施例中,还可根据实际需求将同步段的长度设置为不同大小的固定长度或不固定长度。
[0071] 在本实施例中,用于校验当前同步段中第一项账本数据的账本数据校验信息包括当前同步段中第一项账本数据的队列号TxnLedgerSeq和哈希值TxnLedgerHash;当前数据链中最后一项目标数据的校验信息包括当前数据链中最后一项目标数据所在账本数据的队列号LedgerSeq和哈希值LedgerHash。
[0072] 以请求队列号为257-512的同步段为例,请求信息包括用于校验队列号为257的ledger的账本数据校验信息(257,Hashledger257),以及当前数据链中最后一项目标数据所在队列号为251的账本数据的校验信息(251,Hashledger251)。其中,Hashledger257可以根据具体情况从本地或当前网络其它节点的区块链中获取。
[0073] 在更多实施例中,上述请求信息中的两项校验信息还可根据配置不同参数的数据链校验信息采用相对应的不同配置。
[0074] 上述实施例进一步通过将数据同步配置为分段同步,并在请求信息中配置相关信息以供校验当前同步段和数据链的下一项目标数据,以避免在分段同步中进行重复遍历,保障数据同步的高效性。
[0075] 图3为图2所示方法的一种优选实施方式的流程图。
[0076] 如图3所示,在一优选实施例中,步骤S123之前还包括:
[0077] S122:判断本地区块链是否存有当前同步段:若存有,则直接从本地获取当前同步段内包括目标数据的账本数据。
[0078] 图4为图3所示方法的一种优选实施方式的流程图。
[0079] 如图4所示,在一优选实施例中,步骤S12之前还包括:
[0080] S11:获取该数据单元的名称,并查询当前网络的区块链中是否存在该数据单元:若不存在,则结束同步。
[0081] 具体地,例如当接收到非法的数据同步请求,要求对区块链中不存在的数据表n进行数据同步时,可能会导致作无用功而浪费系统资源,在同步之前先获取数据表n的名称,并查询区块链中是否存在数据表n,以筛除非法数据同步请求。
[0082] 图5为图1所示方法中步骤S14的一种优选实施方式的流程图。
[0083] 如图5所示,在一优选实施例中,步骤S14包括:
[0084] S141:接收所请求的账本数据;
[0085] S143:从本地或当前网络的区块链获取所接收的账本数据的校验码;
[0086] S145:根据所获取的校验码和所接收的账本数据中的第二校验码进行校验:若校验失败,则返回步骤S141。
[0087] 具体地,在本实施例中,每个ledger会记录之前256个ledger的哈希值,同时每隔256*256个ledger会记录前面的队列号为256的整数倍的ledger的哈希值。
[0088] 例如,在步骤S141中,接收到队列号为22的ledger;
[0089] 在步骤S143中,判断本地区块链是否存有队列号为23-278中任一项ledger,若存有,则直接从中获取Hashledger22;若为存有,则从网络中其它节点的区块链中获取Hashledger22;
[0090] 在步骤S145中,对接收到的ledger中的第二校验码Hashledger22和步骤S143中获取的Hashledger22进行比对校验:两者相同则校验成功,进入步骤S16;否则校验失败,舍弃接收的队列号为22的ledger,返回步骤S141继续等待接收数据。
[0091] 在一优选实施例中,步骤S141还包括:若接收超时,则重新生成请求信息,向目标节点发送,或,更换目标节点发送。
[0092] 在一优选实施例中,请求信息还包括根据当前已接收并通过校验的各账本数据确定的同步段信息。
[0093] 具体地,重新生成请求信息时,根据当前已接收并通过校验的各账本数据重新确定同步段的同步范围,生成同步段信息,并更新上述用于校验当前同步段中第一项账本数据的账本数据校验信息,以及,当前数据链中最后一项目标数据的校验信息。
[0094] 例如,当节点A接收节点B返回的队列号为22的ledger超时,节点A可能已经接收了队列号为5和14的ledger,并对数据表进行了同步更新,同时也可能已经接收了队列号为251的ledger并存储在临时队列中(下文会详细阐述),因此在重新生成请求信息时需要重新确定同步段,不再是1-256,而可能是15-250,以避免重复遍历查询同步。同时,重新确定同步段为15-250时,更新当前同步段中第一项账本数据的账本数据校验信息为(15,Hashledger15),当前数据链中最后一项目标数据的校验信息为(14,Hashledger14)。
[0095] 上述实施例进一步通过接收超时时重新生成包括实时的同步段信息的请求信息,并更换目标节点发送,进一步提高了数据同步的效率。
[0096] 图6为图1所示方法中步骤S16的一种优选实施方式的流程图。
[0097] 如图6所示,在一优选实施例中,步骤S16包括:
[0098] S165:根据数据链校验信息判断当前通过校验的账本数据中的第一目标数据是否能与当前数据链中最后一项目标数据连接成链:
[0099] 否,则进入步骤S166:将第一目标数据存入临时队列;
[0100] 是,则进入步骤S167:将第一目标数据存入当前数据链,并根据第一目标数据对所述数据单元进行数据同步;以及,
[0101] S168:将临时队列中能与当前数据链中最后一项目标数据连接成链的第二目标数据存入当前数据链,并根据第二目标数据对数据单元进行数据同步。
[0102] 具体地,例如,查询端依次查询到并返回了队列号为5、14、22、90、150、251等若干ledger,然而因为网络等原因导致接收端并非按上述顺序接收上述各项ledger。
[0103] 数据链的初始项的队列号为0,校验码为null,当队列号为5的ledger通过步骤S14的校验,进入步骤S165后,将其数据链校验信息中的第一队列号0和第一校验码Null与数据链的初始项比对校验,校验通过,可以连接成链,则进入步骤S167,将队列号为5的ledger存入数据链,并根据队列号为5的ledger对数据表m进行数据同步。在步骤S168中,此时临时队列为空,不存在第二目标数据,返回等待。
[0104] 当队列号为22的ledger通过步骤S14的校验,进入步骤S165后,将其第一队列号14和第一校验码Hashledger14分别与当前数据链的最后一项队列号为5的ledger的第二队列号5和第二校验码Hashledger5进行校验:校验失败,无法连接成链,则进入步骤S166,将队列号为22的ledger存入临时队列,返回等待。
[0105] 当队列号为90的ledger通过步骤S14的校验,进入步骤S165后,同样校验失败,无法连接成链,存入临时队列,返回等待。
[0106] 当队列号为14的ledger通过步骤S14的校验,进入步骤S165后,与当前数据链的最后一项队列号为5的ledger进行校验:校验通过,可以连接成链,则进入步骤S167,将队列号为14的ledger存入数据链,并根据队列号为14的ledger对数据表m进行数据同步。
[0107] 在步骤S168中,分别校验临时队列中的两项ledger能否与当前数据链最后一项队列号为14的ledger连接成链:存在第二目标数据,队列号为22的ledger,则将队列号为22的ledger存入当前数据链,并根据队列号为22的ledger对数据表m进行数据同步;
[0108] 继续校验临时队列中是否存在与当前数据链最后一项队列号为22的ledger连接成链的第二目标数据:存在第二目标数据,队列号为90的ledger,则将队列号为90的ledger存入当前数据链,并根据队列号为90的ledger对数据表m进行数据同步;
[0109] 继续校验临时队列中是否存在与当前数据链最后一项队列号为90的ledger连接成链的第二目标数据:不存在,则返回等待。
[0110] 上述实施例进一步通过将无法与当前数据链连接的目标数据存入临时队列,保障了数据同步的准确性和高效性。
[0111] 图7为图6所示步骤S16的一种优选实施方式的流程图。
[0112] 如图7所示,在一优选实施例中,步骤S165之前还包括:
[0113] S161:判断当前通过校验的账本数据中存在第一目标数据或当前同步段的结束信息:
[0114] 若存在结束信息,则进入步骤S162:判断所述结束信息是否能与当前数据链中最后一项目标数据连接成链:
[0115] 是,则进入步骤S163:结束当前同步段的数据同步,返回步骤S12;
[0116] 否,则将所述结束信息存入临时队列,返回步骤S14。
[0117] 具体地,通过结束信息对同步段进行标识,可以使同步端及时获知当前同步段是否同步完成。
[0118] 上述实施例进一步通过将无法与当前数据链连接的目标数据存入临时队列,保障了数据同步的准确性和高效性。
[0119] 图8为图1所示方法的一种优选实施方式的流程图。
[0120] 如图8所示,在一优选实施例中,步骤S16之前还包括以下至少一项:
[0121] S151:检验数据同步的目标数据库中是否还存在该数据单元:否,则终止数据同步;
[0122] S153:根据当前数据链中最后一项目标数据的第二队列号检验第一目标数据的第二队列号是否正常:否,则返回步骤S14。
[0123] 具体地,对于步骤S151,当配置在本地节点或其它位置的数据同步目标数据库中因某些配置策略将数据表m删除了,则无需再继续进行对数据表m的数据同步;
[0124] 对于步骤S153,本专利中目标数据组成的数据链为前向链表,组成数据链的各目标数据所在ledger的队列号依次递增,若第一目标数据的第二队列号不大于当前数据链中最后一项目标数据的第二队列号,例如当前数据链中各队列号依次为5、14、22、……、151、234,而第一目标数据的第二队列号为180,则显而易见地,第一目标数据为异常数据,舍弃第一目标数据,返回等待。
[0125] 上述实施例进一步通过对目标数据进行验证,以避免进行不必要的同步操作,进一步提高了数据同步的准确性和高效性。
[0126] 图9为本发明一实施例中另一种数据同步方法的流程图。
[0127] 如图9所示,在本实施例中,本发明还提供另一种适用于查询端的数据同步方法,包括:
[0128] S23:接收请求包括目标数据的账本数据的请求信息。其中,目标数据对应于一数据单元,包括用于通过校验将各目标数据连接成数据链的数据链校验信息。
[0129] S25:根据请求信息在本地区块链中查找所述包括目标数据的账本数据,返回查找到的账本数据以供根据目标数据对对应的数据单元进行数据同步。
[0130] 图10为图9所示方法的一种优选实施方式的流程图。
[0131] 如图10所示,在一优选实施例中,当前网络中的区块链划分为若干同步段,请求信息包括用于校验当前同步段中第一项账本数据的账本数据校验信息,以及,当前数据链中最后一项目标数据的校验信息。步骤S25之前还包括:
[0132] S24:根据账本数据校验信息校验本地区块链中是否存在当前同步段中第一项账本数据:否,则结束查找。
[0133] 具体地,利用请求信息中的账本数据校验信息和账本数据中的校验码进行校验,一方面可以有效筛除非法请求,无需对非法请求进行查找,避免浪费系统资源;另一方面可以有效提高查找效率,例如节点A向节点B发送请求信息,节点B发现本地区块链中也未存有该同步段,则直接结束查找,使节点A可尽快向节点C重新发送请求信息。
[0134] 图11为图9所示步骤S25的一种优选实施方式的流程图。
[0135] 如图11所示,在一优选实施例中,步骤S25包括:
[0136] S251:判断本地区块链是否包括完整的当前同步段:
[0137] 否,则进入步骤S252:根据请求信息在本地区块链中查找包括目标数据的账本数据,返回查找到的账本数据;
[0138] 是,则进入步骤S253:判断当前同步段中最后一项账本数据的队列号是否不小于请求信息中当前数据链中最后一项目标数据的第二队列号:
[0139] 否,则进入步骤S254:生成能与请求信息所包括的数据链校验信息连接的结束信息并返回。
[0140] 是,则进入步骤S252。
[0141] 具体地,由于本专利中目标数据组成的数据链为前向链表,例如当数据链中最后一项目标数据所在ledger的队列号为893时,则下一目标数据所在ledger的队列号必然大于893,若当前同步段为513-768,则对比得知768<893,无需在当前同步段进行遍历查找,直接返回结束信息。
[0142] 上述实施例进一步通过在查询当前同步段之前利用区块链的特性校验当前同步段的最后一项账本数据(结束点),从而无需对部分同步段进行遍历查询,大幅提升了数据同步的效率。
[0143] 图12为图11所示步骤S25的一种优选实施方式的流程图。
[0144] 如图12所示,在一优选实施例中,步骤S25还包括:
[0145] S255:在本地区块链中结束查找时,判断是否查找到账本数据:
[0146] 是,则进入步骤S256:生成能与所返回的最后一项账本数据中的目标数据连接成数据链的结束信息并返回;
[0147] 否,则进入步骤S254。
[0148] 图13为本发明一实施例中数据同步系统的结构示意图。图13所示的数据同步系统配置于分布式网络的任一节点上,可作为数据同步端对应执行图1-8所示的任一数据同步方法,也可作为数据查询端对应执行图9-12所示的任一数据同步方法。
[0149] 如图13所示,在本实施例中,本发明提供的数据同步系统10包括数据获取单元11、数据校验单元13、数据同步单元15,以及数据查询单元17。
[0150] 数据获取单元11配置用于向目标节点请求包括目标数据的账本数据。其中,目标数据对应于一数据单元,包括用于通过校验将各目标数据连接成数据链的数据链校验信息。
[0151] 数据校验单元13配置用于接收所请求的账本数据并进行校验。
[0152] 数据同步单元15配置用于根据数据链校验信息将各通过校验的账本数据中的目标数据按序连接成数据链,并依次根据数据链中的各目标数据对数据单元进行数据同步。
[0153] 数据查询单元17配置用于接收请求包括目标数据的账本数据的请求信息,根据请求信息在本地区块链中查找包括目标数据的账本数据,返回查找到的账本数据以供根据目标数据对对应的数据单元进行数据同步。
[0154] 在本实施例中,上述各单元配置为本地节点中的软件程序,从而对配置在本地节点或其它位置的数据同步目标数据库进行数据同步,或,根据接收的请求信息对本地节点存储的区块链进行查询,并返回查找到的账本数据以供请求节点进行数据同步。在更多实施例中,上述各单元还可根据实际需求配置为专用于数据同步或数据查询的硬件装置,或本领域技术人员可以理解的软硬件组合,可实现相同的技术效果。
[0155] 在一优选实施例中,数据获取单元11进一步配置用于:将当前网络中的区块链划分为若干同步段;依次向目标节点发送请求信息以分别获取各同步段内包括目标数据的账本数据。
[0156] 其中,请求信息包括用于校验当前同步段中第一项账本数据的账本数据校验信息,以及,当前数据链中最后一项目标数据的校验信息。
[0157] 数据查询单元17进一步配置用于根据接收的请求信息中的账本数据校验信息校验本地区块链中是否存在当前同步段中第一项账本数据:否,则结束查找。
[0158] 在一优选实施例中,数据获取单元11进一步配置用于在向目标节点发送请求信息之前,通过数据查询单元17判断本地区块链是否存有当前同步段:若存有,则直接从本地获取当前同步段内包括目标数据的账本数据。
[0159] 在一优选实施例中,数据获取单元11进一步配置用于获取数据单元的名称,并查询当前网络的区块链中是否存在该数据单元:若不存在,则结束同步。
[0160] 在一优选实施例中,数据校验单元13进一步配置用于:接收所请求的账本数据;从本地或当前网络的区块链获取所接收的账本数据的校验码;根据所获取的校验码和所接收的账本数据中的第二校验码进行校验。
[0161] 在一优选实施例中,数据获取单元11进一步配置用于在接收超时时,重新生成请求信息,向目标节点发送,或,更换目标节点发送。
[0162] 在一优选实施例中,数据同步单元15进一步配置用于根据数据链校验信息判断当前通过校验的账本数据中的第一目标数据是否能与当前数据链中最后一项目标数据连接成链:否,则将第一目标数据存入临时队列;是,则将第一目标数据存入当前数据链,并根据第一目标数据对该数据单元进行数据同步;以及,将临时队列中能与当前数据链中最后一项目标数据连接成链的第二目标数据存入当前数据链,并根据第二目标数据对所述数据单元进行数据同步。
[0163] 在一优选实施例中,数据同步单元15进一步配置用于判断当前通过校验的账本数据中存在第一目标数据或当前同步段的结束信息:
[0164] 若存在结束信息,则判断结束信息是否能与当前数据链中最后一项目标数据连接成链:是,则结束当前同步段的数据同步;否,则将结束信息存入临时队列。
[0165] 在一优选实施例中,数据同步单元15进一步配置用于对通过校验的账本数据中的第一目标数据进行以下至少一项检验:
[0166] 检验数据同步的目标数据库中是否还存在该数据单元:否,则终止数据同步;
[0167] 根据当前数据链中最后一项目标数据的第二队列号检验第一目标数据的第二队列号是否正常。
[0168] 在一优选实施例中,数据查询单元17进一步配置用于判断本地区块链是否包括接收的请求信息所请求查询的完整的当前同步段:否,则根据请求信息在本地区块链中查找包括目标数据的账本数据,返回查找到的账本数据;是,则判断当前同步段中最后一项账本数据的队列号是否不小于请求信息中当前数据链中最后一项目标数据的第二队列号:
[0169] 否,则生成能与请求信息所包括的数据链校验信息连接的结束信息并返回;
[0170] 是,则根据请求信息在本地区块链中查找包括目标数据的账本数据,返回查找到的账本数据。
[0171] 在一优选实施例中,数据查询单元17进一步配置用于在本地区块链中结束查找时,判断是否查找到账本数据:是,则生成能与所返回的最后一项账本数据中的目标数据连接成数据链的结束信息并返回;否,则生成能与请求信息所包括的数据链校验信息连接的结束信息并返回。
[0172] 图14为本发明一实施例中分布式数据同步网络的结构示意图。
[0173] 如图14所示,在本实施例中,本发明还提供一种分布式数据同步网络,包括若干节点,各节点上分别配置有上述任一实施例所提供的数据同步系统10。
[0174] 附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
[0175] 图15为本发明一实施例中一种设备的结构示意图。
[0176] 如图15所示,计算机系统1500包括一个或多个中央处理单元(CPU)1501,其可以根据存储在只读存储器(ROM)1502中的程序或者从存储部分508加载到随机访问存储器(RAM)1503中的程序而执行各种适当的动作和处理。在RAM 1503中,还存储有系统1500操作所需的各种程序和数据。CPU 1501、ROM 1502以及RAM 1503通过总线1504彼此相连。输入/输出(I/O)接口1505也连接至总线1504。其中存储器(ROM)1502包含可由该一个或多个中央处理单元(CPU)1501执行的一个或多个程序以使得该一个或多个中央处理单元(CPU)1501执行根据本申请的数据同步方法。
[0177] 以下部件连接至I/O接口1505:包括键盘鼠标等的输入部分1506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1507;包括硬盘等的存储部分1508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至I/O接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。
[0178] 特别地,根据本公开的实施例,上文参考图X描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行上述任一数据同步方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。
[0179] 附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0180] 描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,数据查询单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独进行数据查询的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
[0181] 作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的数据同步方法。
[0182] 以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈