[发明专利]一种基于JAVA的智能合约的内存管理方法在审
| 申请号: | 201911110938.8 | 申请日: | 2019-11-14 |
| 公开(公告)号: | CN110908771A | 公开(公告)日: | 2020-03-24 |
| 发明(设计)人: | 邱炜伟;尹可挺;李伟;宋宇 | 申请(专利权)人: | 杭州趣链科技有限公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455 |
| 代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 贾玉霞 |
| 地址: | 310051 浙江省杭州市*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 java 智能 合约 内存 管理 方法 | ||
本发明公开了一种基于JAVA的智能合约的内存管理方法,该方法通过修改JAVA虚拟机,在内存中对用户的合约类进行缓存,实现每次用户发送请求的时候不需要重复解析合约字节码的功能,同时通过修改JAVA虚拟机的垃圾回收器机制,实现对合约类生命周期的管理,控制合约类的回收机制。本发明是对JAVA虚拟机的内存模型以及垃圾回收机制进行修改,令虚拟机在处理JAVA合约类代码的时候更加高效,提升了虚拟机的处理效率。
技术领域
本发明涉及区块链技术,尤其涉及一种基于JAVA的智能合约的内存管理方法。
背景技术
智能合约是编程在区块链上的汇编语言,该术语是跨领域法律学者尼克·萨博提出来的,他对智能合约的定义是“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议”,换句话说,智能合约就是一个在计算机系统上,当一定条件被满足后,可以被自动执行的合约。通常人们不会自己写字节码,但是会从更高级的语言来编译它,例如用JAVA等类似的专用语言。
目前使用JAVA的智能合约的内存管理方法的存在一定缺陷,用户在每次调用合约时,都需要对合约类进行反序列化以及类加载过程,减缓合约的调用时间,增大时延。进一步的,在区块链应用场景下,JAVA虚拟机的垃圾回收机制也有一定的缺陷,目前市面上的JAVA虚拟机会在内存不足情况下会对系统类和用户合约类进行回收。但在区块链场景下对频繁对类进行加载和回收,会严重影响执行效率。
发明内容
针对现有技术的不足,本发明提出了一种基于JAVA的智能合约内存管理方法,对JAVA合约部署、调用、升级过程的内存进行管理,提高JAVA合约的执行效率,具体技术方案如下:
一种基于JAVA的智能合约的内存管理方法,所述的内存管理包括缓存用户合约类和对不同类进行不同的垃圾回收机制,其中,
对于缓存用户合约类,JAVA虚拟机在接收到用户合约类解析的请求时,获取用户的合约部署地址和合约类,并将用户的合约类存入到内存中的一个缓存集合中,所述的缓存集合的索引为合约部署地址,当用户下次调用在这个合约部署地址的合约类时,将合约类从内存中取出,并将合约类的可修改的字段重置后返回给用户,保证合约类在每次返回给用户时都是一致的;
对不同类进行不同的垃圾回收机制具体包括以下三种情况:
(1)对JAVA中的系统类,虚拟机不对其进行垃圾回收,所有系统类都在内存中的一块区域进行分配;
(2)对用户合约类,虚拟机自动地对其内存进行管理,虚拟机在内存中开辟一段缓存,在虚拟机缓存用户合约类时,虚拟机把用户合约类保存在缓存当中去,同时虚拟机对缓存进行缓存淘汰策略,当缓存内的数据的大小超过一定限制后,虚拟机用页面置换算法将某些用户合约类自动清除,以达到控制内存大小的目的;
(3)对于各个类的实例,虚拟机用JAVA的垃圾回收算法对其清理。
进一步地,对于JAVA中的系统类,虚拟机在启动的时候对其进行初始化。
进一步地,合约类的可修改字段为static字段。
进一步地,所述的页面置换算法具体为最近最久未使用算法。
进一步地,系统类、合约类和各个类的实例分别保存在三块不同的内存地址当中,彼此间不相重合。
本发明的有益效果:
本发明应用于区块链平台上,提供了一套全新的智能合约内存管理,实现了对合约类的缓存,使其不需要每次调用时都加载,提升了代码执行效率;在缓存的同时对缓存进行缓存淘汰机制,避免了内存溢出;修改JAVA垃圾回收机制,让JAVA垃圾回收更加高效;在虚拟机启动时对系统类进行初始化,加快了JAVA代码的执行速度。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911110938.8/2.html,转载请声明来源钻瓜专利网。





