[发明专利]一种区块链状态数据存储方法、设备和存储介质有效
申请号: | 201910712853.0 | 申请日: | 2019-08-02 |
公开(公告)号: | CN110442580B | 公开(公告)日: | 2021-08-31 |
发明(设计)人: | 林敬;王志文;吴思进 | 申请(专利权)人: | 杭州复杂美科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/23;G06F16/27;G06Q20/38 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310000 浙江省杭州市西湖*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 区块 状态 数据 存储 方法 设备 介质 | ||
本发明提供一种区块链状态数据存储方法,包括:在执行第一区块中的各交易后,分别判断待存储的各项第一状态数据为终结状态或非终结状态:若第一状态数据为非终结状态,则将第一状态数据存入状态树;生成状态树的树根哈希;先删除终结状态,再计算状态树哈希根据终结状态的各项第一状态数据生成第一根哈希,根据第一根哈希更新终结状态数据根哈希;根据树根哈希和更新后的终结状态数据根哈希生成第一区块的区块高度的状态根哈希。本发明通过将本区块的第一根哈希和上一区块的终结状态数据根哈希结合生成本区块更新后的状态数据根哈希,减少了状态数据的存储量,提高了后续存储效率,查询效率。
技术领域
本申请涉及计算机技术领域,具体涉及一种区块链状态数据存储方法、设备和存储介质。
背景技术
随着区块链交易的增长,交易产生的状态数据也越来越多,继而存储的数据量越来越大,占用越来越多的存储空间,然而状态数据中有的非终结状态数据作用很大,如账户余额等,而有的终结状态数据,如交易订单本身完成后的数据,在不进行数据查询的时候一般用不到这类数据,这样就造成了大量该类数据占用资源的情况,同时,对于用户需要查询某区块高度的账户余额时,需要过滤掉大量的终结状态数据,导致查询效率大大降低。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种减少存储空间的区块链状态数据存储方法、设备和存储介质。
第一方面,本发明提供一种区块链状态数据存储方法,包括:
在执行第一区块中的各交易后,分别判断待存储的各项第一状态数据为终结状态或非终结状态:若第一状态数据为非终结状态,则将第一状态数据存入状态树;
生成状态树的树根哈希;先删除终结状态,再计算状态树哈希
根据终结状态的各项第一状态数据生成第一根哈希,根据第一根哈希更新终结状态数据根哈希;
根据树根哈希和更新后的终结状态数据根哈希生成第一区块的区块高度的状态根哈希;
删除终结状态的各项第一状态数据。
进一步,将终结状态的各项第一状态数据存储在若干节点的本地数据库中以供进行终结状态数据信息的查询。
进一步,根据第一根哈希更新终结状态数据根哈希包括:
获取第一区块的前一个区块高度的第二区块的终结状态根哈希、第一区块的第一根哈希;
根据第二区块的终结状态根哈希和第一根哈希再次哈希以更新第一区块的终结状态根哈希。
进一步,终结状态哈希值初始值为空。
第二方面,本发明还提供另一种区块链状态数据存储方法,包括:
在执行第一区块中的各交易后,分别判断待存储的各项第一状态数据为终结状态或非终结状态:
根据终结状态的各项第一状态数据生成第二根哈希;
将第二根哈希和非终结状态数据的各项第一状态数据哈希后存入状态树,并删除所述状态树中待存储的终结状态的各项第一状态数据对应的非终结状态数据;
生成状态数的树根哈希;删除终结状态的各项第一状态数据。
进一步,将终结状态的各项第一状态数据存储在若干节点的本地数据库中以供进行终结状态数据信息的查询。
第三方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的区块链状态数据存储方法。
第四方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的区块链状态数据存储方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州复杂美科技有限公司,未经杭州复杂美科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910712853.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置