The invention provides a blockchain state data storage method, which includes: after executing each transaction in the first block, judge each first state data to be stored as the end state or non end state respectively: if the first state data is non end state, store the first state data in the state tree; generate the tree root hash of the state tree; delete the end state first, and then calculate the state The tree hash generates the first hash according to the first state data of the end state, updates the end state data root hash according to the first hash, and generates the state root hash of the block height of the first block according to the tree root hash and the updated end state data root hash. The invention reduces the storage amount of state data, improves the subsequent storage efficiency and query efficiency by combining the first hash of the block with the end state data root hash of the previous block to generate the updated state data root hash of the cost block.
【技术实现步骤摘要】
一种区块链状态数据存储方法、设备和存储介质
本申请涉及计算机
,具体涉及一种区块链状态数据存储方法、设备和存储介质。
技术介绍
随着区块链交易的增长,交易产生的状态数据也越来越多,继而存储的数据量越来越大,占用越来越多的存储空间,然而状态数据中有的非终结状态数据作用很大,如账户余额等,而有的终结状态数据,如交易订单本身完成后的数据,在不进行数据查询的时候一般用不到这类数据,这样就造成了大量该类数据占用资源的情况,同时,对于用户需要查询某区块高度的账户余额时,需要过滤掉大量的终结状态数据,导致查询效率大大降低。
技术实现思路
鉴于现有技术中的上述缺陷或不足,期望提供一种减少存储空间的区块链状态数据存储方法、设备和存储介质。第一方面,本专利技术提供一种区块链状态数据存储方法,包括:在执行第一区块中的各交易后,分别判断待存储的各项第一状态数据为终结状态或非终结状态:若第一状态数据为非终结状态,则将第一状态数据存入状态树;生成状态树的树根哈希;先删除终结状态,再计算状态树哈希根据终结状态的各项第一状态数据生成第一根哈希,根据第一根哈希更新终结状态数据根哈希;根据树根哈希和更新后的终结状态数据根哈希生成第一区块的区块高度的状态根哈希;删除终结状态的各项第一状态数据。进一步,将终结状态的各项第一状态数据存储在若干节点的本地数据库中以供进行终结状态数据信息的查询。进一步,根据第一根哈希更新终结状态数据根哈希包括:获取第一区块的前一个区块高度的第二区块的终结状态根哈希、第一区块的第一根哈希;根据第二区块的终结状态根哈希和第一根哈希再次哈希以更新第一区块的终结状态根哈希。 ...
【技术保护点】
1.一种区块链状态数据存储方法,其特征在于,所述方法包括:在执行第一区块中的各交易后,分别判断待存储的各项第一状态数据为终结状态或非终结状态:若所述第一状态数据为非终结状态,则将所述第一状态数据存入状态树;否则,删除所述状态树中对应的非终结状态的状态数据;生成所述状态树的树根哈希;根据终结状态的各项第一状态数据生成第一根哈希,根据所述第一根哈希更新终结状态数据根哈希;根据所述树根哈希和更新后的终结状态数据根哈希生成所述第一区块的区块高度的状态根哈希;删除所述终结状态的各项第一状态数据。
【技术特征摘要】
1.一种区块链状态数据存储方法,其特征在于,所述方法包括:在执行第一区块中的各交易后,分别判断待存储的各项第一状态数据为终结状态或非终结状态:若所述第一状态数据为非终结状态,则将所述第一状态数据存入状态树;否则,删除所述状态树中对应的非终结状态的状态数据;生成所述状态树的树根哈希;根据终结状态的各项第一状态数据生成第一根哈希,根据所述第一根哈希更新终结状态数据根哈希;根据所述树根哈希和更新后的终结状态数据根哈希生成所述第一区块的区块高度的状态根哈希;删除所述终结状态的各项第一状态数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将终结状态的各项第一状态数据存储在若干节点的本地数据库中以供进行终结状态数据信息的查询。3.根据权利要求2所述的方法,其特征在于,根据所述第一根哈希更新终结状态数据根哈希包括:获取第一区块的前一个区块高度的第二区块的终结状态根哈希、所述第一区块的所述第一根哈希;根据第二区块的终结状态根哈希和所述第一根哈希再次哈希以更新第...
【专利技术属性】
技术研发人员:林敬,王志文,吴思进,
申请(专利权)人:杭州复杂美科技有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。