The invention discloses a state data storage, query and management method, a device and a storage medium, belonging to the block chain technical field. According to the key value of the index node before the block height hi \u2011 \u0394 Hb, a state data query method described above is used to query the index node before the block height hi \u2011 \u0394 HB; when the key value corresponds to several index nodes, the index node with the highest block height is reserved, and the other index nodes are deleted; where hi is the current block height and \u0394 Hb is the block rollback interval. In view of the problem that the index node in the prior art has redundant data, the technical scheme of the application does not need to traverse the key value of the entire index node to update the index node, manage the status data, improve the IO read-write ability and data throughput ability of the database.
【技术实现步骤摘要】
一种状态数据存储、查询和管理方法、设备及存储介质
本专利技术涉及区块链
,尤其涉及一种状态数据存储、查询和管理方法、设备及存储介质。
技术介绍
区块链运行时间越久,区块高度会越高,产生的区块数据越多,鉴于区块链分布式存储的特性,区块及区块内的默克尔树均存储在各个区块链节点本地的数据库中,占用较大的空间。其中,默克尔树占用空间最大,默克尔树上主要记录区块链的状态数据,如交易地址的账户余额等数据,而账户余额数据主要以最新数据为准,除去区块回滚因素需要查看区块回滚高度内的状态数据的历史数据外,状态数据的历史数据对于大多数区块链节点及节点上钱包的交易地址账户来说是无用的,同时随着区块的产生,状态数据的历史数据会不断积累,默克尔状态树的节点数目不断增加,受限于硬盘IO读写瓶颈,每次存储一个默克尔树节点或者读取一个默克尔树节点的数据时,都会降低区块链节点本地数据库的读写效率;同时也会占用较大磁盘存储空间,因此状态数据的历史数据成了冗余数据,占用区块链节点本地存储空间,亟待处理。中国专利技术专利申请,公开号:CN109684333A;公开日:2019.04.26;提供一种数据存储及裁剪方法、设备和存储介质,该方法包括:在本地数据库中存储第一默克尔树除根节点外的各节点的父节点信息;以及,在向第一默克尔树中插入第一叶子节点时,在本地数据库中存储对应于第一叶子节点的第一索引节点;其中,第一索引节点的第二键值包括第一叶子节点的第一键值、第一区块高度和第一哈希值;其中,第二键值用于查找与第一键值相同的若干索引节点和对应的叶子节点,父节点信息用于查找冗余的父节点。该专利技术通 ...
【技术保护点】
1.一种状态数据存储方法,其特征在于,适用于区块链节点,包括:将叶子节点所在的区块高度、叶子节点的键值、叶子节点哈希值放在一起,形成所述叶子节点对应的索引节点。
【技术特征摘要】
1.一种状态数据存储方法,其特征在于,适用于区块链节点,包括:将叶子节点所在的区块高度、叶子节点的键值、叶子节点哈希值放在一起,形成所述叶子节点对应的索引节点。2.根据权利要求1所述的方法,其特征在于,所述索引节点还包括所述叶子节点的默克尔状态树路径上的除根节点以外的中间节点哈希值。3.根据权利要求1所述的方法,其特征在于,所述叶子节点的键值为所述索引节点的键值,所述叶子节点所在的区块高度为所述索引节点的区块高度Hi,将所述键值相同的索引节点存储在一起。4.根据权利要求1所述的方法,其特征在于,所述索引节点还包括由区间号和标记号形成的前缀,所述区间号用以标识所述索引节点所在的区块裁剪区间ΔHi,所述标记号用以标识所述节点为索引节点。5.根据权利要求4所述的方法,其特征在于,所述的区块裁剪区间ΔHi范围为:[Hi-ΔH,Hi],其中,Hi为当前区块高度,ΔH为区块裁剪高度。6.一种状态数据查询方法,其特征在于,适用于区块链节点,根据键值查询权利要求1所述的一种状态数据存储方法中所述的索引节点,以查找所述键值所在的区块高度对应的叶子节点。7.根据权利要求6所述的方法,其特征在于,根据键值查询权利要求1所述的一种状态数据存储方法中所述的索引节点,以查找所述键值所在的区块高度对应的叶子节点,叶子节点哈希值,以及叶子节点的默克尔状态树路径上的中间节点哈希值,以验证或管理所述叶子节点哈希值。8.根据权利要求6所述的方法,其特征在于,所述的索引节点包含前缀,所述前缀由区间号和标记号形成,所述区间号用以标识所述索引节点所在的区块裁剪区间ΔHi,所述标记号用以标识所述节点为索引节点。9.根据权利要求8所述的方法,其特征在于,所述的区块裁剪区间ΔHi范围为:[Hi-ΔH,Hi],其中,Hi为当前区块高度,ΔH为区块裁剪高度。10.一种状态数据管理方法,其特征在于,适用于区块链节点,包括:根据区块高度Hi-ΔHB之前的索引节点的键值,采用权利要求6所述的一种状态数据查询方法查询区块高度Hi-ΔHB之前的索引节点;当所述键值对应若干个索引节点时,保留区块高度最高的索引节点,删除其余索引节点,及其对应的叶子节点;其中,Hi为当前区块高度,ΔHB为区块回滚区间。11.根据权利要求10所述的方法,其特征在于,包括:所述索引节点还包括...
【专利技术属性】
技术研发人员:柳宇航,王志文,吴思进,
申请(专利权)人:杭州复杂美科技有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。