CN114047878A - 一种面向区块链域名解析的纠删码低开销存储系统及方法 - Google Patents
一种面向区块链域名解析的纠删码低开销存储系统及方法 Download PDFInfo
- Publication number
- CN114047878A CN114047878A CN202111321710.0A CN202111321710A CN114047878A CN 114047878 A CN114047878 A CN 114047878A CN 202111321710 A CN202111321710 A CN 202111321710A CN 114047878 A CN114047878 A CN 114047878A
- Authority
- CN
- China
- Prior art keywords
- data
- erasure
- node
- block
- coding
- 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
- 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/0608—Saving storage space on 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
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向区块链域名解析的纠删码低开销存储系统及方法,系统包括若干纠删节点和若干轻节点,每个节点均与其余节点网络连接,其中每个纠删节点均包括:客户端、数据读取模块、解码引擎、编码引擎、共识算法模块,所述客户端用于接收外部请求;所述数据读取模块用于读取区块数据;所述解码引擎用于接收解码指令解码恢复目标数据块;所述共识算法模块用于交易数据的共识和区块数据的打包;所述编码引擎用于区块编码。本发明通过纠删节点和轻节点构建面向区块链域名解析的存储系统,采用纠删码技术在保证存储可靠性的前提下,降低每个节点所需存储的数据规模,降低数据存储空间开销。
Description
技术领域
本发明涉及分布式存储技术领域,更具体地,涉及一种面向区块链域名解析的纠删码低开销存储系统及方法。
背景技术
现有的域名系统具有中心化的特征,存在单点失效和权力滥用等问题,基于区块链构建去中心化域名解析系统能够有效缓解上述问题。然而,现有的基于区块链的链上域名解析系统中,每个节点都需要存储完整的区块链数据,存在全副本存储空间开销过大的问题。
现有技术中,Xiaodong Qi等人提出了一种面向区块链系统的纠删码机制(BFT-Store:Storage Partition for Permissioned Blockchain via Erasure Coding,Xiaodong Qi,Zhao Zhang,Cheqing Jin,Aoying Zhou,ICDE,2020.),以降低区块存储空间开销,采用纠删码将全副本存储空间开销由O(N)降低至O(1),每个节点仅存储编码后的一个或多个编码块,而无需存储完整区块链数据。提出编码块复制策略来提高区块访问性能。该方案未考虑轻节点的加入,架构中仅有纠删编码节点。编码块复制策略提高区块访问性能,但也提高了存储空间开销。此外,节点动态进出时的重编码机制效率较低。
发明内容
本发明为克服上述现有技术中面向区块链的域名解析存储空间开销过大的缺陷,提供一种面向区块链域名解析的纠删码低开销存储系统及方法。
本发明的首要目的是为解决上述技术问题,本发明的技术方案如下:
本发明第一方面提供了一种面向区块链域名解析的纠删码低开销存储系统,包括若干纠删节点和若干轻节点,每个节点均与其余节点网络连接,其中每个纠删节点均包括:客户端、数据读取模块、解码引擎、编码引擎、共识算法模块,所述客户端用于接收外部请求;所述数据读取模块用于读取区块数据;所述解码引擎用于接收解码指令解码恢复目标数据块;所述共识算法模块用于交易数据的共识和区块数据的打包;所述编码引擎用于区块编码。
进一步的,所述数据读取模块包括:本地读取单元、远程读取单元、解码读取单元;当目标数据在节点本地则通过本地读取单元进行数据的读取,当目标数据在临近节点则通过远程读取单元读取,当持有目标数据的节点已失效,则解码读取单元发送指令至解码引擎单元,解码引擎通过网络从邻近的纠删节点中拉取足够数量的区块,然后解码恢复出目标数据。
进一步的,所述纠删节点用于存储编码块数据,所述轻节点用于验证纠删节点的响应数据是否正确。
本发明第二方面提供了一种面向区块链域名解析的纠删码低开销存储方法,所述方法应用于所述的面向区块链域名解析的纠删码低开销存储系统,包括以下步骤:
客户端接收提交交易请求,并将请求转发至共识算法模块;
共识算法模块进行交易数据的共识,并将交易数据打包成区块;
当累计的区块数等于预设的区块数阈值则发送编码指令至编码引擎;
编码引擎接收指令并对区块进行纠删码编码存储同时向网络中的所有纠删节点广播当前节点编码执行状态,完成编码后的共识。
进一步的,所述编码引擎的编码过程为:
接收编码指令启动编码,将纠删节点累积的区块进行编码并得到校验块;
根据节点自身IP地址所处的排列序号选择需要保存的编码块。
进一步的,所述方法还包括区块数据的读取,具体步骤为:
客户端接收数据读取请求,并将数据读取指令发送至数据读取模块;
数据读取模块根据目标数据的状态进行执行读取动作。
进一步的,所述数据读取模块根据目标数据的状态进行执行读取动作具体步骤为:
若目标数据在节点本地则通过本地读取单元进行数据的读取,若目标数据在临近节点则通过远程读取单元读取,若持有目标数据的节点已失效,则解码读取单元发送指令至解码引擎单元,解码引擎通过网络从邻近的纠删节点中拉取足够数量的区块,然后解码恢复出目标数据。
进一步的,所述编码引擎采用RS(4,2)纠删码。
进一步的,采用RS(4,2)纠删码进行每一轮编码得到6个编码块,其中包括有4个数据块和2个校验块。
进一步的,所述的区块数阈值通过网络中的节点数和纠删编码方式确定。
与现有技术相比,本发明技术方案的有益效果是:
本发明通过纠删节点和轻节点构建面向区块链域名解析的存储系统,采用纠删码技术在保证存储可靠性的前提下,降低每个节点所需存储的数据规模,降低数据存储空间开销。
附图说明
图1为本发明实施例一种面向区块链域名解析的纠删码低开销存储系统框图。
图2为本发明实施例一种面向区块链域名解析的纠删码低开销存储方法流程图。
图3为本发明实施例纠删码编码示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
实施例1
如图1所示,本发明第一方面提供了一种面向区块链域名解析的纠删码低开销存储系统,包括若干纠删节点和若干轻节点,每个节点均与其余节点网络连接,其中每个纠删节点均包括:客户端、数据读取模块、解码引擎、编码引擎、共识算法模块,所述客户端用于接收外部请求;所述数据读取模块用于读取区块数据;所述解码引擎用于接收解码指令解码恢复目标数据块;所述共识算法模块用于交易数据的共识和区块数据的打包;所述编码引擎用于区块编码。
在本发明实施例中,所述系统包括若干纠删节点(即EC节点)和若干轻节点,每个个节点均与其他节点网络连接,所有节点共同构成区块链对等网络,所述纠删节点用于存储编码块数据,所述轻节点用于验证纠删节点的响应数据是否正确,更具体的每一个纠删节点均包括:客户端、数据读取模块、解码引擎、编码引擎、共识算法模块,所述客户端用于接收外部请求,所述外部请求包括读取区块数据的请求和提交交易的请求,其中提交交易的请求直接转发至共识算法模块,读取区块数据的请求转发至数据读取模块;所述数据读取模块用于读取区块数据;所述解码引擎用于接收解码指令解码恢复目标数据块;所述共识算法模块用于交易数据的共识和区块数据的打包;所述编码引擎用于区块编码。
轻节点包含客户端,能接收数据块查询请求,轻节点相比纠删节点,只保留区块链的区块头部信息,除此之外不存储其他信息。区块头部信息数据量不大,但是能被轻节点用来校验它获取的块是否是有效。由于轻节点不保留本地数据块,当用户通过轻节点而非纠删节点访问数据时,轻节点仍可以通过远程读取和解码读取来获得目标数据块。此外,由于轻节点也没有共识协议那部分,所以不需要参与交易的共识和打包,它的区块头信息是从附近的纠删节点上同步过来的,即使当它的客户端收到交易的请求也只是转发给附近的纠删节点。
进一步的,所述数据读取模块包括:本地读取单元、远程读取单元、解码读取单元;当目标数据在节点本地则通过本地读取单元进行数据的读取,当目标数据在临近节点则通过远程读取单元读取,当持有目标数据的节点已失效,则解码读取单元发送指令至解码引擎单元,解码引擎通过网络从邻近的纠删节点中拉取足够数量的区块,然后解码恢复出目标数据。
如图2所示,本发明第二方面提供了一种面向区块链域名解析的纠删码低开销存储方法,所述方法应用于所述的面向区块链域名解析的纠删码低开销存储系统,包括以下步骤:
客户端接收提交交易请求,并将请求转发至共识算法模块;
共识算法模块进行交易数据的共识,并将交易数据打包成区块;
当累计的区块数等于预设的区块数阈值则发送编码指令至编码引擎;
编码引擎接收指令并对区块进行纠删码编码存储同时向网络中的所有纠删节点广播,完成编码后的共识。
在本发明实施例中,客户端接收提交交易请求,并将请求转发至共识算法模块;共识算法模块进行交易数据的共识,并将交易数据打包成区块;共识算法模块对节点累积的区块进行计数,当累计的区块数等于预设的区块数阈值则发送编码指令至编码引擎;编码引擎接收指令并对区块进行纠删码编码存储同时向网络中的所有纠删节点广播当前节点编码执行状态,完成编码后的共识。
进一步的,所述编码引擎的编码过程为:
接收编码指令启动编码,将纠删节点累积的区块进行编码并得到校验块;
根据节点自身IP地址所处的排列序号选择需要保存的编码块。
在具体的实施例中,例如当区块数阈值为4时,则当纠删节点累积4个区块,则编码引擎进行编码同时生成2个校验块,然后将编码后的信息在节点之间广播,达成编码后的共识。如图3所示,对4个区块采用RS(4,2)编码,得到6个编码块,其中4个数据块,2个校验块,若当前纠删节点的IP地址排列序号为1,则保存序号为1的编码块,若当前纠删节点的IP地址排列序号为2,则保存序号为2的编码块,通过纠删码机制,对于4个区块的数据,每个节点之需保存1个区块大小的数据,而无需像全副本的方式保存4个区块,降低了存储空间开销占用。
进一步的,所述方法还包括区块数据的读取,具体步骤为:
客户端接收数据读取请求,并将数据读取指令发送至数据读取模块;
数据读取模块根据目标数据的状态进行执行读取动作。
进一步的,所述数据读取模块根据目标数据的状态进行执行读取动作具体步骤为:
若目标数据在节点本地则通过本地读取单元进行数据的读取,若目标数据在临近节点则通过远程读取单元读取,若持有目标数据的节点已失效,则解码读取单元发送指令至解码引擎单元,解码引擎通过网络从邻近的纠删节点中拉取足够数量的区块,然后解码恢复出目标数据。
进一步的,所述编码引擎采用RS(4,2)纠删码。
需要说明的是,在本发明实施例中,编码引擎采用RS(4,2)纠删码,即总共有6个节点,采用RS(4,2)纠删码进行每一轮编码得到6个编码块,其中包括有4个数据块和2个校验块。其中对于每个纠删节点而言,节点在自身的存储空间中累积一组区块,节点存储区块数的数及区块数阈值通过网络中的节点数和纠删编码方式确定。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种面向区块链域名解析的纠删码低开销存储系统,其特征在于,包括若干纠删节点和若干轻节点,每个节点均与其余节点网络连接,其中每个纠删节点均包括:客户端、数据读取模块、解码引擎、编码引擎、共识算法模块,所述客户端用于接收外部请求;所述数据读取模块用于读取区块数据;所述解码引擎用于接收解码指令解码恢复目标数据块;所述共识算法模块用于交易数据的共识和区块数据的打包;所述编码引擎用于区块编码。
2.根据权利要求1所述的一种面向区块链域名解析的纠删码低开销存储系统,其特征在于,所述数据读取模块包括:本地读取单元、远程读取单元、解码读取单元;当目标数据在节点本地则通过本地读取单元进行数据的读取,当目标数据在临近节点则通过远程读取单元读取,当持有目标数据的节点已失效,则解码读取单元发送指令至解码引擎单元,解码引擎通过网络从邻近的纠删节点中拉取足够数量的区块,然后解码恢复出目标数据。
3.根据权利要求1所述的一种面向区块链域名解析的纠删码低开销存储系统,其特征在于,所述纠删节点用于存储编码块数据,所述轻节点用于验证纠删节点的响应数据是否正确。
4.一种面向区块链域名解析的纠删码低开销存储方法,所述方法应用于如权利要求1-3任一项所述的面向区块链域名解析的纠删码低开销存储系统,其特征在于,包括以下步骤:
客户端接收提交交易请求,并将请求转发至共识算法模块;
共识算法模块进行交易数据的共识,并将交易数据打包成区块;
当累计的区块数等于预设的区块数阈值则发送编码指令至编码引擎;
编码引擎接收指令并对区块进行纠删码编码存储同时向网络中的所有纠删节点广播当前节点编码执行状态,完成编码后的共识。
5.根据权利要求4所述的一种面向区块链域名解析的纠删码低开销存储方法,其特征在于,所述编码引擎的编码过程为:
接收编码指令启动编码,将纠删节点累积的区块进行编码并得到校验块;
根据节点自身IP地址所处的排列序号选择需要保存的编码块。
6.根据权利要求4所述的一种面向区块链域名解析的纠删码低开销存储方法,其特征在于,所述方法还包括区块数据的读取,具体步骤为:
客户端接收数据读取请求,并将数据读取指令发送至数据读取模块;
数据读取模块根据目标数据的状态进行执行读取动作。
7.根据权利要求6所述的一种面向区块链域名解析的纠删码低开销存储方法,其特征在于,所述数据读取模块根据目标数据的状态进行执行读取动作具体步骤为:
若目标数据在节点本地则通过本地读取单元进行数据的读取,若目标数据在临近节点则通过远程读取单元读取,若持有目标数据的节点已失效,则解码读取单元发送指令至解码引擎单元,解码引擎通过网络从邻近的纠删节点中拉取足够数量的区块,然后解码恢复出目标数据。
8.根据权利要求4所述的一种面向区块链域名解析的纠删码低开销存储方法,其特征在于,所述编码引擎采用RS(4,2)纠删码。
9.根据权利要求8所述的一种面向区块链域名解析的纠删码低开销存储方法,其特征在于,采用RS(4,2)纠删码进行每一轮编码得到6个编码块,其中包括有4个数据块和2个校验块。
10.根据权利要求4所述的一种面向区块链域名解析的纠删码低开销存储方法,其特征在于,所述的区块数阈值通过网络中的节点数和纠删编码方式确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111321710.0A CN114047878A (zh) | 2021-11-09 | 2021-11-09 | 一种面向区块链域名解析的纠删码低开销存储系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111321710.0A CN114047878A (zh) | 2021-11-09 | 2021-11-09 | 一种面向区块链域名解析的纠删码低开销存储系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114047878A true CN114047878A (zh) | 2022-02-15 |
Family
ID=80207815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111321710.0A Pending CN114047878A (zh) | 2021-11-09 | 2021-11-09 | 一种面向区块链域名解析的纠删码低开销存储系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047878A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385761A (zh) * | 2022-03-23 | 2022-04-22 | 支付宝(杭州)信息技术有限公司 | 一种基于共识系统的共识数据存储、获取方法及装置 |
CN114866561A (zh) * | 2022-05-03 | 2022-08-05 | 中国人民解放军国防科技大学 | 一种组合本地纠删码联盟链存储方法及系统 |
-
2021
- 2021-11-09 CN CN202111321710.0A patent/CN114047878A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385761A (zh) * | 2022-03-23 | 2022-04-22 | 支付宝(杭州)信息技术有限公司 | 一种基于共识系统的共识数据存储、获取方法及装置 |
CN114385761B (zh) * | 2022-03-23 | 2022-07-12 | 支付宝(杭州)信息技术有限公司 | 一种基于共识系统的共识数据存储、获取方法及装置 |
CN114866561A (zh) * | 2022-05-03 | 2022-08-05 | 中国人民解放军国防科技大学 | 一种组合本地纠删码联盟链存储方法及系统 |
CN114866561B (zh) * | 2022-05-03 | 2023-09-01 | 中国人民解放军国防科技大学 | 一种组合本地纠删码联盟链存储方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114047878A (zh) | 一种面向区块链域名解析的纠删码低开销存储系统及方法 | |
US11531593B2 (en) | Data encoding, decoding and recovering method for a distributed storage system | |
CN101834899B (zh) | 一种分布式自适应编码存储方法 | |
US9170882B2 (en) | Retrieving data segments from a dispersed storage network | |
CN102937967B (zh) | 数据冗余实现方法及装置 | |
US20040117722A1 (en) | Performance of communication systems using forward error correction | |
JP2007206993A (ja) | ストレージシステム、制御方法及びプログラム | |
WO2010133080A1 (zh) | 基于(d,k)摩尔图的网络存储结构的数据存储方法 | |
WO1993018589A1 (en) | Data recovery after error correction failure | |
CN112000512B (zh) | 一种数据修复方法及相关装置 | |
EP1678616A2 (en) | Methods of reading and writing data | |
CN111444042A (zh) | 一种基于纠删码的区块链数据存储方法 | |
CN103544270B (zh) | 面向数据中心的通用化网络编码容错存储平台及工作方法 | |
CN112380383B (zh) | 一种实时视频流数据的容错索引方法 | |
WO2024098647A1 (zh) | 一种校验码恢复方法、系统、电子设备及存储介质 | |
CN106027638B (zh) | 一种基于混合编码的hadoop数据分发方法 | |
CN110895497B (zh) | 一种分布式存储中降低纠删码修复的方法及装置 | |
KR20120112981A (ko) | 데이터 프레임의 재전송 감소 방법 및 이를 위한 수신 노드 | |
EP3896881B1 (en) | Harq data storage management method and device and harq data buffer | |
CN106911793B (zh) | I/o优化的分布式存储数据修复方法 | |
CN113886115B (zh) | 一种基于车路协同的区块链拜占庭容错方法及系统 | |
CN115756947A (zh) | 分布式数据存储系统的数据一致性校验方法、装置及系统 | |
CN114138526A (zh) | 一种面向内存键值纠删码的混合数据更新方法及存储系统 | |
CN113517896A (zh) | 相位调制型全息存储系统的编码/译码方法、设备及系统 | |
CN114866561B (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 |