[发明专利]一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质在审
申请号: | 201911180710.6 | 申请日: | 2019-11-27 |
公开(公告)号: | CN110968437A | 公开(公告)日: | 2020-04-07 |
发明(设计)人: | 李伟;邱炜伟;陶烨琪;尹可挺 | 申请(专利权)人: | 杭州趣链科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/455;G06F16/901;G06Q30/02;G06Q40/04 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 应孔月 |
地址: | 310051 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 java 智能 合约 单个 并行 执行 方法 装置 设备 介质 | ||
本发明公开了一种基于Java智能合约的单个合约并行执行方法、装置、设备及介质,该方法包括判断Java智能合约中的方法中是否带有@Parallel注解,分析带有@Parallel注解的Java智能合约的方法的Java字节码,判断是否属于成功注册的的可并行执行的合约方法;当发起合约调用时,先获取被调用合约是否有成功注册的可并行执行的合约方法,若当前区块中有多笔交易都是调用的可并行执行的合约方法,当调用合约的参数不同时,则将该合约方法进行并行执行;若参数相同,则根据区块中的交易顺序来构建依赖关系,生成DAG图来决定先后顺序。本发明是通过检查用户部署的Java合约字节码来判断是否可以并行执行合约,能够充分利用物理机的多核能力,提高区块链节点的执行效率。
技术领域
本发明实施例涉及区块链技术,尤其涉及一种基于Java智能合约的单个合约并行执行方法、装置、设备及介质。
背景技术
区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。
智能合约是编程在区块链上的汇编语言,该术语是跨领域法律学者尼克·萨博提出来的,他对智能合约的定义是“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议”,换句话说,智能合约就是一个在计算机系统上,当一定条件被满足后,可以被自动执行的合约。通常人们不会自己写字节码,但是会从更高级的语言来编译它,例如用Solidity等类似的专用语言。
区块链的去中心化与不可篡改的特性给智能合约提供了一个很好的发展环境,因此近年来,比特币网络、以太坊网络等一系列区块链社区都陆续开始提供了公开的智能合约编程的接口。但是在智能合约的开发过程中,一直缺少一个完善的并行执行合约的方法,尤其缺少一种基于当前主流编程语言的同一个合约的方法的并行执行方法。
发明内容
针对现有技术的不足,本发明实施例提出了一种基于Java智能合约的单个合约并行执行方法、装置、设备及介质,解决了区块链无法并行执行同一个合约的合约方法,导致执行效率低的问题。
本发明实施例采用以下技术方案:
第一方面,本发明实施例提供一种基于Java智能合约的单个合约并行执行方法,包括:
S1、判断Java智能合约中的方法中是否带有@Parallel注解,分析带有@Parallel注解的 Java智能合约的方法的Java字节码,判断是否属于成功注册的的可并行执行的合约方法;
S2、当发起合约调用时,先获取被调用合约是否有成功注册的可并行执行的合约方法,若当前区块中有多笔交易都是调用的可并行执行的合约方法,智能合约执行器将对交易中传递给合约方法的参数进行分析,当调用合约的参数不同时,则将该合约方法进行并行执行;若参数相同,则根据区块中的交易顺序来构建依赖关系,生成DAG图来决定先后顺序。
进一步的,所述Java智能合约中的方法属于合约类的成员方法。
进一步的,在Java智能合约被部署到区块链上时,合约执行引擎将通过Java反射扫描合约的成员方法,当扫描到合约的成员方法拥有@Parallel注解时,会对该合约的成员方法进行字节码检查,判断是否属于成功注册的可并行执行的合约方法。
进一步的,所述判断是否属于成功注册的可并行执行的合约方法,具体方法如下:
首先获取到带有@Parallel注解的Java智能合约的方法的参数个数和类型,且已知一个 Java智能合约的方法获取参数是通过从当前方法栈帧的本地变量表中获取,当一个方法栈帧被调用时,可知方法栈帧的本地变量表中的变量即为当前方法的参数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911180710.6/2.html,转载请声明来源钻瓜专利网。