一种基于增量桶的世界状态分片存储方法及装置制造方法及图纸

技术编号:32798984 阅读:22 留言:0更新日期:2022-03-23 20:03
本发明专利技术公开了一种基于增量桶的世界状态分片存储方法及装置,该方法将链上区块数据根据世代划分方式分片成若干世代,该方法主要包括世代管理、数据存储及数据查询三部分;世代管理部分主要负责世代的设置及世代的更迭、分发世代编号以及达到数据物理分隔的效果;数据存储部分主要负责世代内数据的增量存储,以及世界状态的实时更新;数据查询部分主要负责当前世代以及历史世代间的数据查询,利用世代内的独立布隆过滤器,可以达到快速检索数据的目的。本发明专利技术通过增量存储方式可以有效分散存储压力,还可以将热点数据富集至较新的世代中,在降低数据检索压力的同时,提高热点数据的查询效率。询效率。询效率。

【技术实现步骤摘要】
一种基于增量桶的世界状态分片存储方法及装置


[0001]本专利技术属于计算机系统领域,涉及区块链技术,尤其涉及一种基于增量桶的世界状态分片存储方法及装置。

技术介绍

[0002]区块链技术,也被称之为分布式账本技术,区块链系统能安全地储存数据,其储存的信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,并由共识算法保证其一致性。
[0003]世界状态是基于账户模型的区块链系统在交易执行完成后产生的状态信息总和,包含了区块链上所有账户以及智能合约的状态信息。因而,几乎所有的交易请求均会改变当前的世界状态。而每一个区块的交易执行后产生的世界状态又是下一区块的执行基础,即每个区块执行过程中均包含对当前世界状态的修改过程。
[0004]在基于账户模型的区块链系统中,节点之间除了保证交易内容和顺序的一致性之外,也要保证世界状态信息的一致性,以确保全部共识节点均已正确执行交易。将各节点同区块高度的世界状态哈希进行比对是目前一种较为高效的确保一致的方式。但由于世界状态树多是由默克尔桶树构成,而其具有计算代价高的缺点,因此,针对本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于增量桶的世界状态分片存储方法,其特征在于,所述方法包括:设置世代划分方式,将链上区块数据根据所述世代划分方式分片成若干世代;每个世代均拥有一个布隆过滤器、一棵世界状态树以及对应的增量桶,每个世代采用增量存储方式存储数据;当创建新世代时,区块链系统将当前世代的世界状态树全量复制到新世代,并创建对应的空增量桶及布隆过滤器,新世代中存储前一世代的世代编号作为索引依据,世代的遍历仅能从最新世代向前进行,将所创建的新世代设置为当前世代,完成世代更迭;当存储新数据时,区块链系统根据已设置的世代划分方式判断是否更迭世代;之后计算新数据在当前世代中的增量桶位置,以及所述增量桶中的存储地址,将新数据存储至对应存储地址中,并同步更新该新数据所在增量桶的桶哈希值及整个世界状态树,同时更新当前世代的布隆过滤器;当查询数据时,在当前世代中使用布隆过滤器进行数据过滤,若查询数据包含在当前世代内,则在当前世代内进行数据查询,并返回查询结果,若查询数据不包含在当前世代内,则依次向前遍历各世代,直到检索到查询数据或所有世代均被遍历。2.根据权利要求1所述的方法,其特征在于,所述世代划分方式包括:按照固定的区块间隔进行划分、按照固定的数据条数进行划分或者按照固定的数据容量进行划分。3.根据权利要求1所述的方法,其特征在于,各世代仅存储其自身世代内接收的数据以及自创世以来至其自身世代结束时的世界状态树。4.根据权利要求1所述的方法,其特征在于,各世代的布隆过滤器相互独立,且均能够持久化存储。5.根据权利要求1所述的方法,其特征在于,当接收到新数据后,计算该新数据的哈希值,并与该新数据所在增量桶的桶哈希值进行异或计算,得到新的桶哈希值,之后同步更新整个世界状态树。6.根据权利要求1所述的方法,其特征在于, 若已根据世代划分方式计算得到查询数据所在世代的世代编号,则通过该世代编号直接访问对应世代进行查询。7.根据权利要求1所述的方法,...

【专利技术属性】
技术研发人员:陈权龚明杰臧铖陈嘉俊
申请(专利权)人:浙商银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1