CN109902125A - 一种基于现有数据库的分布式储存方法 - Google Patents
一种基于现有数据库的分布式储存方法 Download PDFInfo
- Publication number
- CN109902125A CN109902125A CN201811606708.6A CN201811606708A CN109902125A CN 109902125 A CN109902125 A CN 109902125A CN 201811606708 A CN201811606708 A CN 201811606708A CN 109902125 A CN109902125 A CN 109902125A
- Authority
- CN
- China
- Prior art keywords
- database
- file
- data
- node
- modification
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于现有数据库的分布式储存方法,涉及互联网分布式存储技术领域,区块链节点中的保存的区块链数据链表改成两部分,一部分是现有商业化的高性能的数据库文件,每一个节点加载数据库引擎读写数据库。该基于现有数据库的分布式储存方法,本存储方式的数据备份在不同的节点的数据库中,无法篡改,在修改记录时的,数据库文件发生的字节变化无法预测,结合数据文件中记录的随机数验证,恶意修改者没有办法做到数据库文件哈希值不变,而交易记录发生变化,具有极高的安全性,也没有通常区块链发生的分叉问题,因为整个区块链只承认一个版本变化的数据库文件,不存在多个竞争记账者的竞争记账的情况,也不会消耗太多能源。
Description
技术领域
本发明涉及互联网分布式存储技术领域,具体为一种基于现有数据库的分布式储存方法。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
目前的区块链系统中,基本做不到低延迟,高处理效率,而且因为区块链的先天结构,做不到快速索引查询,在区块链的漫长链条上,数据于验证数据混合存储的方式严重影响了读取效率,为此,我们提供了一种基于现有数据库的分布式储存方法来解决这一问题。
发明内容
本发明的目的就是为了弥补现有技术的不足,提供了一种基于现有数据库的分布式储存方法,解决现有区块链系统中的高延迟,偏低的处理效率,无法快速高级查询的问题,解决现有区块链系统中无法切换数据储存方式的问题。
本发明为解决上述技术问题,提供如下技术方案:一种基于现有数据库的分布式储存方法,所述分布储存方法包括以下步骤:
S1,现有区块链节点中的保存的区块链数据链表,改成两部分,一部分是现有商业化的高性能的数据库文件,每一个节点加载数据库引擎读写数据库,另一个部分是结合数据库文件的读写而添加的数据库文件修改控制数据块,这部分是一个描述数据库文件修改的控制链,我们称之为数据库修改链;
S2,节点同步数据,验证共识的过程,节点根据之前的接受的数据改动指令,验证发起节点发送过来的,数据库文件差值字节流,构造新的数据库文件,再根据发起节点发送的数据库文件哈希值验证文件的完整性;
S3,数据库引擎用文件记录信息,一个数据库可以有一个或多个文件,如果是多个文件,所有文件都压缩成一个压缩文件(zip格式)做存储和前后版本对比,领导节点(Leadernode)可以对数据库做如下修改(添加交易记录,切换数据库引擎),修改结果都反应在数据库储存文件的变化中,这种变化,可以通过两种方式传递给其他节点,增量传递,这个在不切换数据库引擎的方式下进行,如果发生了切换数据库引擎的动作,就需要传递整个数据库文件和数据库存储抽象层文件,(这个大多数情况下,并不会发生,实用的链的数据库引擎一般不会修改);
S4,拥有验证发起权力的节点采用随机投票的Prove Of Luck的方式,发起的节点负责验证运算,其他节点等待。
进一步的,所述节点同步数据,交换以下几样数据:一是数据库文件字节流的差值,二是数据库文件字节流的哈希值。
通过采用上述技术方案,在不同的节点的数据库中,无法篡改,在修改记录时的,数据库文件发生的字节变化无法预测,结合数据文件中记录的随机数验证,恶意修改者没有办法做到数据库文件哈希值不变,而交易记录发生变化,具有极高的安全。
进一步的,所述数据库表保存以下数据:一根据实际应用需要的任何数据,二根据一张关于数据库修改日志的表,记录修改日志记录每一次的数据库修改,一次数据库修改,可以是一条记录的修改,也可以是一大串记录的修改,每次修改都会记录成一条记录,这个记录包含一个随机数和一些辅助信息(比如记录时间等)。
通过采用上述技术方案,构架灵活适应各种主流数据库的切换,只需要数据库引擎以文件形式储存数据,支持以下主流数据库引擎,Oracle,MS SQL Server, MongoDB,MySQL, 支持在区块链上进行数据库切换。
进一步的,所述如果确认数据库文件完整,用数据库引擎加载数据库文件,可以通过使用查询数据库的方式,如果通过,就接受这个数据库版本,这个是一般情况下的区块链数据修改。
通过采用上述技术方案,能够快速验证之前所有交易的执行情况,提高交易安全性。
与现有技术相比,该基于现有数据库的分布式储存方法具备如下有益效果:
1、本发明将节点的业务信息储存在成熟的高效数据库中,操作具有非常巨大的效率优势,而且成熟的数据库引擎提供了功能强大的其他特性,比如自动备份等功能,所有的业务数据都存储在现有的常见的数据库中,可以做结构化的查询和索引,所有针对现有数据库引擎的商业智能框架都可以和这样的分布式存储无缝的结合,也有利于基于大数据的分析。
2、本发明构架灵活适应各种主流数据库的切换,只需要数据库引擎以文件形式储存数据,支持以下主流数据库引擎,Oracle、MSSQLServer、 MongoDB和 MySQL, 支持在区块链上进行数据库切换。
3、本存储方式的数据备份在不同的节点的数据库中,无法篡改,在修改记录时的,数据库文件发生的字节变化无法预测,结合数据文件中记录的随机数验证,恶意修改者没有办法做到数据库文件哈希值不变,而交易记录发生变化,具有极高的安全性,也没有通常区块链发生的分叉问题,因为整个区块链只承认一个版本变化的数据库文件,不存在多个竞争记账者的竞争记账的情况,也不会消耗太多能源。
4、巨链库BCD可以在任何区块链的应用推广,解决之前的传统区块链技术无法实现的功能比如 High Transaction Rate 高事务处理效率,Low Latency 低延迟,Indexing& Querying of Structured Data 基于索引的结构化数据查询。
附图说明
图1为本发明数据库修改链的结构示意图;
图2为本发明数据库内部记录的修改信息示意图;
图3为本发明节点业务内容修改同步数据示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-3,本发明提供一种技术方案:一种基于现有数据库的分布式储存方法,分布储存方法包括以下步骤:
S1,现有区块链节点中的保存的区块链数据链表,改成两部分,一部分是现有商业化的高性能的数据库文件,每一个节点加载数据库引擎读写数据库,另一个部分是结合数据库文件的读写而添加的数据库文件修改控制数据块,这部分是一个描述数据库文件修改的控制链,我们称之为数据库修改链;
S2,节点同步数据,验证共识的过程,节点根据之前的接受的数据改动指令,验证发起节点发送过来的,数据库文件差值字节流,构造新的数据库文件,再根据发起节点发送的数据库文件哈希值验证文件的完整性;
S3,数据库引擎用文件记录信息,一个数据库可以有一个或多个文件,如果是多个文件,所有文件都压缩成一个压缩文件(zip格式)做存储和前后版本对比,领导节点(Leadernode)可以对数据库做如下修改(添加交易记录,切换数据库引擎),修改结果都反应在数据库储存文件的变化中,这种变化,可以通过两种方式传递给其他节点,增量传递,这个在不切换数据库引擎的方式下进行,如果发生了切换数据库引擎的动作,就需要传递整个数据库文件和数据库存储抽象层文件,(这个大多数情况下,并不会发生,实用的链的数据库引擎一般不会修改);
S4,拥有验证发起权力的节点采用随机投票的Prove Of Luck的方式,发起的节点负责验证运算,其他节点等待。
进一步的,节点同步数据,交换以下几样数据:一是数据库文件字节流的差值,二是数据库文件字节流的哈希值,在不同的节点的数据库中,无法篡改,在修改记录时的,数据库文件发生的字节变化无法预测,结合数据文件中记录的随机数验证,恶意修改者没有办法做到数据库文件哈希值不变,而交易记录发生变化,具有极高的安全。
进一步的,数据库表保存以下数据:一根据实际应用需要的任何数据,二根据一张关于数据库修改日志的表,记录修改日志记录每一次的数据库修改,一次数据库修改,可以是一条记录的修改,也可以是一大串记录的修改,每次修改都会记录成一条记录,这个记录包含一个随机数和一些辅助信息(比如记录时间等),构架灵活适应各种主流数据库的切换,只需要数据库引擎以文件形式储存数据,支持以下主流数据库引擎,Oracle、MSSQLServer、 MongoDB和 MySQL, 支持在区块链上进行数据库切换。
进一步的,如果确认数据库文件完整,用数据库引擎加载数据库文件,可以通过使用查询数据库的方式,如果通过,就接受这个数据库版本,这个是一般情况下的区块链数据修改,能够快速验证之前所有交易的执行情况,提高交易安全性。
本发明将节点的业务信息储存在成熟的高效数据库中,操作具有非常巨大的效率优势,而且成熟的数据库引擎提供了功能强大的其他特性,比如自动备份等功能,所有的业务数据都存储在现有的常见的数据库中,可以做结构化的查询和索引,所有针对现有数据库引擎的商业智能框架都可以和这样的分布式存储无缝的结合,也有利于基于大数据的分析,本发明构架灵活适应各种主流数据库的切换,只需要数据库引擎以文件形式储存数据,支持以下主流数据库引擎,Oracle、MSSQLServer、 MongoDB和 MySQL, 支持在区块链上进行数据库切换,本存储方式的数据备份在不同的节点的数据库中,无法篡改,在修改记录时的,数据库文件发生的字节变化无法预测,结合数据文件中记录的随机数验证,恶意修改者没有办法做到数据库文件哈希值不变,而交易记录发生变化,具有极高的安全性,也没有通常区块链发生的分叉问题,因为整个区块链只承认一个版本变化的数据库文件,不存在多个竞争记账者的竞争记账的情况,也不会消耗太多能源。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (4)
1.一种基于现有数据库的分布式储存方法,其特征在于:所述分布储存方法包括以下步骤:
S1,现有区块链节点中的保存的区块链数据链表,改成两部分,一部分是现有商业化的高性能的数据库文件,每一个节点加载数据库引擎读写数据库,另一个部分是结合数据库文件的读写而添加的数据库文件修改控制数据块,这部分是一个描述数据库文件修改的控制链,我们称之为数据库修改链;
S2,节点同步数据,验证共识的过程,节点根据之前的接受的数据改动指令,验证发起节点发送过来的,数据库文件差值字节流,构造新的数据库文件,再根据发起节点发送的数据库文件哈希值验证文件的完整性;
S3,数据库引擎用文件记录信息,一个数据库可以有一个或多个文件,如果是多个文件,所有文件都压缩成一个压缩文件(zip格式)做存储和前后版本对比,领导节点(Leadernode)可以对数据库做如下修改(添加交易记录,切换数据库引擎),修改结果都反应在数据库储存文件的变化中,这种变化,可以通过两种方式传递给其他节点,增量传递,这个在不切换数据库引擎的方式下进行,如果发生了切换数据库引擎的动作,就需要传递整个数据库文件和数据库存储抽象层文件,(这个大多数情况下,并不会发生,实用的链的数据库引擎一般不会修改);
S4,拥有验证发起权力的节点采用随机投票的Prove Of Luck的方式,发起的节点负责验证运算,其他节点等待。
2.根据权利要求1所述的一种基于现有数据库的分布式储存方法,其特征在于:所述节点同步数据,交换以下几样数据:一是数据库文件字节流的差值,二是数据库文件字节流的哈希值。
3.根据权利要求2所述的一种基于现有数据库的分布式储存方法,其特征在于:所述数据库表保存以下数据:一根据实际应用需要的任何数据,二根据一张关于数据库修改日志的表,记录修改日志记录每一次的数据库修改,一次数据库修改,可以是一条记录的修改,也可以是一大串记录的修改,每次修改都会记录成一条记录,这个记录包含一个随机数和一些辅助信息(比如记录时间等)。
4.根据权利要求3所述的一种基于现有数据库的分布式储存方法,其特征在于:所述如果确认数据库文件完整,用数据库引擎加载数据库文件,可以通过使用查询数据库的方式,快速验证之前所有交易的执行情况,如果通过,就接受这个数据库版本,这个是一般情况下的区块链数据修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811606708.6A CN109902125A (zh) | 2018-12-27 | 2018-12-27 | 一种基于现有数据库的分布式储存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811606708.6A CN109902125A (zh) | 2018-12-27 | 2018-12-27 | 一种基于现有数据库的分布式储存方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109902125A true CN109902125A (zh) | 2019-06-18 |
Family
ID=66943454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811606708.6A Pending CN109902125A (zh) | 2018-12-27 | 2018-12-27 | 一种基于现有数据库的分布式储存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109902125A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347679A (zh) * | 2019-06-20 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种基于收据的数据存储方法、装置及设备 |
CN111813758A (zh) * | 2020-07-02 | 2020-10-23 | 深圳乐信软件技术有限公司 | 数据库文件分布式分析方法、装置、服务器及存储介质 |
WO2021023304A1 (zh) * | 2019-08-07 | 2021-02-11 | 华为技术有限公司 | 分叉处理方法以及区块链节点 |
US10944549B2 (en) | 2019-06-20 | 2021-03-09 | Advanced New Technologies Co., Ltd. | Blockchain-type data storage |
CN113469800A (zh) * | 2021-06-30 | 2021-10-01 | 浙江数秦科技有限公司 | 一种基于区块链的农业信贷系统 |
CN113867649A (zh) * | 2021-10-20 | 2021-12-31 | 上海万向区块链股份公司 | 自适应的区块链数据存储插件化的系统与方法 |
-
2018
- 2018-12-27 CN CN201811606708.6A patent/CN109902125A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347679A (zh) * | 2019-06-20 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种基于收据的数据存储方法、装置及设备 |
US10944549B2 (en) | 2019-06-20 | 2021-03-09 | Advanced New Technologies Co., Ltd. | Blockchain-type data storage |
US10999062B2 (en) | 2019-06-20 | 2021-05-04 | Advanced New Technologies Co., Ltd. | Blockchain-type data storage |
US11005648B2 (en) | 2019-06-20 | 2021-05-11 | Advanced New Technologies Co., Ltd. | Blockchain-type data storage |
US11223471B2 (en) | 2019-06-20 | 2022-01-11 | Advanced New Technologies Co., Ltd. | Blockchain-type data storage |
WO2021023304A1 (zh) * | 2019-08-07 | 2021-02-11 | 华为技术有限公司 | 分叉处理方法以及区块链节点 |
CN111813758A (zh) * | 2020-07-02 | 2020-10-23 | 深圳乐信软件技术有限公司 | 数据库文件分布式分析方法、装置、服务器及存储介质 |
CN113469800A (zh) * | 2021-06-30 | 2021-10-01 | 浙江数秦科技有限公司 | 一种基于区块链的农业信贷系统 |
CN113469800B (zh) * | 2021-06-30 | 2024-04-30 | 浙江数秦科技有限公司 | 一种基于区块链的农业信贷系统 |
CN113867649A (zh) * | 2021-10-20 | 2021-12-31 | 上海万向区块链股份公司 | 自适应的区块链数据存储插件化的系统与方法 |
CN113867649B (zh) * | 2021-10-20 | 2024-05-10 | 上海万向区块链股份公司 | 自适应的区块链数据存储插件化的系统与方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109902125A (zh) | 一种基于现有数据库的分布式储存方法 | |
CN109359222B (zh) | 数据存储方法及系统、设备和存储介质 | |
CN103136243B (zh) | 基于云存储的文件系统去重方法及装置 | |
CN105408857B (zh) | 数据仓库系统、生成关系数据库的多列索引的方法和系统 | |
CN102831222B (zh) | 一种基于重复数据删除的差量压缩方法 | |
CN109391645B (zh) | 区块链轻量化处理方法、区块链节点及存储介质 | |
CN109327512A (zh) | 基于区块链hash寻址和重加密的游戏数据分区储存方法 | |
CN105373541B (zh) | 数据库的数据操作请求的处理方法和系统 | |
CN104317957B (zh) | 一种报表处理的开放平台、系统及报表处理方法 | |
CN110188112A (zh) | 一种区块链智能合约的变更记录的追溯方法及装置 | |
KR102119258B1 (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
CN105631003A (zh) | 支持海量数据分组统计的智能索引构建、查询及维护方法 | |
CN112270550A (zh) | 一种基于区块链的新能源电力溯源方法及系统 | |
CN104765575A (zh) | 信息存储处理方法 | |
CN111339042B (zh) | 数据的操作处理方法、系统及调度服务器 | |
CN105447168A (zh) | Mp4格式的碎片文件恢复与重组的方法 | |
CN109271456A (zh) | 主机数据库文件导出方法及装置 | |
CN106776795A (zh) | 基于Hbase数据库的数据写入方法及装置 | |
CN109558453A (zh) | 一种区块链数据网络化存储和移存的方法 | |
CN111008183B (zh) | 一种用于业务风控日志数据的存储方法及系统 | |
CN109828975A (zh) | 一种基于区块链的大规模快速账本存取系统 | |
CN103345527B (zh) | 数据智能统计系统 | |
CN103970844B (zh) | 大数据的写入方法和装置、读取方法和装置及处理系统 | |
CN111427869A (zh) | 一种基于区块链的日志系统 | |
CN114328535A (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 |