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

一种低冗余区块链数据存储和检索方法及系统

文献发布时间:2023-06-19 11:52:33


一种低冗余区块链数据存储和检索方法及系统

技术领域

本发明属于区块链技术领域,具体涉及一种低冗余区块链数据存储和检索方法及系统、设备、存储介质。

背景技术

区块链本质上是一个分布式共享数据库,基于P2P网络、密码学、数据库等技术,在无需可信认证中心的情况下,实现数据的不可篡改、不可抵赖等性质。目前,区块链技术已成功应用于电子政务中的存证管理、互联网货币交易平台、数据交换与共享等领域,已经是政府、产业界和学术界备受关注的热点技术。

区块链采用P2P网络以全连接的方式将一个个对等节点连接起来,节点之间采取广播的方式传输数据,每个节点以链式结构同步分布式账本;采用MD5等方法提取账本数据的Hash摘要以防止账本数据被篡改,采用数字签名等方法确保账本数据不可抵赖;采用分布式数据库共识方法实现去中心化的节点间信任机制。

尽管区块链技术有着去中心化、不可篡改、不可抵赖等优点,然而传统的区块链仍然存在一些缺点:为了保障分布式账本的安全性和可靠性,所有节点需要同步存储相同的分布式账本,造成区块链网络中存在大量冗余数据,特别是面向大量节点、海量数据场景,不利用于区块链技术的广泛应用。=。

发明内容

有鉴于此,本发明提出了一种低冗余区块链数据存储和检索方法及系统、设备、存储介质,用于解决区块链网络中存在大量冗余数据的问题。

本发明第一方面,公开一种低冗余区块链数据存储和检索方法,所述方法包括:

对传统分布式账本进行重构,剔除账本数据部分,增加查询索引部分,构造低冗余区块数据结构;

基于Raft协议实现基于所述低冗余区块数据结构的区块链节点之间的上链共识机制;

领导者节点将账本区块上链后,保存数据至本地,并基于Hash散列函数从区块链网络中选取账本数据备份节点,发送备份数据至备份节点以进行备份存储,发送查询索引数据至其他所有节点以更新查询索引。

优选的,所述方法还包括:

当任意节点需要对账本数据进行溯源时,通过查询区块链上的查询索引数据获取账本数据存储节点的网络地址,并在存储节点的账本数据库中通过账本摘要检索账本数据。

优选的,所述低冗余区块数据结构包括时间戳、数字签名、账本摘要、查询索引;

所述时间戳是由区块链网络中的领导者节点记录系统时间;

所述数字签名是区块链网络中的领导者节点利用自己的私钥对节点的身份信息进行的数字签名;

所述账本摘要是将账本数据、时间戳、数字签名合并成一个区块文件,采用MD5算法提取区块文件的Hash摘要得到;

所述查询索是引通过索引结构存放领导者节点的本地网络地址和数据备份节点的网络地址。

优选的,所述基于Raft协议实现基于所述低冗余区块数据结构的区块链节点之间的上链共识机制具体包括:

当区块链网络中有节点需要发布账本数据时,基于Raft协议,通过随机投票方式选举出区块链网络中的领导者节点;

领导者节点生成时间戳、账本数据、数字签名和账本摘要,基于所述低冗余区块数据结构构造账本区块和账本数据一并广播给其他所有节点;

其他任意节点接收到账本区块以及账本数据后,进行合法性验证;其他任意节点进行合法性验证通过后向其他所有节点发送确认信息,除领导者节点外的其他节点当且仅当收到超过预设比例的节点的确认信息后,将账本区块上链,并舍弃账本数据。

优选的,所述领导者节点将账本区块上链后,保存数据至本地具体包括:

领导者节点当且仅当收到超过预设比例的节点的确认信息后,将账本区块上链,同时将账本数据及其账本摘要保存至本地账本数据库中,并建立一份账本数据备份。

优选的,所述基于Hash散列函数从区块链网络中选取账本数据备份节点,发送备份数据至备份节点以进行备份存储,发送查询索引数据至其他所有节点以更新查询索引具体包括:

领导者节点采用Hash散列函数在区块链网络中选取一个账本数据备份节点;

领导者节点将账本数据备份及账本摘要发送至备份节点进行存储;

领导者节点获取本地网络地址和备份节点网络地址并发送至其他所有节点,其他所有节点接收到后更新本地区块链上低冗余账本区块中的查询索引。

优选的,所述Hash散列函数为:

Hash(md5,N)=md5%(N-1)

其中md5为账本摘要,N为区块链网络的节点总数。

本发明第二方面,公开一种低冗余区块链数据存储和检索系统,所述系统包括:

区块重构模块:对传统分布式账本进行重构,剔除账本数据部分,增加查询索引部分,构造低冗余区块数据结构;

共识机制模块:基于Raft协议实现基于所述低冗余区块数据结构的区块链节点之间的上链共识机制;

备份存储模块:领导者节点将账本区块上链后,保存数据至本地,并基于Hash散列函数从区块链网络中选取账本数据备份节点,发送备份数据至备份节点以进行备份存储,发送查询索引数据至其他所有节点以更新查询索引。

分布式检索模块:当任意节点需要对账本数据进行溯源时,通过查询区块链上的查询索引数据获取账本数据存储节点的网络地址,并在存储节点的账本数据库中通过账本摘要检索账本数据。

本发明第三方面,公开一种电子设备,包括:至少一个处理器、至少一个存储器、通信接口和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以实现如本发明第一方面所述的方法。

本发明第四方面,公开一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机实现如本发明第一方面所述所述的方法。

本发明相对于现有技术具有以下有益效果:

1)本发明通过重构区块数据结构,保留时间戳、账本摘要、数字签名等结构,剔除冗余账本数据,并新增查询索引结构,该区块数据结构不包含账本数据,除领导者节点和数据备份节点外的任意节点确认账本数据的有效性后,即可删除账本数据,即每次数据上链仅有领导者节点和账本数据备份节点会存储数据,而其他节点不保存账本数据,能有效降低区块链网络中的存储冗余,从而保障区块链安全性的同时减少区块链网络中的数据冗余。

2)为了保障账本数据的可靠性,同时不影响分布式账本溯源,提出基于Raft协议和Hash散列的低冗余账本数据存储和检索方法,通过采用Raft协议实现数据上链、备份存储的共识机制,在区块链网络中随机散列存储账本数据备份,通过区块中的索引结构进行溯源,最终实现区块链低冗余数据存储。

附图说明

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

图1为本发明低冗余区块数据结构示意图;

图2为基于Raft协议和Hash散列的低冗余账本数据存储和检索工作流程图。

具体实施方式

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

本发明提出一种低冗余区块链数据存储和检索方法,所述方法包括:

S1、构造低冗余区块数据结构:对传统分布式账本进行重构,剔除账本数据部分,增加查询索引部分,构造低冗余区块数据结构;

请参阅图1,图1为本发明低冗余区块数据结构示意图,本发明对传统分布式账本进行重构,提取其中时间戳、账本摘要、数字签名等部分,剔除账本数据部分,并新增查询索引部分,从而构造一种新型区块数据结构,主要包含时间戳time、数字签名sign、账本摘要md5和查询索引index等。所述账本摘要包括当前区块MD5摘要以及父节点MD5摘要。

其中,时间戳time:由区块链网络中的领导者节点记录的系统时间,并记录在生成的数据区块文件中,用于记录账本生成时间;

数字签名sign:区块链网络中的领导者节点利用自己的私钥key

账本摘要md5:将账本数据data、时间戳time、数字签名sign合并成一个区块文件,采用MD5算法

查询索引index:通过新增的索引结构存放领导者节点的本地网络地址ip

账本区块数据结构即由上述时间戳time、数字签名sign、账本摘要md5和查询索引index的文本数据组成,表示为

请参阅图2,图2为本发明基于Raft协议和Hash散列的低冗余账本数据存储和检索工作流程示意图,对应于以下步骤S2、S3。

S2、基于Raft协议实现区块链节点共识:基于Raft协议实现基于所述低冗余区块数据结构的区块链节点之间的上链共识机制;

当区块链网络中有节点需要发布账本数据时,基于Raft协议,通过随机投票方式选举出区块链网络中的领导者节点;比如,随机投票方式选举时,超过1/2的节点通过则认为选举成功,重复选举直至选举成功为止。

领导者节点生成时间戳time、账本数据data,并生成数字签名sign和账本摘要md5,基于上述低冗余区块数据结构构造账本区块ledger,表示为ledger=generate(time,sign,md5,index),将ledger和账本数据data一并广播给其他所有节点,即广播

其他任意节点接收到账本区块以及账本数据后,进行合法性验证;具体的,所述合法性验证包括:从账本区块中提取时间戳time、数字签名sign、账本摘要md5,表示为(time,sign,md5)=Disassemble(ledger)。通过验证当前账本区块时间戳time

任意节点进行合法性验证通过后向其他所有节点发送确认信息,除领导者节点外的其他节点当且仅当收到超过预设比例的节点的确认信息后,将账本区块ledger上链,并舍弃账本数据data,表示为Onchain(ledger)。

本发明采用Raft协议实现区块链节点之间的共识机制,区块链网络中各节点通过投票机制选出临时领导节点,由领导节点构造低冗余账本区块(附上账本数据)

S3、基于Hash散列的随机备份存储:领导者节点将账本区块上链后,保存数据至本地,并基于Hash散列函数从区块链网络中选取账本数据备份节点,发送备份数据至备份节点以进行备份存储,发送查询索引数据至其他所有节点以更新查询索引。具体包括:

S31、领导者节点当且仅当收到超过预设比例的节点的确认信息后,将账本区块ledger上链Onchain(ledger),同时将账本数据data及其账本摘要md5保存至本地账本数据库中,表示为Store(ledger,md5),并建立一份账本数据备份data

S32、领导者节点采用Hash散列函数在区块链网络中选取一个账本数据备份节点;所述Hash散列函数为:

Hash(md5,N)=md5%(N-1)

其中md5为账本摘要,N为区块链网络的节点总数。

S33、选取出账本数据备份节点后,领导者节点将账本数据备份data

S34、发送至备份节点进行存储的同时,领导者节点获取本地网络地址ip

本发明通过Hash散列的随机备份存储,当领导节点收到一半以上的节点反馈确认信息后,将账本数据及其账本摘要保存至本地的账本数据库中,并建立一份账本数据备份。领导节点采用Hash散列函数在区块链网络中选取一个账本数据备份节点,并将账本账本数据备份及账本摘要发送至备份节点进行存储。领导节点获得本地网络地址和备份节点网络地址,一并发送至其他所有节点,所有节点随后更新低冗余账本区块中查询索引部分。因为每次数据上链仅有领导者节点和账本数据备份节点会存储数据,而其他节点不保存账本数据,所以能有效降低区块链网络中的存储冗余。

S4、分布式账本检索:当任意节点需要对账本数据进行溯源时,通过提取区块链上的查询索引数据获取账本数据存储节点的网络地址ip

如果被查询的存储节点出现故障或存在其他安全问题,则可以查询备份节点的账本数据库。

与上述方法实施例相对应,本发明还提出一种低冗余区块链数据存储和检索系统,所述系统包括:

区块重构模块:对传统分布式账本进行重构,剔除账本数据部分,增加查询索引部分,构造低冗余区块数据结构;

共识机制模块:基于Raft协议实现基于所述低冗余区块数据结构的区块链节点之间的上链共识机制;

备份存储模块:领导者节点将账本区块上链后,保存数据至本地,并基于Hash散列函数从区块链网络中选取账本数据备份节点,发送备份数据至备份节点以进行备份存储,发送查询索引数据至其他所有节点以更新查询索引。

分布式检索模块:当任意节点需要对账本数据进行溯源时,通过查询区块链上的查询索引数据获取账本数据存储节点的网络地址,并在存储节点的账本数据库中通过账本摘要检索账本数据。

以上系统实施例是与方法实施例相对应的,方法实施例简述之处请参阅方法实施例即可。

本发明还公开一种电子设备,包括:至少一个处理器、至少一个存储器、通信接口和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以实现本发明前述的低冗余区块链数据存储和检索方法方法。

本发明还公开一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机实现本发明实施例所述低冗余区块链数据存储和检索方法方法的全部或部分步骤。所述存储介质包括:U盘、移动硬盘、只议存储器ROM、随机存取存储器RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以分布到多个网络单元上。可以根据实际的衙要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种低冗余区块链数据存储和检索方法及系统
  • 一种区块链数据存储和检索方法、装置、设备及存储介质
技术分类

06120113083939