掌桥专利:专业的专利平台
掌桥专利
首页

分布式账本数据存储优化方法、装置、电子设备及介质

文献发布时间:2023-06-19 11:05:16


分布式账本数据存储优化方法、装置、电子设备及介质

技术领域

本发明涉及数据存储优化技术领域,更具体的说是涉及一种分布式账本数据存储优化方法、装置、电子设备及介质。

背景技术

目前,随着比特币的蓬勃发展,比特币交易数量越来越多,而单个区块体积有1MB的最大值限制,使得区块空余空间显得越来越小。如今比特币的数据存储量已经超过250G,并以每年至少50G的速度增长,而以太坊的数据存储量更加庞大,已经超过1T。因此,分布式账本技术激增的数据存储量限制了轻量级节点的加入,也进一步阻碍了各类应用的落地。

传统的分布式账本数据存储优化采用区分全节点和轻节点存储不同体量的分布式账本数据实现,其中全节点全量存储所有数据备份,需要消耗巨大的存储开销。轻节点只存储区块头,支持可验证查询,但存在所支持的查询类型有限的缺点。同时,此方案仍存在以下缺点:全节点的数据存储开销过大,限制了分布式账本的扩张;轻节点的存在降低了网络的去中心化程度;整体系统的存储能力受单点限制。此外,所有节点全量保存数据副本的分布式账本模型中存在的安全漏洞引发的数据泄露事件也屡见不鲜。不难发现,现有的分布式账本模型中大量数据备份所带来的数据冗余和存储资源浪费现场严重,且安全性也难以保证。

因此,如何提供一种能够节省存储空间、减轻数据冗余和存储资源浪费现象的分布式账本数据存储优化方法是本领域技术人员亟需解决的问题。

发明内容

有鉴于此,本发明提供了一种分布式账本数据存储优化方法、装置、电子设备及介质,有效解决了传统的分布式账本数据存储优化方式因分布式账本模型中大量数据备份所带来的数据冗余和存储资源浪费现象严重的问题。

为了实现上述目的,本发明采用如下技术方案:

第一方面,本发明提供了一种分布式账本数据存储优化方法,该方法包括:

接收用户客户端发送的交易请求,并根据所述交易请求上送交易数据至分布式账本进行记账;

根据分布式账本中记账节点的硬件属性构建共识单元,所述共识单元对所有分布式账本的记账节点进行网络通信层划分;

通过分布式账本中记账节点收集并打包所述交易数据,并通过纠删码计算新增交易数据的冗余块;

当出现数据争议时,所述共识单元内记账节点将原始数据块与所述冗余块拼接,并进行纠删码解码,恢复完整的交易数据;

当有新增分布式账本节点时,仅所述共识单元内记账节点重新进行纠删码编码。

进一步地,所述交易数据包括交易发起者信息、交易接收者信息以及交易基本信息;

所述交易发起者信息包括发起者的钱包公钥地址、私钥信息以及交易金额,所述交易接收者信息包括接受者的钱包公钥地址和找零金额,所述交易基本信息包括交易时间戳和交易手续费。

进一步地,构建共识单元的过程,具体包括:

获取分布式账本中记账节点的硬件属性,这里的硬件属性包括存储性能和平均通信时延等信息;

基于网络分片思想,根据分布式账本中记账节点的硬件属性构建共识单元;

将所述共识单元内所有记账节点保存成一条完整的区块链;

通过投票从所述共识单元中选择一个主节点,所述主节点用于接收交易请求并返回响应结果,还用于进行区块传播;

所述共识单元中除主节点以外的其他节点仅存储所有区块的区块头以及部分完整区块体,用于执行共识验证及审计智能合约。

进一步地,所述主节点接收交易请求并返回响应结果的过程,具体包括:

用户发起分布式账本数据查询请求,并封装成Request-Ledger Data报文形式;

主节点接收所述Request-Ledger Data报文;

主节点完整保存所有数据,并返回分布式账本数据查询结果。

更进一步地,上述主节点接收交易请求并返回响应结果的过程还包括:

当主节点宕机或超时时,则重新投票选取新的主节点,共识单元内所有记账节点重新进行纠删码编码以及纠删码解码。

进一步地,当出现数据争议时,所述共识单元内记账节点将原始数据块与所述冗余块拼接,并进行纠删码解码,恢复完整的交易数据之后,还包括:

对当前共识单元中主节点返回的数据进行审计验证,并将审计验证结果进行广播共识。

本发明中数据争议的情况主要指当前共识单元中的主节点与其他共识单元的主节点返回数据无法达成共识,这时,当前共识单元所有节点执行纠删码解码算法,对当前主节点返回的数据进行审计验证,审计验证流程通过执行审计智能合约实现,最后将审计结果进行广播共识。

同时,在预置的审计合约执行完成后,需要对数据返回结果进行再次确认,如果结果出现异常,则共识单元节点执行纠删码解码算法之后执行共识机制,重新返回经过共识的请求结果,对有异常的节点还会进行预置的货币奖励与惩罚机制。

进一步地,在进行纠删码解码前,还包括:通过动态自适应调整冗余块的个数;

通过动态自适应调整冗余块的个数的过程,具体包括:

统计计算当前共识单元中的历史数据缺失率,根据所述历史数据缺失率利用深度学习算法预测一个时间窗口(该窗口可动态调整,默认为1周)内的数据缺失率;

根据预测得到的数据缺失率确定冗余块的大小,选择最小的冗余块个数,以保证在最小计算量的情况下进行纠删码解码。

第二方面,本发明还提供了一种分布式账本数据存储优化装置,该装置包括:

请求接收模块,用于接收用户客户端发送的交易请求,并根据所述交易请求上送交易数据至分布式账本进行记账;

共识构建模块,用于根据分布式账本中记账节点的硬件属性构建共识单元,所述共识单元对所有分布式账本的记账节点进行网络通信层划分;

冗余计算模块,用于通过分布式账本中记账节点收集并打包所述交易数据,并通过纠删码计算新增交易数据的冗余块;

数据争议处理模块,用于在出现数据争议时,所述共识单元内记账节点将原始数据块与所述冗余块拼接,并进行纠删码解码,恢复完整的交易数据;

新增节点处理模块,用于在有新增分布式账本节点时,仅所述共识单元内记账节点重新进行纠删码编码。

第三方面,本发明还提供了一种电子设备,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序实现上述的分布式账本数据存储优化方法。

第四方面,本发明还提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的分布式账本数据存储优化方法。

经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种分布式账本数据存储优化方法、装置、电子设备及介质,通过构建共识单元,并保证共识单元中只有主节点保存分布式账本数据的完整备份,其他节点通过纠删码编码之后只保存少量数据信息,节省了存储空间;该方法支持轻量级节点参与至共识单元中,共识单元之间构成了分布式记账的网络实体;共识单元之间以实用拜占庭容错(Practical Byzantine FaultTolerance,简称PBFT)共识算法实现通信(但不限于PBFT),达成共识一致,保证分布式账本内容的抗篡改和抗抵赖属性,可以至少部分克服现有技术中使用纠删码编码解码方法导致的大量节点的计算开销,也可以减轻由于数据量大对分布式缓存造成的大量数据冗余影响。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明提供的一种分布式账本数据存储优化方法的实现流程示意图;

图2为本发明实施例中分布式账本数据存储优化方法实现原理示意图;

图3为本发明实施例中区块存储及纠删码编码的实现原理示意图;

图4为本发明实施例中区块传播机制的实现原理示意图;

图5为本发明提供的一种分布式账本数据存储优化装置的结构架构示意图;

图6为本发明提供的一种电子设备的结构构架示意图;

图7为本发明提供的一种计算机可读介质的结构架构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

第一方面,参见附图1,本发明实施例公开了一种分布式账本数据存储优化方法,该方法包括:

S1:接收用户客户端发送的交易请求,并根据交易请求上送交易数据至分布式账本进行记账。

S2:根据分布式账本中记账节点的硬件属性构建共识单元,共识单元对所有分布式账本的记账节点进行网络通信层划分。

S3:通过分布式账本中记账节点收集并打包交易数据,并通过纠删码计算新增交易数据的冗余块。

S4:当出现数据争议时,共识单元内记账节点将原始数据块与冗余块拼接,并进行纠删码解码,恢复完整的交易数据。

S5:当有新增分布式账本节点时,仅共识单元内记账节点重新进行纠删码编码。

更优地,在进行纠删码解码前,还可以包括:S6:通过动态自适应调整冗余块的个数;

通过动态自适应调整冗余块的个数的过程,具体包括:

首先,统计计算当前共识单元中的历史数据缺失率,根据历史数据缺失率利用深度学习算法预测一个时间窗口(该窗口可动态调整,默认为1周)内的数据缺失率;

其次,根据预测得到的数据缺失率确定冗余块的大小,选择最小的冗余块个数,以保证在最小计算量的情况下进行纠删码解码。

更优地,S4执行完之后,还可以包括:

S7:对当前共识单元中主节点返回的数据进行审计验证,并将审计验证结果进行广播共识。

参见附图2,对整个方法的工作流程说明如下:

交易发起者产生待上链的交易数据,通过接收者公钥进行加密后发送给区块链网络。主节点接受交易请求,并将交易数据通过Gossip协议进行广播,其他节点进行共识之后,将交易数据保存在区块链上。当触发账本数据压缩智能合约后,区块链网络中的轻节点通过纠删码编码算法进行数据压缩,主节点保留全量账本数据。通过划分共识单元,避免每次新加入节点需要全网节点运行纠删码解码算法的弊端,从而降低全网节点的计算开销。区块链网络中的节点保存区块数据与状态数据,支持智能合约与共识机制,实现了高效的分布式账本数据的存储与查询机制。

本实施例中纠删码编码、解码进行数据压缩、恢复的实现过程如下:

第一步:将n个原始的数据块通过计算,得到m个冗余块(即校验块),通常采用范德蒙矩阵或柯西矩阵,满足任意行矩阵的可逆性要求;

第二步:将m个冗余块追加至n个原始的数据块结尾,执行纠删码编码算法;

第三步:当有新节点加入时需要重新执行纠删码编码算法;

第四步:重编码协议确保所有节点完成一轮编码完成后再进行下一轮编码,保证数据的可用性;

第五步:当这n+m个数据块中的任意m块出错或删除,均可通过纠删码解码算法复原n个原始数据块;纠删码解码算法用于恢复完整数据,仅供数据争议时审计使用。

上述实施例中提到的交易数据,包括交易发起者信息、交易接收者信息以及交易基本信息;

交易发起者信息包括发起者的钱包公钥地址、私钥信息以及交易金额,交易接收者信息包括接受者的钱包公钥地址和找零金额,交易基本信息包括交易时间戳和交易手续费。

具体地,本实施例中交易区块数据具体包括区块头和区块体。区块头包括:上一区块的Hash值、时间戳、区块体Hash、Merkle根。区块体包括:交易分布式ID、交易发起者公钥、交易接受者公钥、交易金额、找零金额等。

具体地,上述构建共识单元的过程,具体包括:

第一步:获取分布式账本中记账节点的硬件属性,这里的硬件属性包括存储性能和平均通信时延等信息;

第二步:基于网络分片思想,根据分布式账本中记账节点的硬件属性构建共识单元;

第三步:共识单元内所有记账节点保存一条完整的区块链;

第四步:通过投票从共识单元中选择一个主节点,主节点用于接收交易请求并返回响应结果,还用于进行区块传播;

第五步:共识单元中除主节点以外的其他节点仅存储所有区块的区块头以及部分完整区块体,用于执行共识验证及审计智能合约。

具体地,主节点接收交易请求并返回响应结果的过程,具体包括:

第一步:用户发起分布式账本数据查询请求,并封装成Request-Ledger Data报文形式;

第二步:主节点负责接收Request-Ledger Data报文;

第三步:主节点完整保存所有数据,无需执行纠删码解码操作既可返回分布式账本数据查询结果。

具体地,上述主节点接收交易请求并返回响应结果的过程还包括:

第四步:当主节点宕机或超时时,则重新投票选取新的主节点,共识单元内所有记账节点重新进行纠删码编码以及纠删码解码。

如图3所示,其中全量区块k包括区块头和区块体,区块头记录上一区块Hash,区块打包的时间戳、Merkle根,区块体记录交易数据的Merkle树。当触发纠删码编码算法之后,节点根据共识单元内节点数量与交易数据访问频率,优先选择访问频率较低的数据块进行删除操作后,形成压缩后的区块k,压缩后的数据需保证共识单元内所有节点保存一份完整的全量账本数据。

如图4所示,当主节点出现宕机或者有新增节点加入时需要执行纠删码解码算法。当主节点出现宕机时,共识单元内的轻节点运行纠删码解码算法,恢复纠删码编码后删除的数据块,此时每个节点都有全量账本数据,可以帮助主节点完成共识流程。当有新增节点加入指定的共识单元时,轻节点首先运行纠删码解码算法恢复全量账本数据,然后根据新增节点数量与数据块访问频率重新执行纠删码解码算法,完成全量账本数据的压缩。

本实施例中用户交易数据需要打包成区块数据格式提交并永久记录在分布式账本中,其中交易数据记录在分布式账本的过程如下:

第一步:根据分布式账本节点的硬件属性进行分片划分共识单元,并投票选举主节点;

第二步:主节点接收分布式账本交易记账请求,并与其他共识单元中的主节点执行共识算法;

第三步:如果共识通过,则主节点返回分布式记账结果,如果失败,则执行第四步;

第四步:共识单元间发生数据冲突,则共识单元所有节点运行纠删码解码算法,恢复数据,执行审计职能合约,获得审计结果。

由于当前分布式账本技术中的数据存储量正以爆发式的速度增长,海量信息对存储系统提出了挑战,特别是现有的分布式账本模型中要求所有节点全量存储所有数据备份,更增加了节点的存储开销以及存储介质中存在的扇区错误。为了提高存储资源的利用率,本实施例结合传统数据库中使用到的存储容错技术,通过增加冗余信息查找并恢复没有全量存储的数据,不仅节省了存储空间,当需要使用全量数据确认时,可以通过纠删码等容错技术恢复全量数据。

在本实施例中,分布式账本的共识验证包括对交易数据区块头和区块体信息的校验,区块头信息中包含上一区块的Hash值和当前区块的时间戳信息,当接收到新的分布式账本记账请求时,共识单元的主节点将交易信息打包并广播该交易信息。

所有共识单元中的主节点执行共识算法,一般采用实用拜占庭容错共识算法(Practical Byzantine Fault Tolerance,简称PBFT)。当新的交易区块生成之后,主节点完成区块数据追加,并在共识单元内部广播新的区块数据,共识单元其他节点获取新的区块数据,运行纠删码编码算法,删除冗余数据之后,更新当前状态。当主节点发生数据争议时,共识单元中的其他节点运行纠删码解码算法恢复数据,共识单元对内容进行共识,通常采用低挖矿难度的工作量证明算法实现,并触发审计智能合约,如果共识单元主节点宕机或信誉值低于阈值,则重新投票选举主节点。

该方法可以将分布式账本节点划分为共识单元,每当有新增节点时,只需要保证共识单元内容节点重新运行纠删码编码算法即可,降低了全量节点的计算开销,确保共识单元中的主节点保存分布式账本全量数据,而其他节点只需保存自己频繁访问的数据即可,一旦发生数据争议,共识单元内部节点运行纠删码解码算法之后,使用全量数据运行审计智能合约,确保存储数据的准确性。本发明提出的基于纠删码的分布式账本数据存储优化方式具有节省存储开销和计算开销、可审计、可追溯和不可篡改性。

第二方面,参见附图5,本发明实施例还公开了一种分布式账本数据存储优化装置,该装置包括:

请求接收模块11,用于接收用户客户端发送的交易请求,并根据交易请求上送交易数据至分布式账本进行记账;

共识构建模块12,用于根据分布式账本中记账节点的硬件属性构建共识单元,共识单元对所有分布式账本的记账节点进行网络通信层划分;

冗余计算模块13,用于通过分布式账本中记账节点收集并打包交易数据,并通过纠删码计算新增交易数据的冗余块;

数据争议处理模块14,用于在出现数据争议时,共识单元内记账节点将原始数据块与冗余块拼接,并进行纠删码解码,恢复完整的交易数据;

新增节点处理模块15,用于在有新增分布式账本节点时,仅共识单元内记账节点重新进行纠删码编码。

更优地,该装置还包括:冗余调整模块16,用于通过动态自适应调整冗余块的个数。冗余调整模块16主要通过动态自适应调整选择最小的冗余块个数,以保证在最小计算量的情况下进行纠删码解码。

更优地,该装置还包括:共识审计模块17,用于对当前共识单元中主节点返回的数据进行审计验证,并将审计验证结果进行广播共识。

该系统可以实现分布式账本模型的数据存储优化,通过纠删码编码和解码算法实现对冗余的删减和恢复,轻量级节点可以加入分布式账本模型的记账和局部共识过程中。当有新的节点加入分布式账本模型网络时,需要首先确定加入的共识单元,只有共识单元内部的节点重新执行纠删码的编码算法,通过此方案可以使轻量级节点加入小范围的共识单元,无需存储全量数据副本,仅保存访问频率较高的数据,并且通过纠删码解码算法可以短暂恢复全量数据进行共识验证,不仅保证了节点的参与性,而且无需长期保存全量数据副本,能够有效解决分布式账本模型中的数据存储优化和轻量级节点参与问题。

第三方面,参见附图6,本发明实施例还公开了一种电子设备,包括存储器21、处理器22以及存储在存储器21上并在处理器22上运行的计算机程序,处理器22执行计算机程序实现上述的分布式账本数据存储优化方法。

第四方面,参见附图7,本发明实施例还公开了一种计算机可读介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的分布式账本数据存储优化方法。

本实施例中提到的纠删码(Erasure Coding,简称EC)最初起源于通信传输领域,用于解决数据传输中的检错和纠错问题。后来逐渐用于数据存储系统中的数据冗余备份中,以提高存储系统的可靠性。但是纠删码的编码算法和重构算法都会导致庞大的计算开销,这是影响其广泛使用的瓶颈。尤其是在分布式账本模型中使用纠删码技术,每当有新增数据或者新增节点都需要所有分布式账本节点重新运行纠删码编码解码算法,因此造成了全量节点庞大的计算开销。

为此,本发明实施例公开的上述分布式账本数据存储优化方案,基于分布式账本中的交易数据进行打包分块,生成原始数据元素,通过纠删码编码计算,得到冗余元素,压缩原始数据(确保压缩内容块数小于冗余元素块数),通过纠删码解码算法恢复原始数据元素,为避免新加入节点运行纠删码编码解码的计算及时间复杂度,将分布式账本节点划分为共识单元,可以至少部分克服现有技术中使用纠删码编码解码方法导致的大量节点的计算开销,也可以减轻由于数据量大对分布式缓存造成的大量数据冗余影响。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 分布式账本数据存储优化方法、装置、电子设备及介质
  • 数据存储方法、数据存储装置、电子设备、存储介质
技术分类

06120112793240