The invention discloses a block chain piecewise storage and query method based on erasure code. When the block storage reaches a certain threshold, the block is stored piecewise. Firstly, the meta-information of block file fragmentation is agreed. After the consensus is reached, block files within the threshold are fragmented by erasure codes to form data blocks and check blocks. Each node stores a part of them, which reduces the storage cost and achieves data fault tolerance under Byzantine fault tolerance. In addition, when partitioning block files, the corresponding index is established. By using the index, the corresponding data blocks or check blocks can be queried from each node, which ensures that the block data can be efficiently queried under the condition of saving storage space.
【技术实现步骤摘要】
一种基于纠删码的区块链分片存储与查询方法
本专利技术属于区块链领域,涉及一种面向区块链的基于纠删码解决全副本存储的问题,将区块文件进行分片存储,不需要全副本存储并保证数据的容错,方便的将数据进行查询。
技术介绍
区块链作为一种分布式账本技术,已被各种应用程序采用,以实现多个参与者之间的信任连接,它能够以可验证的,永久的方式有效记录双方之间的交易,如国际结算、安全交易结算、食品配料的可追溯性等。为了确保不变性,每个块都与前一个块的哈希、时间戳和该块的Merkle哈希根的信息相关联。共识协议用于确保每个参与者记录的数据的一致性。但是目前区块链系统存在两个比较严重的问题:目前大多数区块链系统将区块数据存储在文件中,但由于区块链数据是全副本的属性,区块存储面临很大的压力。随着区块数量的不断增长积累,数据也会呈现出访问热度不同的巨大差异。例如一个区块链系统不断地写入最新的区块,但通常情况下最近写入的区块访问频率会比很久之前的区块高很多。如果无论数据冷热情况,都采用同样的存储策略,是对存储资源的一种浪费。如何根据区块冷热程度对区块链存储系统进行优化是一个亟待解决的问题。对此,用到了纠删码技术。纠删码技术(Erasurecoding)简称EC,是一种编码容错技术。最早用于通信行业,数据传输中的数据恢复。它通过对数据进行分块等到数据块,然后计算出校验块,使得各个部分的数据产生关联性。当一部分数据块丢失时,可以通过剩余的数据块和校验块计算出丢失的数据块。
技术实现思路
本专利技术的目的是提供了一种基于纠删码的区块链分片存储与查询方法,随着区块的不断增长,区块存储面临很大压力。该 ...
【技术保护点】
1.一种基于纠删码的区块链分片存储与查询方法,其特征在于,该方法包括以下具体步骤:步骤1:由主节点将冷数据的文件编号和分片元数据信息进行广播,来达成共识;步骤2:每个节点将区块文件分片生成数据块和校验块,依照共识内容保存一份对应的数据块或者校验块,并且持久化到磁盘,删除在先保存的区块文件;步骤3:建立索引;步骤4:查询区块时,通过传入的blockID,查询索引,读取出区块对应的数据块和校验块。
【技术特征摘要】
1.一种基于纠删码的区块链分片存储与查询方法,其特征在于,该方法包括以下具体步骤:步骤1:由主节点将冷数据的文件编号和分片元数据信息进行广播,来达成共识;步骤2:每个节点将区块文件分片生成数据块和校验块,依照共识内容保存一份对应的数据块或者校验块,并且持久化到磁盘,删除在先保存的区块文件;步骤3:建立索引;步骤4:查询区块时,通过传入的blockID,查询索引,读取出区块对应的数据块和校验块。2.根据权利要求1所述的区块链分片存储与查询方法,其特征在于,步骤1所述冷数据为:当区块高度M与上一次分片区块文件的最后一个区块的高度N的差值大于阈值T时,即N到M之间的区块文件视为冷数据。3.根据权利要求1所述的区块链分片存储与查询方法,其特征在于,所述步骤1具体包括:步骤A1:主节点识别N到M之间数据为冷数据;步骤A2:主节点将冷数据分片成数据块和校验块,保存每一块的Hash值;步骤A3:设置分片元数据信息:分片文件编号、每个节点保存的数据块或校验块和对应的hash值;步骤A4:主节点向区块链网络广播分片的元信息;步骤A5:区块链网络执行PBFT,达成共识。4.根据权利要求1所述的区块链分片存储与查询方法,所述步骤2具体...
【专利技术属性】
技术研发人员:王润,朱燕超,张召,金澈清,
申请(专利权)人:华东师范大学,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。