CN111274258A - 一种区块链数据上链方法 - Google Patents
一种区块链数据上链方法 Download PDFInfo
- Publication number
- CN111274258A CN111274258A CN202010085416.3A CN202010085416A CN111274258A CN 111274258 A CN111274258 A CN 111274258A CN 202010085416 A CN202010085416 A CN 202010085416A CN 111274258 A CN111274258 A CN 111274258A
- Authority
- CN
- China
- Prior art keywords
- data
- uplink
- memory database
- block chain
- updated
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012545 processing Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 7
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- 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
Abstract
本发明涉及一种区块链数据上链方法,包括:获取客户端发送的数据上链请求,将待上链数据更新到内存数据库中,并向客户端发送数据上链受理反馈信息;按照预设的时间周期读取内存数据库,检测内存数据库中出现更新的数据,并将出现更新的数据按照数据更新时刻的先后顺序写入区块链。在进行数据上链时,并非直接将数据进行上链,而是先将待上链数据更新到预先构建的内存数据库中,然后按照预设的时间周期读取内存数据库,将出现更新的数据从内存数据库中写入区块链。该区块链数据上链方法能够降低数据上链失败的可能性,保证数据能够可靠稳定上链,进而提升区块链的处理效率。
Description
技术领域
本发明涉及一种区块链数据上链方法。
背景技术
随着互联网技术的发展,区块链由于具有去中心化、开放性、安全性、自治性等优点而被广泛应用于数据的存储和交互。在区块链领域中,数据上链过程为向区块链写入数据的过程。随着区块链对数据写入可靠性的要求越来越高,现有的区块链数据写入可靠性,即区块链数据上链可靠性越来越无法满足需求。
发明内容
本发明的目的在于提供一种区块链数据上链方法,用以解决现有的区块链数据上链的可靠性较低,无法满足需求的问题。
为了解决上述问题,本发明采用以下技术方案:
一种区块链数据上链方法,包括:
获取客户端发送的数据上链请求,所述数据上链请求包括待上链数据;
将所述待上链数据更新到预先构建的内存数据库中,并向所述客户端发送数据上链受理反馈信息;
按照预设的时间周期读取所述内存数据库,检测所述内存数据库中出现更新的数据,并将所述出现更新的数据按照数据更新时刻的先后顺序写入区块链,其中,数据更新时刻越早,越先写入区块链。
可选地,所述将所述待上链数据更新到预先构建的内存数据库中,包括:
将所述待上链数据更新到预先构建的内存数据库中,并为内存数据库中每一个出现更新的数据标记时间戳,所述时间戳为对应的数据更新时刻。
可选地,在将所述待上链数据更新到预先构建的内存数据库中之后,还包括:
为所述待上链数据分配一个上链状态标记位,并将所述上链状态标记位初始化为第一数值;
相应地,在将所述出现更新的数据按照数据更新时刻写入区块链之后,还包括:
将所述上链状态标记位由所述第一数值变更为第二数值;
所述第一数值不同于所述第二数值。
可选地,在为所述待上链数据分配一个上链状态标记位之后,还包括:
当接收到所述客户端发送的上链进度查询请求时,读取所述上链状态标记位;
若读取到所述上链状态标记位为第一数值,则向所述客户端发送数据上链未完成的指示信息;
若读取到所述上链状态标记位为第二数值,则向所述客户端发送数据上链已完成的指示信息。
可选地,在将所述待上链数据更新到预先构建的内存数据库中之前,还包括:
将所述内存数据库中与所述待上链数据对应的原始数据转存到预先构建的原始数据序列中;
在将所述出现更新的数据按照数据更新时刻的先后顺序写入区块链之后,还包括:
若所述出现更新的数据写入区块链失败,则读取所述原始数据序列,并将所述内存数据库中所述出现更新的数据还原为所述原始数据序列中记录的相应原始数据。
本发明的有益效果为:在进行数据上链时,并非直接将数据进行上链,而是先将待上链数据更新到预先构建的内存数据库中,并告知客户端数据上链已受理,然后按照预设的时间周期读取内存数据库,检测内存数据库中出现更新的数据,并将出现更新的数据写入区块链,采用这种中间通过内存数据库进行转送的上链方式,相较于传统的直接进行数据上链的方式,数据上链可靠性得到很大的提高;而且,将出现更新的数据按照数据更新时刻的先后顺序写入区块链,数据更新时刻越早,越先写入区块链,通过这种写入方式能够进一步提升数据上链的可靠性。因此,该区块链数据上链方法能够降低数据上链失败的可能性,保证数据能够可靠稳定上链,进而提升区块链的处理效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍:
图1是区块链数据上链方法的第一种实施例的流程示意图。
具体实施方式
实施例一:
本实施例提供了一种区块链数据上链方法,如图1所示,包括:
获取客户端发送的数据上链请求,所述数据上链请求包括待上链数据:
本实施例中,通过服务器实现该区块链数据上链方法。
当用户想要将数据上传至区块链时,可以操作客户端,客户端与服务器相连接,根据客户端向服务器发出一个数据上链请求,数据上链请求包括待上链数据。其中,客户端可以为手机、台式电脑、平板电脑、笔记本电脑等。客户端的数量根据实际应用场景进行确定,可以是一个客户端,也可以是多个客户端。
将所述待上链数据更新到预先构建的内存数据库中,并向所述客户端发送数据上链受理反馈信息:
服务器在接收到该数据上链请求之后,将相应的待上链数据更新到预先构建的内存数据库中。内存数据库的写入速度远远高于传统的磁盘数据库的写入速度,那么,将待上链数据更新至,即存入内存数据库能够有效提高存储效率,而且,即便上链数据被高频率的写入内存数据库时也不会对服务器性能造成影响。比如:待上链数据是一个数据序列的更新值,则服务器在获取到数据上链请求之后,会将该数据序列的原始值更新为该更新值。
当设置多个客户端时,各个用户可以通过不同的客户端分别发出各个数据上链请求,服务器会将各自的待上链数据分别更新到内存数据库中,从而产生多个出现更新的数据。
服务器在将待上链数据更新到内存数据库中之后,向客户端发送数据上链受理反馈信息,告知用户该数据上链请求已受理,此时待上链数据只是缓存于该内存数据库中,尚未上传至区块链。
进一步地,为了明确内存数据库中每一个出现更新的数据的数据更新时刻,便于后期写入区块链中,将待上链数据更新到内存数据库中,并为内存数据库中每一个出现更新的数据标记时间戳,时间戳为对应的数据更新时刻。那么,每一个出现更新的数据均有对应的时间戳,以表示数据更新时刻。需要说明的是,对于某一个数据,可能出现不止一次的更新,那么,时间戳对应的数据更新时刻为最新一次的数据更新对应的数据更新时刻。
按照预设的时间周期读取所述内存数据库,检测所述内存数据库中出现更新的数据,并将所述出现更新的数据按照数据更新时刻的先后顺序写入区块链,其中,数据更新时刻越早,越先写入区块链:
服务器按照预设的时间周期读取内存数据库,时间周期根据实际应用需要进行具体设置,比如:10s。在时间周期的作用下服务器按照相应的时间间隔读取内存数据库。服务器检测内存数据库中出现更新的数据,并将出现更新的数据按照数据更新时刻的先后顺序写入区块链,其中,数据更新时刻越早,越先写入区块链,也就是说,先更新的数据,先写入区块链;后更新的数据,后写入区块链。比如:假设内存数据库中出现更新的数据有四个,第一个数据的数据更新时刻为T1,第二个数据的数据更新时刻为T2,第三个数据的数据更新时刻为T3,第四个数据的数据更新时刻为T4,T1早于T3,T3早于T4,T4早于T2,则第一个数据先写入区块链,接着,第三个数据写入区块链,然后,第四个数据写入区块链,最后,第二个数据写入区块链。
实施例二:
本实施例提供了一种区块链数据上链方法,包括:
获取客户端发送的数据上链请求,所述数据上链请求包括待上链数据:
该步骤的具体实现过程在实施例一中已给出了具体说明,不再赘述。
将内存数据库中与待上链数据对应的原始数据转存到预先构建的原始数据序列中:
服务器预先构建一个原始数据序列,将内存数据库中与待上链数据对应的原始数据转存到预先构建的原始数据序列中。
将所述待上链数据更新到预先构建的内存数据库中,并向所述客户端发送数据上链受理反馈信息:
该步骤的具体实现过程在实施例一中已给出了具体说明,不再赘述。
为所述待上链数据分配一个上链状态标记位,并将所述上链状态标记位初始化为第一数值:
服务器在将待上链数据更新到内存数据库中之后,会为该待上链数据分配一个上链状态标记位,并将该上链状态标记位初始化为第一数值,比如可以初始化为1,表示该待上链数据未上链。应当理解,若服务器获取到多个客户端发送的多个数据上链请求,则会为每个数据上链请求对应的待上链数据分别分配一个初始化为第一数值的上链状态标记位,即每个待上链数据都具有各自的上链状态标记位。
按照预设的时间周期读取所述内存数据库,检测所述内存数据库中出现更新的数据,并将所述出现更新的数据按照数据更新时刻的先后顺序写入区块链,其中,数据更新时刻越早,越先写入区块链:
该步骤的具体实现过程在实施例一中已给出了具体说明,不再赘述。
将所述上链状态标记位由所述第一数值变更为第二数值,所述第一数值不同于所述第二数值;和/或,若出现更新的数据写入区块链失败,则读取所述原始数据序列,并将所述内存数据库中所述出现更新的数据还原为所述原始数据序列中记录的相应原始数据:
在将出现更新的数据按照数据更新时刻的先后顺序写入区块链之后,将对应的目标数据的上链状态标记位变更为第二数值,第一数值不同于第二数值,比如:若第一数值为0,则第二数值为1;若第一数值为1,则第二数值为0,那么,上链状态标记位变化时,表示数据已完成上链。
进一步的,在为待上链数据分配上链状态标记位之后的时间中,用户可通过客户端发送上链进度查询请求,当服务器接收到客户端发送的上链进度查询请求时,读取上链状态标记位;若读取到上链状态标记位为第一数值,则向客户端发送数据上链未完成的指示信息;若读取到上链状态标记位为第二数值,则向客户端发送数据上链已完成的指示信息。因此,通过上链状态标记位的数值便于用户了解数据上链操作是否已完成。另外,服务器也可以定时检测待上链数据的上链状态标记位的数值,若检测到第二数值,则主动发送数据上链已完成的指示信息至该客户端。
而且,在将出现更新的数据按照数据更新时刻的先后顺序写入区块链之后,若出现更新的数据写入区块链失败,服务器会读取原始数据序列,并将内存数据库中出现更新的数据还原为原始数据序列中记录的相应原始数据,从而保证内存数据库和区块链两边数据一致。该过程为数据上链失败之后的数据回滚过程,即将数据恢复到更新之前的状态。
上述中,设定“将所述上链状态标记位由所述第一数值变更为第二数值,所述第一数值不同于所述第二数值”为步骤S1,“若出现更新的数据写入区块链失败,则读取所述原始数据序列,并将所述内存数据库中所述出现更新的数据还原为所述原始数据序列中记录的相应原始数据”为步骤S2,那么,本发明提供的区块链数据上链方法可以只包括步骤S1和步骤S2中的其中一个,也可以同时包括步骤S1和步骤S2。而且,步骤S1和步骤S2之间没有严格的先后顺序,两者的先后顺序由实际应用场景进行设置。
上述实施例仅以一种具体的实施方式说明本发明的技术方案,任何对本发明进行的等同替换及不脱离本发明精神和范围的修改或局部替换,其均应涵盖在本发明权利要求保护的范围之内。
Claims (5)
1.一种区块链数据上链方法,其特征在于,包括:
获取客户端发送的数据上链请求,所述数据上链请求包括待上链数据;
将所述待上链数据更新到预先构建的内存数据库中,并向所述客户端发送数据上链受理反馈信息;
按照预设的时间周期读取所述内存数据库,检测所述内存数据库中出现更新的数据,并将所述出现更新的数据按照数据更新时刻的先后顺序写入区块链,其中,数据更新时刻越早,越先写入区块链。
2.根据权利要求1所述的区块链数据上链方法,其特征在于,所述将所述待上链数据更新到预先构建的内存数据库中,包括:
将所述待上链数据更新到预先构建的内存数据库中,并为内存数据库中每一个出现更新的数据标记时间戳,所述时间戳为对应的数据更新时刻。
3.根据权利要求1所述的区块链数据上链方法,其特征在于,在将所述待上链数据更新到预先构建的内存数据库中之后,还包括:
为所述待上链数据分配一个上链状态标记位,并将所述上链状态标记位初始化为第一数值;
相应地,在将所述出现更新的数据按照数据更新时刻写入区块链之后,还包括:
将所述上链状态标记位由所述第一数值变更为第二数值;
所述第一数值不同于所述第二数值。
4.根据权利要求3所述的区块链数据上链方法,其特征在于,在为所述待上链数据分配一个上链状态标记位之后,还包括:
当接收到所述客户端发送的上链进度查询请求时,读取所述上链状态标记位;
若读取到所述上链状态标记位为第一数值,则向所述客户端发送数据上链未完成的指示信息;
若读取到所述上链状态标记位为第二数值,则向所述客户端发送数据上链已完成的指示信息。
5.根据权利要求1所述的区块链数据上链方法,其特征在于,在将所述待上链数据更新到预先构建的内存数据库中之前,还包括:
将所述内存数据库中与所述待上链数据对应的原始数据转存到预先构建的原始数据序列中;
在将所述出现更新的数据按照数据更新时刻的先后顺序写入区块链之后,还包括:
若所述出现更新的数据写入区块链失败,则读取所述原始数据序列,并将所述内存数据库中所述出现更新的数据还原为所述原始数据序列中记录的相应原始数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010085416.3A CN111274258A (zh) | 2020-02-10 | 2020-02-10 | 一种区块链数据上链方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010085416.3A CN111274258A (zh) | 2020-02-10 | 2020-02-10 | 一种区块链数据上链方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111274258A true CN111274258A (zh) | 2020-06-12 |
Family
ID=71002179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010085416.3A Pending CN111274258A (zh) | 2020-02-10 | 2020-02-10 | 一种区块链数据上链方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274258A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112434112A (zh) * | 2020-12-04 | 2021-03-02 | 中国工商银行股份有限公司 | 将区块链数据同步存储到数据库的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344172A (zh) * | 2018-08-31 | 2019-02-15 | 深圳市元征科技股份有限公司 | 一种高并发数据处理方法、装置及客户端服务器 |
CN109462631A (zh) * | 2018-08-31 | 2019-03-12 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及电子装置 |
WO2019100991A1 (zh) * | 2017-11-27 | 2019-05-31 | 北京京东金融科技控股有限公司 | 信息处理方法、装置及系统、存储介质、电子设备 |
CN110264348A (zh) * | 2019-05-07 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 一种交易上链的处理方法、装置及存储介质 |
CN110753084A (zh) * | 2019-09-06 | 2020-02-04 | 平安普惠企业管理有限公司 | 上链数据读取方法、缓存服务器及计算机可读存储介质 |
-
2020
- 2020-02-10 CN CN202010085416.3A patent/CN111274258A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019100991A1 (zh) * | 2017-11-27 | 2019-05-31 | 北京京东金融科技控股有限公司 | 信息处理方法、装置及系统、存储介质、电子设备 |
CN109344172A (zh) * | 2018-08-31 | 2019-02-15 | 深圳市元征科技股份有限公司 | 一种高并发数据处理方法、装置及客户端服务器 |
CN109462631A (zh) * | 2018-08-31 | 2019-03-12 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及电子装置 |
CN110264348A (zh) * | 2019-05-07 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 一种交易上链的处理方法、装置及存储介质 |
CN110753084A (zh) * | 2019-09-06 | 2020-02-04 | 平安普惠企业管理有限公司 | 上链数据读取方法、缓存服务器及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
生慧;周扬;马金刚;王振国;: "一种基于联盟链的中医药海量异构数据安全共享解决方案", 世界科学技术-中医药现代化, no. 08, pages 132 - 139 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112434112A (zh) * | 2020-12-04 | 2021-03-02 | 中国工商银行股份有限公司 | 将区块链数据同步存储到数据库的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9135268B2 (en) | Locating the latest version of replicated data files | |
CN107391758B (zh) | 数据库切换方法、装置及设备 | |
US11422907B2 (en) | Disconnected operation for systems utilizing cloud storage | |
US10542073B2 (en) | File transfer to a distributed file system | |
CN102299904B (zh) | 一种实现业务数据备份的系统及方法 | |
US11321291B2 (en) | Persistent version control for data transfer between heterogeneous data stores | |
US20190087439A1 (en) | Data replication from a cloud-based storage resource | |
CN108073656A (zh) | 一种数据同步方法及相关设备 | |
JP4773788B2 (ja) | 記憶システムにおけるリモートコピー制御 | |
JP2019519025A (ja) | 分散システムにおける範囲の分割および移動 | |
CN106802892B (zh) | 用于主备数据一致性校验的方法和设备 | |
CN102667720B (zh) | 没有排序依赖的一致性 | |
WO2005109252A1 (en) | System and method for facilitating a consistent point-in-time copy | |
US8090695B2 (en) | Dynamic restoration of message object search indexes | |
CN109189326B (zh) | 分布式集群的管理方法和装置 | |
CN111274258A (zh) | 一种区块链数据上链方法 | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 | |
US11693844B2 (en) | Processing delete requests based on change feed of updates | |
US20200387412A1 (en) | Method To Manage Database | |
US11924271B2 (en) | Preventing duplicative file processing | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
CN111522883A (zh) | 对象数据的备份方法、装置、设备及存储介质 | |
CN112015807A (zh) | 数据同步的处理方法、装置、电子设备及计算机存储介质 | |
CN114327293B (zh) | 一种数据读方法、装置、设备以及存储介质 | |
US11755538B2 (en) | Distributed management of file modification-time field |
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 |