[发明专利]一种基于Java智能合约的数据组织和存储方法有效
| 申请号: | 201911134271.5 | 申请日: | 2019-11-19 |
| 公开(公告)号: | CN110955658B | 公开(公告)日: | 2022-11-18 |
| 发明(设计)人: | 李伟;邱炜伟;李启雷;尹可挺;董剑辉 | 申请(专利权)人: | 杭州趣链科技有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455;G06F16/26;G06Q50/18 |
| 代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 贾玉霞 |
| 地址: | 310051 浙江省杭州市*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 java 智能 合约 数据 组织 存储 方法 | ||
1.一种基于Java智能合约的数据组织和存储方法,其特征在于,该方法包括如下步骤:
S1:将嵌套的集合或映射数据解耦为列簇表形式,所述的列簇表中,每一列均为对象的每个元字段,具有关联或相似关系的列集成为一个列簇,每一行的数据对应一整个对象,每行的每个单元格为所述的一整个对象的每个元字段的属性值。
S2:擦除对象的类型信息,将对象的每个元字段的属性值用字符串替代,并对每个元字段的属性值、行、列簇、列分别做安全检查,判断行名、列簇名、列名是否为为空指针、空字符串,若是,抛出异常,拒绝存储;若不是,则进入下一步。
S3:判断行名、列簇名、列名含有@符号,若是,抛出异常,拒绝存储;若不是,则进入下一步。
S4:判断该操作,如果为插入新数据或修改数据,则继续检查元数据是否为空,若为空,则抛出异常,拒绝存储;若不为空,则进入下一步;如果是删除数据,则直接进入下一步。
S5:将S4得到的数据的行名、列簇名、列名拼接成字符串,拼接规则为:行名@列簇名@列名,将拼接好的字符串作为Key,元数据作为Value得到键值对<Key,Value>。
S6:调用平台接口存储该键值对<Key,Value>到区块链底层的缓存中,如果是删除数据,Value为空;在Java智能合约最终执行完成之后,将所有缓存的数据都写入区块链账本中,保证数据的原子性。
2.根据权利要求1所述的基于Java智能合约的数据组织和存储方法,其特征在于,当查询数据时,也需要先拼接行名、列簇名、列名,得到想要查询的键值对的Key,拼接规则为:行名@列簇名@列名。
3.根据权利要求1所述的基于Java智能合约的数据组织和存储方法,其特征在于,所述的S6中,读取数据时也先尝试从缓存中获取,如果查不到则直接从账本进行查询,若账本仍没有,则返回空;所述的缓存与账本接口使用同样的语言实现,重用缓存,使得对多种智能合约执行引擎可以执行同一套缓存机制。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911134271.5/1.html,转载请声明来源钻瓜专利网。





