CN111221910A - 一种提升区块链读写性能的分片存储方法 - Google Patents
一种提升区块链读写性能的分片存储方法 Download PDFInfo
- Publication number
- CN111221910A CN111221910A CN201911426111.8A CN201911426111A CN111221910A CN 111221910 A CN111221910 A CN 111221910A CN 201911426111 A CN201911426111 A CN 201911426111A CN 111221910 A CN111221910 A CN 111221910A
- Authority
- CN
- China
- Prior art keywords
- block chain
- blockchain
- namespaces
- adaptation module
- transaction
- 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 15
- 239000012634 fragment Substances 0.000 title claims abstract description 6
- 230000006978 adaptation Effects 0.000 claims abstract description 20
- 238000013467 fragmentation Methods 0.000 claims abstract description 6
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 6
- 238000002955 isolation Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009545 invasion Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005192 partition Methods 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Signal Processing (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种提升区块链读写性能的分片存储方法。包括如下步骤:1)部署存在多namespace的区块链网络并启动区块链节点完成共识。2)设计区块链交易数据分片适配模块,该模块通过哈希表的方式将区块链交易分组。3)将区块链网络内不同namespace的存储挂载在不同的存储介质上。4)通过适配模块将步骤2)中已分组的区块链交易提交到区块链网络内的不同namespace上。5)与特定交易数据相关的交易调用将会通过适配模块分流到对应的namespace进行处理。本发明解决了针对区块链网络中数据量极大时引起的底层存储数据库leveldb性能下降的问题。
Description
技术领域
本发明涉及区块链网络账本存储、哈希算法、命名空间namespace,尤其涉及应对区块链大量账本存储导致的性能下降的解决方案。
背景技术
区块链账本,包含了区块链世界状态和块链式数据的存储,块链式数据是以append only方式增长的,且存储在k-v数据库产品leveldb中。
哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。
发明内容
区块链账本,包含了区块链世界状态和块链式数据的存储,块链式数据是以append only方式增长的,且存储在k-v数据库产品leveldb中,在账本数据量极大时会导致leveldb数据库性能持续下降,从而引起区块链网络TPS的持续下降,而此时磁盘I/O,CPU占用,内存占用等数值均未成为区块链TPS的瓶颈。而区块链网络中namespace的概念从存储路径上就划分了不同区域,从而将一个较大的leveldb数据库拆分为多个相对小的leveldb数据库。在这个基础之上,设计通过交易哈希将交易数据均匀拆分给不同namespace的中间层适配模块,来达到对原有区块链应用层逻辑无侵入且解决了性能下降问题的效果。
本发明的目的是针对现有区块链技术在账本数据量很大时leveldb数据库性能会显著下降的情况,提供了一种提升区块链读写性能的分片存储方法。由于目前区块链网络的账本都采用本地k-v数据库leveldb,本发明的实现包括以下步骤:
1)部署存在多namespace(命名空间)的区块链网络并启动区块链节点完成共识。
2)设计区块链交易数据分片适配模块,该模块通过哈希表的方式将区块链交易分组。
3)将区块链网络内不同namespace的存储挂载在不同的存储介质上。
4)通过适配模块将步骤2)中已分组的区块链交易提交到区块链网络内的不同namespace上。
5)与特定交易数据相关的交易调用将会通过适配模块分流到对应的namespace进行处理。
进一步地,步骤1)中的namespace概念是对区块链网络中用于隔离账本、区块、交易和智能合约的物理概念。
进一步地,步骤2)中适配模块根据区块链交易的哈希值来将大量交易打上一个额外的tag字段,tag字段枚举值数量和步骤1)中区块链网络中namespace的数量一致。
进一步地,步骤3)中每个namespace所挂载的存储介质(如SSD,HDD,主存等)均需要物理隔离,以保证区块链namespace数据的安全隔离和存储介质的I/O性能。
进一步地,步骤4)中适配模块通过tag和namespace的一一对应关系将交易传输到区块链网络上不同的namespace。
本发明的有益效果是:本发明在现有区块链技术体系存在性能下降问题的情况下,通过一系列底层技术的再利用和新技术的开发结合,来达到对原有区块链应用层逻辑无侵入且解决了性能下降问题的效果。
附图说明
图1是本发明提升区块链读写性能的分片存储方法流程图;
图2是区块链网络多namespace存储区域划分图。
具体实施方式
下面根据附图和具体实施例详细描述本发明,本发明的目的和效果将变得更加明显。
如图1、2所示,本发明提出的一种提升区块链读写性能的分片存储方法,包括:
1)在区块链网络中的节点服务器上的global.toml上配置多个namespace来部署存在多namespace(命名空间)的区块链网络并启动区块链节点完成共识,此时区块链网络中每个namespace的网络、存储、共识都存在隔离。
2)设计区块链交易数据分片适配模块,该模块通过哈希表的方式将区块链交易分组,分组后的区块链交易会被打上tag,该tag名称会对应到namespace的名称上,区块链交易分组会根据交易哈希均匀分布到各个tag。
3)将区块链网络内不同namespace的存储挂载在不同的存储介质上,避免不同namespace中区块链数据的读写占用到同一块介质的I/O通道。
4)通过适配模块将步骤2)中已分组的区块链交易提交到区块链网络内的不同namespace上,适配模块首先与各个namespace建立rpc(远程过程调用)连接,然后定期批量的将带有tag的交易发送到对应的namespace上。
5)与特定交易数据相关的交易调用将会通过适配模块分流到对应的namespace进行处理。
进一步的,所述的步骤1)中的namespace概念是对区块链网络中用于隔离账本、区块、交易和智能合约的物理概念。
进一步的,所述的步骤2)中适配模块会根据区块链交易的哈希值来将大量交易打上一个额外的tag字段,tag字段枚举值数量和步骤1)中区块链网络中namespace的数量一致。
进一步的,所述的步骤3)中每个namespace所挂载的存储介质(如SSD,HDD,主存等)均需要物理隔离,已保证区块链namespace数据的安全隔离和存储介质的I/O性能。
进一步的,所述的步骤4)中适配模块通过tag和namespace的一一对应关系将交易传输到区块链网络上不同的namespace。
以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (5)
1.一种提升区块链读写性能的分片存储方法,其特征在于,包括如下步骤:
1)部署存在多namespace的区块链网络并启动区块链节点完成共识。
2)设计区块链交易数据分片适配模块,该模块通过哈希表的方式将区块链交易分组。
3)将区块链网络内不同namespace的存储挂载在不同的存储介质上。
4)通过适配模块将步骤2)中已分组的区块链交易提交到区块链网络内的不同namespace上。
5)与特定交易数据相关的交易调用将会通过适配模块分流到对应的namespace进行处理。
2.如权利要求1所述的一种提升区块链读写性能的分片存储方法,其特征在于,步骤1)中的namespace概念是对区块链网络中用于隔离账本、区块、交易和智能合约的物理概念。
3.如权利要求1所述的一种提升区块链读写性能的分片存储方法,其特征在于,步骤2)中适配模块根据区块链交易的哈希值来将大量交易打上一个额外的tag字段,tag字段枚举值数量和步骤1)中区块链网络中namespace的数量一致。
4.如权利要求1所述的一种提升区块链读写性能的分片存储方法,其特征在于,步骤3)中每个namespace所挂载的存储介质均需要物理隔离,以保证区块链namespace数据的安全隔离和存储介质的I/O性能。
5.如权利要求1所述的一种提升区块链读写性能的分片存储方法,其特征在于,步骤4)中适配模块通过tag和namespace的一一对应关系将交易传输到区块链网络上不同的namespace。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911426111.8A CN111221910A (zh) | 2019-12-31 | 2019-12-31 | 一种提升区块链读写性能的分片存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911426111.8A CN111221910A (zh) | 2019-12-31 | 2019-12-31 | 一种提升区块链读写性能的分片存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111221910A true CN111221910A (zh) | 2020-06-02 |
Family
ID=70825976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911426111.8A Pending CN111221910A (zh) | 2019-12-31 | 2019-12-31 | 一种提升区块链读写性能的分片存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111221910A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017023709A1 (en) * | 2015-08-06 | 2017-02-09 | Nexenta Systems, Inc. | Object storage system with local transaction logs, a distributed namespace, and optimized support for user directories |
CN107786642A (zh) * | 2017-09-30 | 2018-03-09 | 上海数据交易中心有限公司 | 用于数据流通的区块链构建方法及装置、存储介质、服务器 |
CN109146447A (zh) * | 2018-07-09 | 2019-01-04 | 矩阵元技术(深圳)有限公司 | 区块链透明分片方法、装置及系统 |
CN109522362A (zh) * | 2018-10-17 | 2019-03-26 | 北京瑞卓喜投科技发展有限公司 | 基于区块链数据的非完全数据同步方法、系统及设备 |
CN110222532A (zh) * | 2019-06-06 | 2019-09-10 | 杭州趣链科技有限公司 | 一种基于命名空间实现联盟链隐私保护的分区共识方法 |
CN110442644A (zh) * | 2019-07-08 | 2019-11-12 | 深圳壹账通智能科技有限公司 | 区块链数据归档存储方法、装置、计算机设备和存储介质 |
-
2019
- 2019-12-31 CN CN201911426111.8A patent/CN111221910A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017023709A1 (en) * | 2015-08-06 | 2017-02-09 | Nexenta Systems, Inc. | Object storage system with local transaction logs, a distributed namespace, and optimized support for user directories |
CN107786642A (zh) * | 2017-09-30 | 2018-03-09 | 上海数据交易中心有限公司 | 用于数据流通的区块链构建方法及装置、存储介质、服务器 |
CN109146447A (zh) * | 2018-07-09 | 2019-01-04 | 矩阵元技术(深圳)有限公司 | 区块链透明分片方法、装置及系统 |
CN109522362A (zh) * | 2018-10-17 | 2019-03-26 | 北京瑞卓喜投科技发展有限公司 | 基于区块链数据的非完全数据同步方法、系统及设备 |
CN110222532A (zh) * | 2019-06-06 | 2019-09-10 | 杭州趣链科技有限公司 | 一种基于命名空间实现联盟链隐私保护的分区共识方法 |
CN110442644A (zh) * | 2019-07-08 | 2019-11-12 | 深圳壹账通智能科技有限公司 | 区块链数据归档存储方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102725755B (zh) | 文件访问方法及系统 | |
JP5377318B2 (ja) | 個別にアクセス可能なデータユニットの格納管理 | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
CN104298681B (zh) | 一种数据存储方法及装置 | |
JP4669067B2 (ja) | 動的フラグメントマッピング | |
CN102184211B (zh) | 文件系统和检索、写入、修改或删除文件的方法与装置 | |
CN102033924B (zh) | 一种数据存储方法和系统 | |
CN107436725A (zh) | 一种数据写、读方法、装置及分布式对象存储集群 | |
CN102843403A (zh) | 基于分布式文件系统的文件处理方法、系统及客户端 | |
JP2005267600A5 (zh) | ||
CN103152395A (zh) | 一种分布式文件系统的存储方法及装置 | |
CN102402602A (zh) | 一种实时数据库的b+树索引方法及装置 | |
CN102495894A (zh) | 重复数据查找方法、装置及系统 | |
CN103812939A (zh) | 一种大数据存储系统 | |
CN103176754A (zh) | 一种海量小文件读取存储方法 | |
CN108345433B (zh) | 用于最大化的可去重存储器的方法、存储器系统和产品 | |
CN105488050A (zh) | 一种数据库多索引方法、装置及系统 | |
CN106066818B (zh) | 一种提高重复数据删除备份系统恢复性能的数据布局方法 | |
CN105900093A (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
CN109976669A (zh) | 一种边缘存储方法、装置和存储介质 | |
CN103279489A (zh) | 一种元数据的存储方法、装置 | |
CN107205024A (zh) | 一种云存储系统中数据去重方法及系统 | |
CN104391961A (zh) | 千万级小文件数据的一种读写解决策略 | |
CN103942301A (zh) | 一种面向多数据类型访问应用的分布式文件系统 | |
CN101963993B (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: 20200602 |
|
RJ01 | Rejection of invention patent application after publication |