CN113204550A - 基于区块链的链上链下同步方法 - Google Patents
基于区块链的链上链下同步方法 Download PDFInfo
- Publication number
- CN113204550A CN113204550A CN202110474930.0A CN202110474930A CN113204550A CN 113204550 A CN113204550 A CN 113204550A CN 202110474930 A CN202110474930 A CN 202110474930A CN 113204550 A CN113204550 A CN 113204550A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- chain
- uplink
- batch
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及区块链存储技术领域,公开了基于区块链的链上链下同步方法,包括以下步骤:S1:将上链数据存放在链下数据库中;S2:建立上链任务;S3:对数据库记录的主键进行排序读取;S4:逐条计算一个批次数据里每条记录的哈希;S5:把每个批次的数据上链完成后,设置检查点;S6:重复步骤S3到步骤S5的过程;S7:建立一个验真任务;S8:对链上标识的主键进行排序读取;S9读取数据库记录;S10:记录检查点;S11:重复步骤S8到步骤S10的过程。本发明通过一次链下数据上链扫描将链下数据库中所有新增的记录都能够上链,并将每条链上标识对应的链下数据库的记录都能在链下数据库更新后链上也能及时更新,解决了无法快速准确同步或过度占用系统资源的问题。
Description
技术领域
本发明涉及区块链存储技术领域,具体是基于区块链的链上链下同步方法。
背景技术
在现有区块链应用中,为保证关键数据的安全性或隐私性,或者其他的业务需要,往往会将这类数据上链进行存证,然后使用链上数据哈希并利用区块链网络的种种特性,如不可篡改,可追溯等,来进行业务间的处理,但现有技术存在这么一个问题,对于业务系统使用的一些关键数据并不是冷数据,即长时间不会发生变化的,但也不是新增或变更特别频繁的即热数据,如果上链程序对于这些关键数据更新的频次太低,就会造成链上数据使用的是过时版本,导致业务系统无法正常处理;如果上链程序对于这些关键数据更新的频次太高,就会造成系统资源的大量浪费,甚至影响系统正常提供服务,造成卡顿延迟甚至宕机的现象。
随着信息时代数据自动化程度越来越高,需要上链的数据也越来越多,靠人工自行判断是否需要同步链上链下数据已经无法满足需求,而现有技术无法做到快速准确的同步链上链下数据。
发明内容
本发明的目的在于提供基于区块链的链上链下同步方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
基于区块链的链上链下同步方法,基于区块链的链上链下同步方法,实现方法包括以下步骤:
S1:将需要上链数据存放在链下数据库中;
S2:建立一个上链任务,其功能是以一个固定的扫描间隔从链下数据库中有序按批次读取数据,检查点存储为数据库的主键,初始为空;
S3:在步骤S2的基础上,对数据库记录的主键进行排序读取,检查是否存在比检查点大的记录,若存在则读取一个批次的数据,否则说明未发现新增数据,等待下一个扫描间隔继续扫描;
S4:在步骤S3的基础上,逐条计算一个批次数据里每条记录的哈希,并将主键作为链上唯一标识与整条记录哈希一起上链;
S5:在步骤S4的基础上,把每个批次的数据上链完成后,在本地记录这个批次的最后一条记录的主键,作为检查点;
S6:在步骤S5的基础上,重复步骤S3到步骤S5的过程,最终,在下一个扫描间隔内数据库所有数据都会上链;
S7:在步骤S6的基础上,建立一个验真任务,其功能是以一个固定的扫描间隔从链上有序按批次读取数据,检查点存储为链上标识,初始为空;
S8:在步骤S7的基础上,对链上标识的主键进行排序读取,检查是否存在比检查点大的记录,若存在则读取一个批次的链上数据,否则说明历史数据已检查完毕,检查点置为空,并等待下一个扫描间隔从头开始扫描;
S9:在步骤S8的基础上,逐条读取一个批次的链上数据标识对应的数据库记录,并计算数据库记录的哈希,与链上标识对应的哈希做比对,若哈希一致,说明数据库历史记录没有过更新,若不一致则说明数据库已更新或删除;
S10:在步骤S9的基础上,将数据库已更新的记录进行步骤S4过程,使链下记录保持与链上记录的哈希一致,将每个批次里链下已更新的记录上链后,记录此批次最后一个标识为检查点;
S11:在步骤S10的基础上,重复步骤S8到步骤S10的过程,最终,在下一个扫描间隔内数据库所有已更新或删除的数据都会上链。
作为本发明再进一步的方案:所述步骤S2中上链任务包括创建连接对象、创建命令对象、打开连接对象、在命令对象中执行SQL语句和关闭连接对象。
作为本发明再进一步的方案:所述创建连接对象用于开启程序与数据库之间的连接,以在链下数据库与客户端应用程序之间移动数据,所述创建命令对象用于执行命令,并从数据库返回结果,所述打开连接对象用于把命令信息连接到数据库,所述在命令对象中执行SQL语句用于循序地读取数据,所述关闭连接对象用于关闭执行后的命令,以减少系统资源对象。
作为本发明再进一步的方案:所述在命令对象中执行SQL语句的工作步骤包括:语法分析和语义分析查询、逻辑查询计划生成以及物理查询计划,从而得出SQL语句所需要的结果集。
作为本发明再进一步的方案:所述步骤S4中计算数据里每条记录的哈希用于对一个批次的数据进行排序并连接,从而保证了数据的每个分片有序。
与现有技术相比,本发明的有益效果:
本发明对所有存储在链下数据库中的数据,通过一次链下数据上链扫描将链下数据库中所有新增的记录都能够上链,并通过一次链上标识链下扫描能将每条链上标识对应的链下数据库的记录都能在链下数据库更新后链上也能及时更新。如此方法在一轮链上和链下协同扫描后,对于每一条链下数据库的数据都在链上能一一对应一个标识,且数据哈希是完全一致的。通过合理的设定扫描间隔,即不会让链上标识与链下记录脱钩太久,也不会过度占用系统资源频繁扫描,解决了传统技术中无法快速准确同步,或过度占用系统资源的问题。
附图说明
图1为基于区块链的链上链下同步方法的流程示意图。
具体实施方式
请参阅图1,本发明实施例中,基于区块链的链上链下同步方法,基于区块链的链上链下同步方法,实现方法包括以下步骤:
S1:将需要上链数据存放在链下数据库中;
S2:建立一个上链任务,其功能是以一个固定的扫描间隔从链下数据库中有序按批次读取数据,检查点存储为数据库的主键,初始为空;
S3:在步骤S2的基础上,对数据库记录的主键进行排序读取,检查是否存在比检查点大的记录,若存在则读取一个批次的数据,否则说明未发现新增数据,等待下一个扫描间隔继续扫描;
S4:在步骤S3的基础上,逐条计算一个批次数据里每条记录的哈希,并将主键作为链上唯一标识与整条记录哈希一起上链;
S5:在步骤S4的基础上,把每个批次的数据上链完成后,在本地记录这个批次的最后一条记录的主键,作为检查点;
S6:在步骤S5的基础上,重复步骤S3到步骤S5的过程,最终,在下一个扫描间隔内数据库所有数据都会上链;
S7:在步骤S6的基础上,建立一个验真任务,其功能是以一个固定的扫描间隔从链上有序按批次读取数据,检查点存储为链上标识,初始为空;
S8:在步骤S7的基础上,对链上标识的主键进行排序读取,检查是否存在比检查点大的记录,若存在则读取一个批次的链上数据,否则说明历史数据已检查完毕,检查点置为空,并等待下一个扫描间隔从头开始扫描;
S9:在步骤S8的基础上,逐条读取一个批次的链上数据标识对应的数据库记录,并计算数据库记录的哈希,与链上标识对应的哈希做比对,若哈希一致,说明数据库历史记录没有过更新,若不一致则说明数据库已更新或删除;
S10:在步骤S9的基础上,将数据库已更新的记录进行步骤S4过程,使链下记录保持与链上记录的哈希一致,将每个批次里链下已更新的记录上链后,记录此批次最后一个标识为检查点;
S11:在步骤S10的基础上,重复步骤S8到步骤S10的过程,最终,在下一个扫描间隔内数据库所有已更新或删除的数据都会上链。
优选的,步骤S2中上链任务包括创建连接对象、创建命令对象、打开连接对象、在命令对象中执行SQL语句和关闭连接对象。
优选的,创建连接对象用于开启程序与数据库之间的连接,以在链下数据库与客户端应用程序之间移动数据,创建命令对象用于执行命令,并从数据库返回结果,打开连接对象用于把命令信息连接到数据库,在命令对象中执行SQL语句用于循序地读取数据,关闭连接对象用于关闭执行后的命令,以减少系统资源对象。
优选的,在命令对象中执行SQL语句的工作步骤包括:语法分析和语义分析查询、逻辑查询计划生成以及物理查询计划,从而得出SQL语句所需要的结果集。
优选的,步骤S4中计算数据里每条记录的哈希用于对一个批次的数据进行排序并连接,从而保证了数据的每个分片有序。
以上的,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (5)
1.基于区块链的链上链下同步方法,其特征在于,实现方法包括以下步骤:
S1:将需要上链数据存放在链下数据库中;
S2:建立一个上链任务,其功能是以一个固定的扫描间隔从链下数据库中有序按批次读取数据,检查点存储为数据库的主键,初始为空;
S3:在步骤S2的基础上,对数据库记录的主键进行排序读取,检查是否存在比检查点大的记录,若存在则读取一个批次的数据,否则说明未发现新增数据,等待下一个扫描间隔继续扫描;
S4:在步骤S3的基础上,逐条计算一个批次数据里每条记录的哈希,并将主键作为链上唯一标识与整条记录哈希一起上链;
S5:在步骤S4的基础上,把每个批次的数据上链完成后,在本地记录这个批次的最后一条记录的主键,作为检查点;
S6:在步骤S5的基础上,重复步骤S3到步骤S5的过程,最终,在下一个扫描间隔内数据库所有数据都会上链;
S7:在步骤S6的基础上,建立一个验真任务,其功能是以一个固定的扫描间隔从链上有序按批次读取数据,检查点存储为链上标识,初始为空;
S8:在步骤S7的基础上,对链上标识的主键进行排序读取,检查是否存在比检查点大的记录,若存在则读取一个批次的链上数据,否则说明历史数据已检查完毕,检查点置为空,并等待下一个扫描间隔从头开始扫描;
S9:在步骤S8的基础上,逐条读取一个批次的链上数据标识对应的数据库记录,并计算数据库记录的哈希,与链上标识对应的哈希做比对,若哈希一致,说明数据库历史记录没有过更新,若不一致则说明数据库已更新或删除;
S10:在步骤S9的基础上,将数据库已更新的记录进行步骤S4过程,使链下记录保持与链上记录的哈希一致,将每个批次里链下已更新的记录上链后,记录此批次最后一个标识为检查点;
S11:在步骤S10的基础上,重复步骤S8到步骤S10的过程,最终,在下一个扫描间隔内数据库所有已更新或删除的数据都会上链。
2.根据权利要求1所述的基于区块链的链上链下同步方法,其特征在于,所述步骤S2中上链任务包括创建连接对象、创建命令对象、打开连接对象、在命令对象中执行SQL语句和关闭连接对象。
3.根据权利要求2所述的基于区块链的链上链下同步方法,其特征在于,所述创建连接对象用于开启程序与数据库之间的连接,以在链下数据库与客户端应用程序之间移动数据,所述创建命令对象用于执行命令,并从数据库返回结果,所述打开连接对象用于把命令信息连接到数据库,所述在命令对象中执行SQL语句用于循序地读取数据,所述关闭连接对象用于关闭执行后的命令,以减少系统资源对象。
4.根据权利要求2所述的基于区块链的链上链下同步方法,其特征在于,所述在命令对象中执行SQL语句的工作步骤包括:语法分析和语义分析查询、逻辑查询计划生成以及物理查询计划,从而得出SQL语句所需要的结果集。
5.根据权利要求1所述的基于区块链的链上链下同步方法,其特征在于,所述步骤S4中计算数据里每条记录的哈希用于对一个批次的数据进行排序并连接,从而保证了数据的每个分片有序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110474930.0A CN113204550A (zh) | 2021-04-29 | 2021-04-29 | 基于区块链的链上链下同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110474930.0A CN113204550A (zh) | 2021-04-29 | 2021-04-29 | 基于区块链的链上链下同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113204550A true CN113204550A (zh) | 2021-08-03 |
Family
ID=77029425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110474930.0A Pending CN113204550A (zh) | 2021-04-29 | 2021-04-29 | 基于区块链的链上链下同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113204550A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379159A (zh) * | 2012-04-24 | 2013-10-30 | 阿里巴巴集团控股有限公司 | 一种分布式Web站点数据同步的方法 |
CN108829740A (zh) * | 2018-05-23 | 2018-11-16 | 摇了购(武汉)电子商务有限公司 | 数据存储方法和装置 |
CN111274252A (zh) * | 2020-01-08 | 2020-06-12 | 平安科技(深圳)有限公司 | 一种区块链的数据上链方法、装置、存储介质和服务器 |
US20200351074A1 (en) * | 2018-11-28 | 2020-11-05 | Intel Corporation | System for synchronizing a cryptographic key state through a blockchain |
CN112580103A (zh) * | 2020-12-29 | 2021-03-30 | 郑州大学 | 基于中间数据库表的上链方法及系统 |
-
2021
- 2021-04-29 CN CN202110474930.0A patent/CN113204550A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379159A (zh) * | 2012-04-24 | 2013-10-30 | 阿里巴巴集团控股有限公司 | 一种分布式Web站点数据同步的方法 |
CN108829740A (zh) * | 2018-05-23 | 2018-11-16 | 摇了购(武汉)电子商务有限公司 | 数据存储方法和装置 |
US20200351074A1 (en) * | 2018-11-28 | 2020-11-05 | Intel Corporation | System for synchronizing a cryptographic key state through a blockchain |
CN111274252A (zh) * | 2020-01-08 | 2020-06-12 | 平安科技(深圳)有限公司 | 一种区块链的数据上链方法、装置、存储介质和服务器 |
CN112580103A (zh) * | 2020-12-29 | 2021-03-30 | 郑州大学 | 基于中间数据库表的上链方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109460349B (zh) | 一种基于日志的测试用例生成方法和装置 | |
CN110929036A (zh) | 电力营销稽查管理方法、装置、计算机设备和存储介质 | |
CN104423968B (zh) | 设计业务逻辑的方法、执行其的服务器和储存媒介 | |
CN109508355A (zh) | 一种数据抽取方法、系统及终端设备 | |
CN110727724B (zh) | 数据抽取方法、装置、计算机设备和存储介质 | |
CN110688378B (zh) | 数据库存储过程的迁移方法及系统 | |
CN113448862B (zh) | 软件版本测试方法、装置及计算机设备 | |
CN109657803B (zh) | 机器学习模型的构建 | |
CN115794839B (zh) | 基于Php+Mysql体系的数据归集方法、计算机设备及存储介质 | |
JP4848128B2 (ja) | データベース・システム、データベース・システムのためのコンピュータ実行可能な方法、プログラムおよびデータベース・システムにおける索引テーブルをアップデートする方法 | |
CN113868498A (zh) | 数据存储方法、电子装置、装置及可读存储介质 | |
CN110377583A (zh) | 数据库脚本执行方法、装置、计算机设备和存储介质 | |
CN106021566A (zh) | 一种提高单台数据库并发处理能力的方法、装置及系统 | |
CN112835808A (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN113204550A (zh) | 基于区块链的链上链下同步方法 | |
CN110059002A (zh) | 测试数据的生成方法、测试设备、存储介质及装置 | |
CN113505078A (zh) | 配置文件更新方法、装置、设备及存储介质 | |
CN108664499B (zh) | 数据存储的方法、装置及设备 | |
CN112308445B (zh) | 制造工序数据处理的方法及系统、存储介质及电子设备 | |
CN112817931B (zh) | 一种增量版本文件的生成方法及装置 | |
CZ2017124A3 (cs) | Způsob přenášení struktur a datových souborů mezi zdrojovým a cílovým systémem a systém k jeho provádění | |
CN105354144A (zh) | 业务支撑系统信息模型一致性自动化测试方法与系统 | |
JP2015191389A (ja) | 移行処理結果探索装置 | |
CN112883123B (zh) | 组织间从属关系维护方法、装置、计算机设备和存储介质 | |
CN106599084A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210803 |
|
RJ01 | Rejection of invention patent application after publication |