[发明专利]一种区块链状态数据的存储方法、设备和存储介质有效
申请号: | 201910097365.3 | 申请日: | 2019-01-31 |
公开(公告)号: | CN109559234B | 公开(公告)日: | 2020-10-23 |
发明(设计)人: | 柳宇航;王志文;吴思进 | 申请(专利权)人: | 杭州复杂美科技有限公司 |
主分类号: | G06Q40/04 | 分类号: | G06Q40/04;G06F16/22 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 区块 状态 数据 存储 方法 设备 介质 | ||
本发明提供一种区块链状态数据的存储方法、设备和存储介质,该方法包括根据待存储的状态数据判断默克尔树中是否存在对应于状态数据的第一叶子节点:是,则读取第一叶子节点的账户数据,并根据状态数据更新账户数据;否,则根据状态数据在默克尔树中插入第二叶子节点;其中,默克尔树的叶子节点与账户一一对应,各叶子节点的账户数据包括账户系统数据和账户合约数据。本发明以用户账户作为基础插入默克尔树中,限制了默克尔树的叶子节点,同时,通过在构建数据结构时,在数据结构中增加合约状态数据,保证了对任意数据的存储。
技术领域
本申请涉及区块链技术领域,具体涉及一种区块链状态数据的存储方法、设备何存储介质。
背景技术
现有技术中,对于默克尔树中状态数据的存储一般通过基于账户地址的存储模型,以账户地址作为key存储,这种存储方式只能将原生定义的账户结构数据保存在默克尔树中,对于后续的原生合约数据存储需要借助虚拟机进行支持,另一种可以将状态数据以任意key值进行存储,然而这种存储方式会导致默克尔树的节点过多,影响树的读写性能。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种灵活的区块链状态数据存储方法、设备和存储介质。
第一方面,本发明提供一种区块链状态数据存储方法,包括:
根据待存储的状态数据判断默克尔树中是否存在对应于状态数据的第一叶子节点:
是,则读取第一叶子节点的账户数据,并根据状态数据更新账户数据;
否,则根据状态数据在默克尔树中插入第二叶子节点;
其中,默克尔树的叶子节点与账户一一对应,各叶子节点的账户数据包括账户系统数据和账户合约数据。
进一步,账户合约数据包括若干第一键值和第一value值。
进一步,读取第一叶子节点的账户数据,并根据状态数据更新账户数据包括:
根据状态数据的第二键值获取默克尔树中账户数据;其中,第二键值用于标识第一叶子节点的账户;
判断状态数据是否包括合约状态数据:
是,则根据合约状态数据的第三键值查找账户合约数据中与第三键值对应同一合约的第四键值及其对应的第四value值;以及,
根据查找结果更新账户合约数据;
否,则根据状态数据更新账户系统数据。
进一步,根据查找结果更新账户合约数据包括:删除账户合约数据。
进一步,第二键值为账户地址,根据状态数据的第二键值获取默克尔树中账户数据包括:
获取状态数据的账户地址;
根据账户地址获取账户数据。
进一步,根据状态数据在默克尔树中插入第二叶子节点包括:
根据状态数据生成第二账户的账户数据;
将账户数据序列化,生成第五value值;
将第二账户的账户地址作为第五键值;
根据第五键值和第五value值插入第二叶子节点。
第二方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的状态数据存储方法。
第三方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的状态数据存储方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州复杂美科技有限公司,未经杭州复杂美科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910097365.3/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置