智能合约执行流程图生成方法、装置、设备及存储介质制造方法及图纸

技术编号:37078986 阅读:26 留言:0更新日期:2023-03-29 19:55
本申请提供一种智能合约执行流程图生成方法、装置、电子设备及存储介质,该方法先获取按序排列的多个汇编指令;然后根据所述多个汇编指令中的预设汇编指令生成多个合约节点,其中,每个合约节点包括所述多个汇编指令中的部分指令以及至少一个预设汇编指令;最后根据生成的多个合约节点生成智能合约执行流程图,从而实现通过多个汇编指令自动生成智能合约的执行流程图,进一步提高了智能合约执行流程图的绘制效率,并解决对于未开源的智能合约画流程图对开发人员技能要求过高的技术问题,为后续利用该智能合约执行流程图的相关分析提供便利。便利。便利。

【技术实现步骤摘要】
智能合约执行流程图生成方法、装置、设备及存储介质


[0001]本申请涉及智能合约执行流程图生成
,尤其涉及一种智能合约执行流程图生成方法、装置、电子设备及存储介质。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]智能合约是在区块链上执行的通用程序。在执行期间,它可以利用三个内存区域来执行数据操作:堆栈、内存和存储。目前,相关技术中智能合约的执行流程图,都由合约开发人员或者合约分析人员手动完成,针对未开源代码的智能合约,用户只能先反汇编字节码得到汇编指令,然后通过汇编指令画出智能合约执行流程图。首先通过反汇编的字节码画出智能合约执行流程图,对开发人员的技能有较高的要求,大部分开发人员都不具备该技能,并且通过手动画图,耗时耗力。

技术实现思路

[0004]有鉴于此,本申请的目的在于提出一种智能合约执行流程图生成方法、装置、电子设备及存储介质。
[0005]基于上述目的,本申请提供了一种智能合约执行流程图生成方法本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种智能合约执行流程图生成方法,其特征在于,包括:获取按序排列的多个汇编指令;基于所述多个汇编指令中的预设汇编指令生成多个合约节点,其中,每个合约节点包括所述多个汇编指令中的部分指令以及至少一个预设汇编指令;基于所述多个合约节点生成智能合约执行流程图。2.根据权利要求1所述的方法,其特征在于,基于所述多个汇编指令中的预设汇编指令生成多个合约节点,具体包括:依次读取所述多个汇编指令;响应于读取到第一预设汇编指令,基于所述第一预设汇编指令以及排列在所述第一预设汇编指令之前的所有汇编指令生成一个合约节点;其中,所述第一预设汇编指令为首次读取到的所述预设汇编指令;响应于读取到第二预设汇编指令,获取第三预设汇编指令,并基于所述第二预设汇编指令、第三预设汇编指令以及排列在所述第三预设汇编指令与所述第二预设汇编指令之间的所有汇编指令生成一个合约节点;其中,所述第二预设汇编指令为非首次读取到的所述预设汇编指令,所述第三预设汇编指令为排列在所述第二预设汇编之前且离所述第二预设汇编指令距离最近的所述预设汇编指令。3.根据权利要求2所述的方法,其特征在于,所述预设汇编指令包括CALL指令和STATICCAL指令;基于所述第二预设汇编指令、第三预设汇编指令以及排列在所述第三预设汇编指令与所述第二预设汇编指令之间的所有汇编指令生成一个合约节点,具体包括:响应于确定所述第三预设汇编指令为CALL指令或STATICCAL指令,为当前生成的合约节点标注其对应的合约名称,并使所述当前生成的合约节点对应的合约名称与已经生成的其他合约节点对应的合约名称均不相同;重新排列所述当前生成的合约节点中的汇编指令的序号。4.根据权利要求2所述的方法,其特征在于,所述预设汇编指令包括REVERT指令和RETURN指令;基于所述第二预设汇编指令、第三预设汇编指令以及排列在所述第三预设汇编指令与所述第二预设汇编指令之间的所有汇编指令生成一个合约节点,具体包括:响应于确定所述第三预设汇编指令为REVERT指令或RETURN指令,获取所述第三预设汇编指令所在的合约节点的上一个目标合约节点对应的合约名称,以及所述目标合约节点中最后一个汇编指令的序号;基于所述目标合约节点对应的合约名称为当前生成的合约节点标注其对应的合约名称,并从所述最后一个汇编指令的序号的下一个序号开始依次排列所述当前生成的合约节点中的汇编指令的序号。5.根据权利要求4所述的方法,其特征在于,获取所述第三预设汇编指令所在的合约节点的上一个目标合约节点对应的合约名称,以及所述目标合约节点中最后一个汇编指令的序号,具体包括:生成所述目标合约节点后,将所述目标合约节点对应的合约名称及所述最后一个汇编指令的序号发送给下一个生成的合约节点;从所述下一个生成的合约节点中获取所述第三预设汇编指令所在的合约节点的上一个目标合约节点,以及所述目标合约节点中最后一个汇编指令的序号。
6.根据权利要求4所述的方法,其特征在于,基于所述第二预设汇编指令、第三预设汇编指令以及排列在所述第三预设汇编指令与所述第二预设汇编指令之间的所有汇编指令生成一个合约节点,具体还还包括:响应于确定所述第二预设汇编指令为REVERT指令,将当前生成的合约...

【专利技术属性】
技术研发人员:邓泰生王耿曹崇瑞李刚锐
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1