[发明专利]一种基于Java智能合约的数据组织和存储方法有效
申请号: | 201911134271.5 | 申请日: | 2019-11-19 |
公开(公告)号: | CN110955658B | 公开(公告)日: | 2022-11-18 |
发明(设计)人: | 李伟;邱炜伟;李启雷;尹可挺;董剑辉 | 申请(专利权)人: | 杭州趣链科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455;G06F16/26;G06Q50/18 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 贾玉霞 |
地址: | 310051 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 java 智能 合约 数据 组织 存储 方法 | ||
本发明公开一种基于Java智能合约的数据组织和存储方法,该方法基于一种新的数据组织结构列簇表来实现数据组织和存储方法,通过将入复杂的映射、集合嵌套结构转换为列簇表,避免了序列化反序列化过慢的问题,提升了合约执行速度,增强了数据存取的原子性,有利于可视化。
技术领域
本发明涉及区块链数据的存储领域,具体涉及一种基于Java智能合约的数据组织和存储方法。
背景技术
区块链是一种新型去中心化的分布式存储技术,能安全地存储数字货币交易或其他需要存证的信息数据,且能保证信息的不可伪造,防止被篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,公共账本位于存储区块上任何节点可见。
智能合约这个术语是跨领域法律学者尼克·萨博提出来的,他对智能合约的定义是“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议”,换句话说,智能合约就是一个在计算机系统上,当一定条件被满足后,可以被自动执行的合约,它也是区块链的系统参与者,对接收到的信息进行处理,可以进行计算或处理等操作,也可以向外发送信息和价值。通常人们会使用更高级的语言来编写智能合约,再由区块链平台编译成字节码解释执行。目前最常见的用于智能合约的语言包括Solidty、Java等,本数据组织方式是针对Java智能合约的应用场景而发明。
目前Java智能合约的数据结构不够丰富,主要仅有List和Map两种接口,这使得Java智能合约在应对大量业务场景时无法有效存储数据,经常需要使用多重的嵌套结构去存储,这一方式既增加智能合约的使用难度,不利于业务场景的拓展,又降低了数据存储的性能。
再加上,区块链技术在底层的存储开发都会为底层数据库建立一套缓存机制,如果使用原生的Java集合和映射,由于Java集合、映射是内存中工作,所以将数据全部加载到内存中是不可行的,而一般开发者使用懒加载的方式去改进又会多引入一层完善的缓存机制,在许多场景下这是不必要的。
发明内容
针对现有技术的不足,本发明提出一种基于Java智能合约的数据组织和存储方法,既保证了与区块链账本直接交互,避免了缓存一致性带来的许多隐患和存储的原子性问题,解决了序列化反序列化造成的性能瓶颈,并且利于实际场景的后续可视化操作。
本发明的目的通过如下的技术方案来实现:
一种基于Java智能合约的数据组织和存储方法,其特征在于,该方法包括如下步骤:
S1:将嵌套的集合或映射数据解耦为列簇表形式,所述的列簇表中,每一列均为对象的每个元字段,具有关联或相似关系的列集成为一个列簇,每一行的数据对应一整个对象,每行的每个单元格为所述的一整个对象的每个元字段的属性值;
S2:擦除对象的类型信息,将对象的每个元字段的属性值用字符串替代,并对每个元字段的属性值、行、列簇、列分别做安全检查,判断行名、列簇名、列名是否为为空指针、空字符串,若是,抛出异常,拒绝存储;若不是,则进入下一步;
S3:判断行名、列簇名、列名含有@符号,若是,抛出异常,拒绝存储;若不是,则进入下一步;
S4:判断该操作,如果为插入新数据或修改数据,则继续检查元数据是否为空,若为空,则抛出异常,拒绝存储;若不为空,则进入下一步;如果是删除数据,则直接进入下一步;
S5:将S4得到的数据的行名、列簇名、列名拼接成字符串,拼接规则为:行名@列簇名@列名,将拼接好的字符串作为Key,元数据作为Value得到键值对<Key,Value>;
S6:调用平台接口存储该键值对<Key,Value>到区块链底层的缓存中,如果是删除数据,Value为空;在Java智能合约最终执行完成之后,将所有缓存的数据都写入区块链账本中,保证数据的原子性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911134271.5/2.html,转载请声明来源钻瓜专利网。