CN114594911B - 基于链下纠删码分布式存储的区块链数据存储系统及方法 - Google Patents
基于链下纠删码分布式存储的区块链数据存储系统及方法 Download PDFInfo
- Publication number
- CN114594911B CN114594911B CN202210241887.8A CN202210241887A CN114594911B CN 114594911 B CN114594911 B CN 114594911B CN 202210241887 A CN202210241887 A CN 202210241887A CN 114594911 B CN114594911 B CN 114594911B
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- block
- coding
- node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000013500 data storage Methods 0.000 title claims abstract description 14
- 238000011084 recovery Methods 0.000 claims abstract description 9
- 230000007246 mechanism Effects 0.000 claims description 24
- 239000011159 matrix material Substances 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 8
- 230000008439 repair process Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 7
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 description 12
- 230000007547 defect Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 239000002360 explosive Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于链下纠删码分布式存储的区块链数据存储系统及方法,其技术方案为:将区块链模块共识节点的存储功能分离至一个链下存储网络模块,使得共识节点仅保留计算功能以产生区块;负责区块存储的链下存储网络模块,通过编译码模块的纠删码方案和编译码模块纠删码方案对链下存储节点内不存在数据进行实时恢复。本发明在提升区块链节点计算能力的同时,大大降低了系统恢复数据时的单链路数据传输压力和计算的复杂度。具有更低的存储开销和更高的系统运行速率,以及更好的数据完整安全性、低数据恢复带宽、低计算复杂度以及更小的单链路网络传输压力的优点。
Description
技术领域
本发明属于区块链技术领域,更进一步涉及数据存储技术领域中的一种基于链下纠删码分布式存储的区块链数据存储系统及方法。本发明通过纠删码技术对区块链数据进行分割和编码,使用分离于区块链系统的链下分布式存储系统承载并存储编码块数据,可以有效地对区块链系统产生的区块数据进行保证其安全性和完整性的管理。
背景技术
区块链技术是一种建立在多重技术之上的一种分布式共享账本技术,而区块链本质上是一种多方参与共同维护和数据管理的分布式数据库。区块链系统采用去中心化或弱中心化的数据管理模式,账本数据以副本形式存储在区块链系统的每一个参与节点。但是,随着大数据时代的数据爆炸式增长,每一个区块链参与节点在维护账本数据的同时也带来了严重的存储负担。显然,传统的区块链存储模式很难应对大数据时代的爆炸式增长的数据量。因此,区块链系统中对分布式存储思想的应用受到越来越多的关注和研究。纠删码技术是分布式存储系统中常用的一种的数据冗余机制,该技术一般将原始数据分割成信息块后进行编码产生校验块,并将信息块与校验块分散存储在分布式存储系统的节点中,以应对数据存储量大和节点失效频发的问题,实现数据容错和提高系统稳定性的目的。
西北大学在其申请的发明专利文献“一种区块链数据存储与共享方法、系统、设备及终端”(专利申请号:CN202111123138.7,申请公布号:CN113986853 A)中公开了一种区块链数据存储系统和方法。该专利申请公开的系统包括数据获取和预处理模块、数据存储模块和数据共享模块。数据获取和预处理模块用于将原始数据进行分片、压缩和压缩后处理为编码块,数据存储模块用于将原本存储在区块链的数据转移到云端,且每个云端只存储一个编码块,数据共享模块用于使用纠删码技术恢复数据,使用Huffman算法解压缩数据获得原始数据,并使用带有访问控制权限的智能合约进行数据共享。该系统存在的不足之处是,该系统数据获取和预处理模块内涉及的编解码操作之前加入了压缩算法,虽然降低了存储空间的需求,但是牺牲了大量的计算资源,这导致了系统运行效率的降低。该专利申请公开的方法的实现步骤是,通过将原始数据分片后使用Huffman算法进行压缩后,使用纠删码技术将分片数据编码为多个数据块后存储在云中,并将云端的生成的文件hash存储在区块链中,当数据请求者请求数据时,数据拥有者使用纠删码技术恢复原始数据即可进行数据共享,利用Huffman算法压缩分片数据后提高了RS纠删码的编解码效率,同时降低了云端的存储压力。但是,该方法仍然存在的不足之处是,该方法侧重将纠删码技术用于数据请求发生后的数据共享,没有实现对数据实时丢失情况的解决,这导致了当部分数据发生失效或损坏时完整数据缺乏实时的安全性和完整性,无法满足系统在云端存储节点受损条件下的数据及时修复。
D.Perard and J.Lacan在其发表的论文“Erasure Code-Based Low StorageBlockchain Node”(2018 IEEE International Conference on Internet of Things(iThings)and IEEE Green Computing and Communications(GreenCom)and IEEE Cyber,Physical and Social Computing(CPSCom)and IEEE Smart Data(SmartData),2018,1622-1627)中提出一种基于低存储节点的区块链数据存储系统和方法。该论文公开的系统包括数据产生模块和数据存储模块。数据产生模块用于通过运行区块链产生待存储的区块数据,数据存储模块内引用了新的低存储节点类型,用于经过纠删码编码后的少量编码数据的存储。该系统存在的不足之处是,该系统虽然在原有区块链技术上降低了节点存储需求,但仍存在数据持续增长导致节点的存储空间不足问题。该论文公开的方法的实现步骤是,通过区块链的共识机制产生账本数据,同时设计了一种新的低存储节点,其采用纠删码技术从区块链产生的账本数据中编码获取部分编码数据,这种方法的特性确保了链中的任何数据都可以很容易地从少量这样的地存储节点中重建,确保了数据的可重建性。但是,该方法仍然存在的不足之处是,该方法提出的低存储节点仍属于区块链系统内的节点,该节点不仅承担着存储大量数据的功能,还要承担区块链数据生成和纠删码计算功能,这也导致了整个区块链系统运行效率的大幅降低。
发明内容
本发明技术的目的在于针对现有技术的不足,提出一种基于链下纠删码分布式存储的区块链数据存储系统及方法,旨在解决区块链共识节点的计算能力上的瓶颈以及链下存储网络内失效数据实时修复问题。
为实现上述目的,本发明的具体思路是:将区块链模块共识节点的存储功能分离至一个链下存储网络模块,在链下存储网络模块内,通过编译码模块的纠删码方案实时对链下存储节点内不存在数据进行恢复。本发明的区块链模块共识节点仅保留计算功能以产生区块,通过减小共识节点存储开销以提升区块链模块共识节点的计算能力。本发明负责区块存储的链下存储网络,通过编译码模块的纠删码方案产生冗余数据,从而使得本发明解决了链下存储网络模块内存储的区块实时修复、存储网络内单链路的数据传输压力和计算复杂度问题。
为实现上述目的,本发明的系统包括区块链模块、编译码模块和链下存储网络模块:
所述的区块链模块,用于根据节点容错要求所选择共识机制设定L个共识节点数,L≥3;区块链模块全部参数确定后,区块链模块的全部节点通过选择的共识机制达成共识,以在每一个共识节点同步产生一个相同的区块,为编译码模块编码提供数据。
所述的编译码模块,用于根据现有的纠删码,用计算机语言描述得到编码子模块和译码子模块,编码子模块用于对区块的编码,译码子模块用于对丢失区块的修复操作;编码子模块将每一个共识节点产生的一个区块均分为k个数据块,利用纠删码中矩阵的线性关系,将均分后的k个数据块混合生成r个校验数据块,将k个数据块和r个校验数据块组成n个编码块,其中,k>0,r>0;译码子模块将不存在数据的存储节点收到的编码块,根据译码子模块中规定的矩阵对编码块进行译码,恢复得到存储节点内不存在的数据并存储在该节点内。
所述的链下存储网络模块,用于设定链下存储网络模块内存储节点数量为N,N>0,在部署本系统时其固有的局域网网段内为每一个存储节点分配一个互不重叠的IP地址;链下存储网络模块将每个编码块按照存储节点IP地址分配给每个存储节点;链下存储网络模块中的每个存储节点同步产生一张表格,记录所有存储节点的IP地址和各个存储节点存储的编码块信息;链下存储网络模块实时监测各个存储节点中每个时刻数据状态,统计不存在数据的存储节点数量。若不存在数据的存储节点总数小于或等于m时,所有不存在数据的存储节点分别调用译码子模块获取该节点译码恢复所需的编码块信息,m表示由纠删码的极大距离可分MDS性质所限定的最大容错值,m=n-k;每个不存在数据的存储节点给数据完整的临近存储节点发送编码块请求信息,数据完整的临近存储节点收到该请求信息后,将与请求信息相对应的编码块发送给不存在数据的存储节点。
本发明方法的实现方法如下:
步骤1,选取各模块内部参数:
步骤1.1,区块链模块根据节点容错要求所选择共识机制设定L个共识节点数,L≥3;
步骤1.2,链下存储网络模块设定链下存储网络模块内存储节点数量为N,N>0,在部署本系统时其固有的局域网网段内为每一个存储节点分配一个互不重叠的IP地址;
步骤2,生成区块:
区块链模块全部参数确定后,区块链模块的全部节点通过选择的共识机制达成共识,以在每一个共识节点同步产生一个相同的区块,为编译码模块编码提供数据;
步骤3,对区块进行编码:
步骤3.1,编译码模块根据现有的纠删码,用计算机语言描述得到编码子模块和译码子模块,编码子模块用于对区块的编码,译码子模块用于对丢失区块的修复操作;
步骤3.2,编码子模块将每一个共识节点产生的一个区块均分为k个数据块,利用纠删码中矩阵的线性关系,将均分后的k个数据块混合生成r个校验数据块,将k个数据块和r个校验数据块组成n个编码块,其中,k>0,r>0;
步骤4,存储编码块:
步骤4.1,链下存储网络模块将每个编码块按照存储节点IP地址分配给每个存储节点;
步骤4.2,链下存储网络模块中的每个存储节点同步产生一张表格,记录所有存储节点的IP地址和各个存储节点存储的编码块信息;
步骤5,恢复不存在的区块:
步骤5.1,链下存储网络模块实时监测各个存储节点中每个时刻数据状态,统计不存在数据的存储节点数量。若不存在数据的存储节点总数小于或等于m时,所有不存在数据的存储节点分别调用译码子模块获取该节点译码恢复所需的编码块信息,m表示由纠删码的极大距离可分MDS性质所限定的最大容错值,m=n-k;
步骤5.2,每个不存在数据的存储节点给数据完整的临近存储节点发送编码块请求信息,数据完整的临近存储节点收到该请求信息后,将与请求信息相对应的编码块发送给不存在数据的存储节点;
步骤5.3,译码子模块将不存在数据的存储节点收到的编码块,根据译码子模块中规定的矩阵对编码块进行译码,恢复得到存储节点内不存在的数据并存储在该节点内。
本发明与现有技术相比,具有如下优点:
第一,由于本发明的系统将区块链模块的存储功能分离至一个链下存储网络模块,区块链模块仅产生区块,链下存储网络模块负责对区块的存储,克服了现有技术采用的在区块链系统共识节点内存储数据,可能导致的大量存储空间需求对区块链系统性能负担较大的缺陷,使得本发明的系统具有更低的存储开销和更高的系统运行速率的优点。
第二,由于本发明的方法将区块存储在链下存储网络模块内,克服了现有技术在节点内存储的数据量较大,可能导致的节点负担过大的缺陷,使得本发明的方法具有更低的节点计算和存储负担、更高的区块产生速率的优点。
第三,由于本发明的方法在编译码模块中采用性能优秀的提供冗余数据的纠删码技术,对区块进行编码处理后,克服了现有技术没有考虑数据丢失情况,可能导致的在数据缺乏实时的安全性方面的缺陷,使得本发明的方法具有更好的数据完整安全性、低数据恢复带宽、低计算复杂度以及更小的单链路网络传输压力的优点。
附图说明
图1是本发明的系统框架图;
图2是本发明的存储方法流程图。
具体实施方式
下面参照附图和实施例对本发明的系统及方法做进一步的描述。
参照图1,对本发明的系统做进一步的详细描述。
本发明的系统包括区块链模块,编译码模块和链下存储网络模块。
区块链模块用于根据节点容错要求所选择共识机制设定L个共识节点数,L≥3。区块链模块全部参数确定后,区块链模块的全部节点通过选择的共识机制达成共识,以在每一个共识节点同步产生一个相同的区块,为编译码模块编码提供数据。
编译码模块用于根据现有的纠删码方案,用计算机语言描述得到编码子模块和译码子模块,编码子模块用于对区块的编码,译码子模块用于对丢失区块的修复操作。
链下存储网络模块用于设定链下存储网络模块内存储节点数量为N,N>0,在部署本系统时其固有的局域网网段内为每一个存储节点分配一个互不重叠的IP地址。链下存储网络模块将每个编码块按照存储节点IP地址分配给每个存储节点。链下存储网络模块中的每个存储节点同步产生一张表格,记录所有存储节点的IP地址和各个存储节点存储的编码块信息。链下存储网络模块实时监测各个存储节点中每个时刻数据状态,统计不存在数据的存储节点数量,若不存在数据的存储节点总数小于或等于m时,所有不存在数据的存储节点分别调用译码子模块获取该节点译码恢复所需的编码块信息。每个不存在数据的存储节点给数据完整的临近存储节点发送编码块请求信息,数据完整的临近存储节点收到该请求信息后,将与请求信息相对应的编码块发送给不存在数据的存储节点。
参照图2和实施例,对本发明方法的具体实现步骤做进一步的详细描述。
步骤1,选取各模块内部参数。
第1步,区块链模块根据节点容错要求所选择共识机制设定共识节点数为L,L≥3。根据系统对区块链模块的节点容错要求选择该模块的节点共识机制。通常情况下,共识机制是指在两种方案任意选择一种,第一种方案是允许宕机节点数量为全部节点数量1/3的实用拜占庭共识机制,第二种方案是允许宕机节点数量为全部节点数量1/2的Raft共识机制。
由于本发明的实施例中所选择的共识机制为实用拜占庭共识机制,故设定区块链模块的共识节点数为4。
第2步,链下存储网络模块设定链下存储网络模块内存储节点数量为N,N>0,在部署本系统时其固有的局域网网段内为每一个存储节点分配一个互不重叠的IP地址。
本发明的实施例中是根据系统部署环境中的交换机所在局域网的网段,设定链下存储网络模块内存储节点数为10个,同时在此网段内为每一个存储节点分配互不重叠的IP地址。
步骤2,生成区块。
全部区块链模块参数设定完成后,区块链模块的全部节点通过选择的共识机制达成共识,以在每一个共识节点同步产生一个相同的区块,为编译码模块编码提供数据。
本发明的实施例运行区块链模块,其4个共识节点通过选择的实用拜占庭共识机制达成共识,在每一个共识节点内同步产生一个相同的区块。
步骤3,对区块进行编码。
第1步,编译码模块根据现有的纠删码,用计算机语言描述得到编码子模块和译码子模块,编码子模块用于对区块的编码,译码子模块用于对丢失区块的修复操作。
本发明的实施例中采用纠删码中数据修复带宽和译码复杂度较低的piggybacking编码方案,根据该方案在修复带宽和译码复杂度方面的优势可以大幅提升数据的修复速度。同时采取C++语言描述该方案,该C++语言描述方式将编码方案中的编译码功能具体为编码框架和译码框架。piggybacking编码方案是在里德-所罗门码RS码(Reed-Solomon)基础上设计的。
第2步,编码子模块将每一个共识节点产生的一个区块均分为k个数据块,利用纠删码中矩阵的线性关系,将均分后的k个数据块混合生成r个校验数据块,将k个数据块和r个校验数据块组成n个编码块,其中,k>0,r>0。
本发明的实施例中采用以C++语言描述piggybacking编码方案得到的编码框架,该框架将区块均分为5个数据块,利用piggybacking编码方案中矩阵的线性关系,将均分后的5个数据块混合生成5个新的校验数据块,将该5个校验数据块称为冗余数据。将5个数据块和5个校验数据块组成10个编码块。
步骤4,存储编码块。
第1步,链下存储网络模块将每个编码块按照存储节点IP地址分配给每个存储节点。
本发明的实施例将编码子模块产生的10个编码块,根据各个存储节点的IP地址一一对应的分配给10个存储节点,一个存储节点存储一个编码块。
第2步,链下存储网络模块各个存储节点同步产生一张表格,表格在存储节点内以文件后缀.txt形式存在。该表格记录存储网络内所有存储节点的IP地址和各个节点所存储的编码块信息,以确定链下分布式存储网络内部的节点成员数量,从而保证存储网络内部数据的安全性。
本发明的实施例中10存储节点同步产生一张表格,并表格名称为Store.txt。
步骤5,恢复不存在的区块。
第1步,链下存储网络模块实时监测各个存储节点中每个时刻数据状态,统计不存在数据的存储节点数量。若不存在数据的存储节点总数小于或等于m时,所有不存在数据的存储节点分别调用译码子模块获取该节点译码恢复所需的编码块信息,m表示由纠删码的极大距离可分MDS性质(Maximum Distance Separable)所限定的最大容错值,m=n-k。
存储节点内数据发生丢失、受损和错误三者之间任意一种情况均属于不存在数据的情况。
本发明的实施例任意选取存储网络中5个存储节点,删除其中存储的部分区块数据,以达到数据不存在的效果。根据编码子模块均分数据块的数量k=5和编码块总数量n=10,由纠删码的MDS性质限定不存在数据的存储节点的最大容错值m应当为小于或等于5。当5个存储节点出现不存在数据情况,满足纠删码的MDS性质限定的最大容错值,不存在数据的全部存储节点从译码框架中获取恢复丢失数据的所需编码块信息。
第2步,每个不存在数据的存储节点给数据完整的临近存储节点发送编码块请求信息,数据完整的临近存储节点收到该请求信息后,将与请求信息相对应的编码块发送给不存在数据的存储节点。
本发明的实施例中,不存在数据的5个存储节点分别给数据完整的临近存储节点发送编码块请求信息,数据完整的临近存储节点收到该请求,将编码块发送给不存在数据的5个存储节点。
第3步,译码子模块将不存在数据的存储节点收到的编码块,根据译码子模块中规定的矩阵对编码块进行译码,恢复得到存储节点内不存在的数据并存储在该节点内。
本发明的实施例是当不存在数据的存储节点数量为1的情况下,采用piggybacking编码方案生成的译码框架,直接进行单节点内不存在数据的快速恢复。当不存在数据的存储节点数量大于1且小于等于5的情况下,根据piggybacking编码方案生成译码框架,将译码框架中包含的线性操作还原,得到该译码框架的基本码RS码,采用还原后的RS码对多节点内不存在的数据进行恢复。
Claims (3)
1.一种基于链下纠删码分布式存储的区块链数据存储系统,包括区块链模块、编译码模块和链下存储网络模块:
所述的区块链模块,用于根据节点容错要求所选择共识机制设定L个共识节点数,L≥3;区块链模块全部参数确定后,区块链模块的全部节点通过选择的共识机制达成共识,以在每一个共识节点同步产生一个相同的区块,为编译码模块编码提供数据;将区块链模块共识节点的存储功能分离至一个链下存储网络模块对数据进行存储,区块链模块仅产生区块数据;
所述的编译码模块,用于根据现有的纠删码,用计算机语言描述得到编码子模块和译码子模块,编码子模块用于对区块的编码,译码子模块用于对丢失区块的修复操作;编码子模块将每一个共识节点产生的一个区块均分为k个数据块,利用纠删码中矩阵的线性关系,将均分后的k个数据块混合生成r个校验数据块,将k个数据块和r个校验数据块组成n个编码块,其中,k>0,r>0;译码子模块将不存在数据的存储节点收到的编码块,根据译码子模块中规定的矩阵对编码块进行译码,恢复得到存储节点内不存在的数据并存储在该节点内;
所述的链下存储网络模块,用于设定存储网络模块内存储节点数量为N,N>0,在部署本系统时其固有的局域网网段内为每一个存储节点分配一个互不重叠的IP地址;链下存储网络模块将每个编码块按照存储节点IP地址分配给每个存储节点;链下存储网络模块中的每个存储节点同步产生一张表格,记录所有存储节点的IP地址和各个存储节点存储的编码块信息;链下存储网络模块实时监测各个存储节点中每个时刻数据状态,统计不存在数据的存储节点数量,若不存在数据的存储节点总数小于或等于m时,所有不存在数据的存储节点分别调用译码子模块获取该节点译码恢复所需的编码块信息,m表示由纠删码的极大距离可分MDS性质所限定的最大容错值,m=n-k;每个不存在数据的存储节点给数据完整的临近存储节点发送编码块请求信息,数据完整的临近存储节点收到该请求信息后,将与请求信息相对应的编码块发送给不存在数据的存储节点。
2.根据权利要求1所述存储系统的一种基于链下纠删码分布式存储的区块链数据存储方法,其特征在于,将区块链模块共识节点的存储功能分离至一个链下存储网络模块对数据进行存储,区块链模块仅产生区块数据,根据链下存储网络模块中的纠删码方案,对区块进行编码存储和译码实时修复;该存储方法的具体步骤包括如下:
步骤1,选取各模块内部参数:
步骤1.1,区块链模块根据节点容错要求所选择共识机制设定L个共识节点数,L≥3;
步骤1.2,链下存储网络模块设定链下存储网络模块内存储节点数量为N,N>0,在部署本系统时其固有的局域网网段内为每一个存储节点分配一个互不重叠的IP地址;
步骤2,生成区块:
区块链模块全部参数确定后,区块链模块的全部节点通过选择的共识机制达成共识,以在每一个共识节点同步生成一个相同的区块;
步骤3,对区块进行编码:
步骤3.1,编译码模块根据现有的纠删码,用计算机语言描述得到编码子模块和译码子模块,编码子模块用于对区块的编码,译码子模块用于对丢失区块的修复操作;
步骤3.2,编码子模块将每一个共识节点产生的一个区块均分为k个数据块,利用纠删码中矩阵的线性关系,将均分后的k个数据块混合生成r个校验数据块,将k个数据块和r个校验数据块组成n个编码块,其中,k>0,r>0;
步骤4,存储编码块:
步骤4.1,链下存储网络模块将每个编码块按照存储节点IP地址分配给每个存储节点;
步骤4.2,链下存储网络模块中的每个存储节点同步产生一张表格,记录所有存储节点的IP地址和各个存储节点存储的编码块信息;
步骤5,恢复不存在的区块:
步骤5.1,链下存储网络模块实时监测各个存储节点中每个时刻数据状态,统计不存在数据的存储节点数量,若不存在数据的存储节点总数小于或等于m时,所有不存在数据的存储节点分别调用译码子模块获取该节点译码恢复所需的编码块信息,m表示由纠删码的极大距离可分MDS性质所限定的最大容错值,m=n-k;
步骤5.2,每个不存在数据的存储节点给数据完整的临近存储节点发送编码块请求信息,数据完整的临近存储节点收到该请求信息后,将与请求信息相对应的编码块发送给不存在数据的存储节点;
步骤5.3,译码子模块将不存在数据的存储节点收到的编码块,根据译码子模块中规定的矩阵对编码块进行译码,恢复得到存储节点内不存在的数据并存储在该节点内。
3.根据权利要求2所述基于链下纠删码分布式存储的区块链数据存储方法,其特征在于,步骤1.1中所述的共识机制是中从以下两种方案中任选一种的情形,第一种方案是允许宕机节点数量为全部节点数量1/3的实用拜占庭共识机制,第二种方案是允许宕机节点数量为全部节点数量1/2的Raft共识机制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210241887.8A CN114594911B (zh) | 2022-03-13 | 2022-03-13 | 基于链下纠删码分布式存储的区块链数据存储系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210241887.8A CN114594911B (zh) | 2022-03-13 | 2022-03-13 | 基于链下纠删码分布式存储的区块链数据存储系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114594911A CN114594911A (zh) | 2022-06-07 |
CN114594911B true CN114594911B (zh) | 2024-03-29 |
Family
ID=81809465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210241887.8A Active CN114594911B (zh) | 2022-03-13 | 2022-03-13 | 基于链下纠删码分布式存储的区块链数据存储系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114594911B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115065689B (zh) * | 2022-06-10 | 2024-04-02 | 湖州市赛思安科技有限公司 | 一种基于历史评价的联盟链区块数据存储方法及系统 |
CN116628083B (zh) * | 2023-04-27 | 2024-05-24 | 中国人民解放军战略支援部队信息工程大学 | 区块链交易数据扩容存储方法及系统 |
CN117555494B (zh) * | 2024-01-12 | 2024-03-22 | 南京荧火泰讯信息科技有限公司 | 一种用于信号处理板的编码管理系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924092A (zh) * | 2018-06-07 | 2018-11-30 | 北京航空航天大学 | 基于区块链的可公开仲裁分布式云存储方法及系统 |
CN109359223A (zh) * | 2018-09-17 | 2019-02-19 | 重庆邮电大学 | 基于纠删码实现的区块链账本分布式存储技术 |
CN109491968A (zh) * | 2018-11-13 | 2019-03-19 | 浙江鲸腾网络科技有限公司 | 一种文件处理方法、装置、设备及计算机可读存储介质 |
US11037227B1 (en) * | 2017-11-22 | 2021-06-15 | Storcentric, Inc. | Blockchain-based decentralized storage system |
WO2021189905A1 (zh) * | 2020-10-20 | 2021-09-30 | 平安科技(深圳)有限公司 | 分布式数据调取方法、装置、电子设备及存储介质 |
CN113608670A (zh) * | 2021-05-25 | 2021-11-05 | 武汉理工大学 | 基于公平性和访问热度的区块链数据存储方法 |
US11171950B1 (en) * | 2018-03-21 | 2021-11-09 | Pure Storage, Inc. | Secure cloud-based storage system management |
CN113806443A (zh) * | 2021-08-19 | 2021-12-17 | 西安电子科技大学 | 一种数据可信存储方法、系统、介质、设备及终端 |
CN113821564A (zh) * | 2021-09-09 | 2021-12-21 | 湖南大学 | 异构并行区块链及其链上数据与链下合约协同方法 |
CN113986853A (zh) * | 2021-09-24 | 2022-01-28 | 西北大学 | 一种区块链数据存储与共享方法、系统、设备及终端 |
CN113986143A (zh) * | 2021-11-11 | 2022-01-28 | 中山大学 | 一种面向区块链日志存储的高可靠低开销数据存储方法 |
-
2022
- 2022-03-13 CN CN202210241887.8A patent/CN114594911B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037227B1 (en) * | 2017-11-22 | 2021-06-15 | Storcentric, Inc. | Blockchain-based decentralized storage system |
US11171950B1 (en) * | 2018-03-21 | 2021-11-09 | Pure Storage, Inc. | Secure cloud-based storage system management |
CN108924092A (zh) * | 2018-06-07 | 2018-11-30 | 北京航空航天大学 | 基于区块链的可公开仲裁分布式云存储方法及系统 |
CN109359223A (zh) * | 2018-09-17 | 2019-02-19 | 重庆邮电大学 | 基于纠删码实现的区块链账本分布式存储技术 |
CN109491968A (zh) * | 2018-11-13 | 2019-03-19 | 浙江鲸腾网络科技有限公司 | 一种文件处理方法、装置、设备及计算机可读存储介质 |
WO2021189905A1 (zh) * | 2020-10-20 | 2021-09-30 | 平安科技(深圳)有限公司 | 分布式数据调取方法、装置、电子设备及存储介质 |
CN113608670A (zh) * | 2021-05-25 | 2021-11-05 | 武汉理工大学 | 基于公平性和访问热度的区块链数据存储方法 |
CN113806443A (zh) * | 2021-08-19 | 2021-12-17 | 西安电子科技大学 | 一种数据可信存储方法、系统、介质、设备及终端 |
CN113821564A (zh) * | 2021-09-09 | 2021-12-21 | 湖南大学 | 异构并行区块链及其链上数据与链下合约协同方法 |
CN113986853A (zh) * | 2021-09-24 | 2022-01-28 | 西北大学 | 一种区块链数据存储与共享方法、系统、设备及终端 |
CN113986143A (zh) * | 2021-11-11 | 2022-01-28 | 中山大学 | 一种面向区块链日志存储的高可靠低开销数据存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114594911A (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114594911B (zh) | 基于链下纠删码分布式存储的区块链数据存储系统及方法 | |
US9722637B2 (en) | Construction of MBR (minimum bandwidth regenerating) codes and a method to repair the storage nodes | |
Shum et al. | Exact minimum-repair-bandwidth cooperative regenerating codes for distributed storage systems | |
CN108631947B (zh) | 一种基于纠删码的rdma网络数据传输方法 | |
MX2014010252A (es) | Aparato de transmision/recepcion de paquete y metodo que utiliza esquema de correccion de error anticipada. | |
CN105451031A (zh) | 一种视频转码方法和系统 | |
CN110190926B (zh) | 基于网络计算的纠删码更新方法及系统 | |
CN110764950A (zh) | 基于rs码和再生码的混合编码方法、数据修复方法、及其系统 | |
Choi et al. | Scalable network-coded PBFT consensus algorithm | |
Hollmann | Storage codes—Coding rate and repair locality | |
CN106209945A (zh) | 基于多连接的数据发送方法及装置 | |
Wang et al. | Locally minimum storage regenerating codes in distributed cloud storage systems | |
CN113296695A (zh) | 多az环境下纠删码数据的写入方法以及装置 | |
CN108923960A (zh) | 一种基于代理协助再生码的存储节点修复方法 | |
CN108536555B (zh) | 一种基于BCube(n,b)数据中心的数据存取方法 | |
CN108628697B (zh) | 一种基于二进制的节点修复方法及系统 | |
CN114844781B (zh) | Rack架构下面向编码MapReduce的Shuffle性能优化方法及系统 | |
CN104572987B (zh) | 一种通过压缩提高简易再生码存储效率的方法和系统 | |
WO2017041233A1 (zh) | 一种功能修复再生码的编码和存储节点修复方法 | |
CN113098660B (zh) | 一种基于部分复制技术的不等局部可修复喷泉码构造方法 | |
CN110347526B (zh) | 提升分布式存储集群中lrc码修复性能的方法、装置及系统 | |
CN114063909B (zh) | 图片数据的智能分布式存储方法及系统 | |
CN112988461B (zh) | 数据备份方法、边缘节点、数据中心及计算机存储介质 | |
EP4391538A1 (en) | Point cloud coding method and apparatus, point cloud decoding method and apparatus, and computer and storage medium | |
CN116781606A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |