CN112394939B - 基于联盟链的用户合约自动部署方法、装置及存储介质 - Google Patents
基于联盟链的用户合约自动部署方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112394939B CN112394939B CN202011194429.0A CN202011194429A CN112394939B CN 112394939 B CN112394939 B CN 112394939B CN 202011194429 A CN202011194429 A CN 202011194429A CN 112394939 B CN112394939 B CN 112394939B
- Authority
- CN
- China
- Prior art keywords
- contract
- user
- calling
- deployment
- call
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于联盟链的用户合约自动部署方法、装置及存储介质,该方法通过检测联盟链的节点上是否存在未部署的用户合约,以及检测未部署的用户合约其合约代码中是否包含跨合约调用字段;若包含有跨合约调用字段,则生成该跨合约调用字段对应调用链路的合约调用集合,且该合约调用集合包括该调用链路依次调用的用户合约的名称;若检测出该合约调用集合中存在重复的用户合约名称,则该调用链路异常,反之则该调用链路正常;进而使不包含跨合约调用字段或者调用链路正常的用户合约进入部署流程,并部署在联盟链上。因此,本发明能够在越来越复杂的区块链技术的应用中,提高合约部署调试的效率,降低合约部署调试的成本投入。
Description
技术领域
本发明涉及区块链技术,尤其涉及一种基于联盟链的用户合约自动部署方法、装置及存储介质。
背景技术
随着区块链技术在金融、物流、政务、供应链等行业的广泛应用,智能合约对各种业务系统提供的支持起到的重要作用。智能合约其实是一串可运行在区块链上的二进制代码,当在区块链上运行智能合约时,能够完成针对业务系统的各种交易操作,同时,产生的相关交易数据存储会存储在区块链上。
而运行智能合约的前提是需要将智能合约部署在区块链节点上,目前部署智能合约的一种方式为:利用智能合约虚拟机为智能合约提供计算资源和运行容器,同时区块链的共识、执行模块与VM是完全解耦的;另一种方式,将智能合约编译成独立的程序,运行于独立的Docker容器中,通过grpc与节点交互,而由于运行在不同Docker容器中的应用,能够保持完全的隔离状态,而宿主机器只需要提供极小的额外性能开销。
对于Fabric联盟链而言,其采用Docker容器为智能合约提供运行环境,但是随着区块链技术的应用越来越复杂,合约部署调试困难、跨合约调用链路复杂、多语言合约实现差异大、合约调用轨迹难追踪、跨合约事务性难保证等问题越来越明显。因此,有必要针对目前Fabric联盟链部署智能合约的方式进行改进或优化。
发明内容
鉴于以上所述现有技术的不足,本发明的目的在于:提供一种基于联盟链的用户合约自动部署方法,能够提高合约部署调试的效率,降低合约部署调试的成本投入。
为实现上述发明目的,本发明提供以下技术方案:
一种基于联盟链的用户合约自动部署方法,其包括以下步骤:
检测联盟链的节点上是否存在未部署的用户合约,以及检测未部署的用户合约其合约代码中是否包含跨合约调用字段;
若未部署的用户合约其合约代码中包含有跨合约调用字段,则生成所述跨合约调用字段对应调用链路的合约调用集合,其中,所述合约调用集合包括所述调用链路依次调用的用户合约的名称;
检测所述合约调用集合中是否存在重复的用户合约名称,若存在,则所述调用链路异常,反之则所述调用链路正常;
若未部署的用户合约其合约代码中不包含所述跨合约调用字段或者所述调用链路正常,则进入部署流程,并将所述用户合约部署在联盟链上。
根据一种具体的实施方式,本发明基于联盟链的用户合约自动部署方法中,所述部署流程包括:
对所述合约代码进行语法检查,并在通过所述语法检查后,为所述用户合约创建一个相应的Docker容器;以及根据所述合约代码的编写语言,将相应的运行环境镜像文件加载至所述Docker容器中,并对所述合约代码进行编译,若编译成功,则将所述用户合约部署在联盟链上。
根据一种具体的实施方式,本发明基于联盟链的用户合约自动部署方法中,所述部署流程还包括:若所述合约代码中包含有跨合约调用字段,则在所述合约代码编译成功后,根据所述合约调用集合中的用户合约名称,查询所述调用链路依次调用的用户合约的部署状态,并发出相应的部署状态提示。
进一步地,根据所述调用链路依次调用的用户合约的部署状态的查询结果,将所述调用链路中未部署的用户合约部署在联盟链上。
本发明的另一方面,还提供一种基于联盟链的用户合约自动部署装置,其设置在联盟链的节点上,该装置包括:
检测模块,用于检测联盟链的节点上是否存在未部署的用户合约,以及检测未部署的用户合约其合约代码中是否包含跨合约调用字段;
合约调用集合生成模块,用于生成所述跨合约调用字段对应调用链路的合约调用集合,其中,所述合约调用集合包括所述调用链路依次调用的用户合约的名称;
调用链路检测模块,用于检测所述合约调用集合中是否存在重复的用户合约名称,若存在,则所述调用链路异常,反之则所述调用链路正常;
部署模块,用于在未部署的用户合约其合约代码中不包含所述跨合约调用字段或者所述调用链路正常时,进入部署流程,并将所述用户合约部署在联盟链上。
根据一种具体的实施方式,本发明基于联盟链的用户合约自动部署装置中,所述部署模块包括:
语法检查子模块,用于对所述合约代码进行语法检查;
容器创建子模块,用于在通过所述语法检查后,为所述用户合约创建一个相应的Docker容器;
镜像加载子模块,用于根据所述合约代码的编写语言,将相应的运行环境镜像文件加载至所述Docker容器中;
编译子模块,用于对编译所述合约代码进行编译;其中,若编译成功,则将所述用户合约加载至联盟链上。
进一步地,所述部署模块还包括:
部署状态查询子模块,用于在所述用户合约编译成功后,若所述用户合约的代码包含跨合约调用字段,则根据跨合约调用字段的参数信息,查询被调用的用户合约的部署状态;
部署状态提示子模块,用于查询到被调用的用户合约未部署时,发出该用户合约未部署的提示。
本发明的另一方面,还提供一种可读存储介质,其上存储有一个或多个程序,其特征在于,该一个或多个程序被一个或多个处理器执行时实现本发明基于联盟链的用户合约自动部署方法。
与现有技术相比,本发明的有益效果:
基于联盟链的用户合约自动部署方法,其通过检测联盟链的节点上是否存在未部署的用户合约,以及检测未部署的用户合约其合约代码中是否包含跨合约调用字段;若包含有跨合约调用字段,则生成该跨合约调用字段对应调用链路的合约调用集合,且该合约调用集合包括该调用链路依次调用的用户合约的名称;若检测出该合约调用集合中存在重复的用户合约名称,则该调用链路异常,反之则该调用链路正常;进而使不包含跨合约调用字段或者调用链路正常的用户合约进入部署流程,并部署在联盟链上。因此,本发明能够在越来越复杂的区块链技术的应用中,提高合约部署调试的效率,降低合约部署调试的成本投入。
附图说明
图1为本发明部署方法的流程图;
图2为本发明具体部署流程的示意图;
图3为本发明部署装置的结构示意图;
图4为本发明部署装置中部署模块的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
如图1所示,本发明基于联盟链的用户合约自动部署方法,其包括以下步骤:
S1:首先,检测联盟链的节点上是否存在未部署的用户合约;在实施时,该检测任务是定时触发的,即每间隔一定时间通过访问节点上记录用户合约部署状态的状态库,来检测是否有未部署的用户合约。如果没有检测到联盟链的节点有未部署的用户合约,则结束,并进入等待下一次执行步骤S1。
S2:如果检测到联盟链的节点有未部署的用户合约,则进一步检测该用户合约其合约代码中是否包含跨合约调用字段。如果未部署的用户合约中不包含跨合约调用字段,则直接跳转至步骤S5,进入部署流程。具体的,合约代码中的跨合约调用字段具体包括:合约调用关键字、被调用的用户合约的名称,被调用的用户合约的方法名称、方法参数等信息。
S3:如果该用户合约的合约代码中包含跨合约调用字段,则生成其包含的跨合约调用字段对应调用链路的合约调用集合,其中,合约调用集合包括该调用链路依次调用的用户合约的名称。具体的,设Contract1为未部署的用户合约,Contract1的合约代码中有两个跨合约调用字段,分别调用Contract2和Contract3,而Contract2的合约代码中也有两个跨合约调用字段,分别调用Contract4和Contract5,而Contract3的合约代码中只有一个跨合约调用字段,调用Contract6;同时,Contract4的合约代码中也有两个跨合约调用字段,分别调用Contract7和Contract8,而Contract5的合约代码中只有一个跨合约调用字段,调用Contract2,而Contract6的合约代码中只有一个跨合约调用字段,调用Contract9。其中,Contract7、Contract8和Contract9不包含跨合约调用字段。
因此,调用Contract2的跨合约调用字段对应的调用链路为:Contract1>>Contract2>>Contract4>>Contract7>>Contract8>>Contract5>>Contract2······。相应地,该调用链路对应的合约调用集合为{Contract1,Contract2,Contract4,Contract7,Contract8,Contract5,Contract2};调用Contract3的跨合约调用字段对应的调用链路为:Contract1>>Contract3>>Contract6>>Contract9。相应地,该调用链路对应的合约调用集合为{Contract1,Contract3,Contract6,Contract9}。
S4:当合约调用集合生成后,检测每个合约调用集合中是否存在重复的用户合约名称,若存在,则相应的调用链路异常,反之则相应的调用链路正常。显而易见地,调用Contract2的跨合约调用字段对应的调用链路异常,调用链路闭环,而调用Contract3的跨合约调用字段对应的调用链路正常。如果调用链路正常,则继续执行步骤S5,否则直接结束。
S5:进入部署流程;具体的,该部署流程包括:
S501:对合约代码进行语法检查,具体是针对根据合约代码的编写语言的编写规则,检查合约代码是否有明显的语法错误,如关键字的错误等。
S502:如果有语法错误,则判定该合约代码未通过语法检查,则结束部署流程;如果没有语法错误,则判定该合约代码通过语法检查,则继续执行步骤S503。
S503:为需要部署的用户合约创建一个相应的Docker容器;具体的,通过Dockerrun指令即可完成Docker容器的创建。
S504:当用户合约对应的Docker容器创建好后,根据该合约代码的编写语言,将相应的运行环境镜像文件加载至该Docker容器中,如此便可为合约代码的运行提供运行环境。在实施时,通过将支持不同编写语言的合约代码的运行环境文件制作成相应的镜像文件,便可支持不同编写语言的合约代码进行部署。
S505:当运行环境镜像文件完全加载至Docker容器中后,将纯文本的合约代码加载至Docker容器中,对合约代码进行编译。
S506:如果合约代码编译成功,则继续执行步骤S507,将用户合约部署在联盟链上;而如果合约代码编译失败,则结束部署流程。
在一个具体实施例中,为了适应越来越复杂的区块链技术的应用,同时降低用户合约的编写难度,通常会设计可以在多个应用中进行复用的用户合约,如此便可通过跨合约调用,既适应复杂的应用需求,又能提高开发效率。那么,在此应用情形下,本发明基于联盟链的用户合约自动部署方法中,部署流程还包括:若当前部署的用户合约其合约代码中包含有跨合约调用字段,则在合约代码编译成功后,根据合约调用集合中的用户合约名称,查询调用链路依次调用的用户合约的部署状态,并发出相应的部署状态提示。
具体的,通过访问节点上记录用户合约部署状态的状态库,查询合约调用集合中的各个用户合约名称对应的用户合约的部署状态,并根据相应的查询结果,发出相应的部署状态提示。如此,能够方便工程师有针对性地部署或调试用户合约,以加快项目开发效率。
在另一个具体实施例中,只要在节点上存储较为完善的复用的用户合约,而且本发明能够实现未部署的用户合约的自动部署,那么,可根据调用链路依次调用的用户合约的部署状态的查询结果,将调用链路中未部署的用户合约部署在联盟链上,如此,更能减少工程师在部署或调试用户合约时投入的精力,进一步提高项目开发的效率。
如图3所示,本发明基于联盟链的用户合约自动部署装置,其设置在联盟链的节点上,该装置10包括:
检测模块100,用于检测联盟链的节点上是否存在未部署的用户合约,以及检测未部署的用户合约其合约代码中是否包含跨合约调用字段;具体的,检测模块100每间隔一定时间通过访问节点上记录用户合约部署状态的状态库500,来检测是否有未部署的用户合约。
合约调用集合生成模块200,用于生成所述跨合约调用字段对应调用链路的合约调用集合,其中,所述合约调用集合包括所述调用链路依次调用的用户合约的名称;
调用链路检测模块300,用于检测所述合约调用集合中是否存在重复的用户合约名称,若存在,则所述调用链路异常,反之则所述调用链路正常;
部署模块400,用于在未部署的用户合约其合约代码中不包含所述跨合约调用字段或者所述调用链路正常时,进入部署流程,并将所述用户合约部署在联盟链上。
如图4所示,本发明基于联盟链的用户合约自动部署装置中,部署模块400包括:
语法检查子模块401,用于对所述合约代码进行语法检查;
容器创建子模块402,用于在通过所述语法检查后,为所述用户合约创建一个相应的Docker容器;
镜像加载子模块403,用于根据所述合约代码的编写语言,将相应的运行环境镜像文件加载至所述Docker容器中;
编译子模块404,用于对编译所述合约代码进行编译;其中,若编译成功,则将所述用户合约加载至联盟链上。
进一步地,部署模块400还包括:
部署状态查询子模块405,用于在所述用户合约编译成功后,若所述用户合约的代码包含跨合约调用字段,则根据跨合约调用字段的参数信息,查询被调用的用户合约的部署状态;
部署状态提示子模块406,用于查询到被调用的用户合约未部署时,发出该用户合约未部署的提示。
本发明的另一方面,还提供一种可读存储介质,其上存储有一个或多个程序,其特征在于,该一个或多个程序被一个或多个处理器执行时实现本发明基于联盟链的用户合约自动部署方法。
应该理解到,本发明所揭露的系统,可通过其它的方式实现。例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,模块之间的通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (8)
1.一种基于联盟链的用户合约自动部署方法,其特征在于,包括以下步骤:
检测联盟链的节点上是否存在未部署的用户合约,以及检测未部署的用户合约其合约代码中是否包含跨合约调用字段;
若未部署的用户合约其合约代码中包含有跨合约调用字段,则生成所述跨合约调用字段对应调用链路的合约调用集合,其中,所述合约调用集合包括所述调用链路依次调用的用户合约的名称;
检测所述合约调用集合中是否存在重复的用户合约名称,若存在,则所述调用链路异常,反之则所述调用链路正常;
若未部署的用户合约其合约代码中不包含所述跨合约调用字段或者所述调用链路正常,则进入部署流程,并将所述用户合约部署在联盟链上。
2.如权利要求1所述的基于联盟链的用户合约自动部署方法,其特征在于,所述部署流程包括:对所述合约代码进行语法检查,并在通过所述语法检查后,为所述用户合约创建一个相应的Docker容器;以及根据所述合约代码的编写语言,将相应的运行环境镜像文件加载至所述Docker容器中,并对所述合约代码进行编译,若编译成功,则将所述用户合约部署在联盟链上。
3.如权利要求2所述的基于联盟链的用户合约自动部署方法,其特征在于,所述部署流程还包括:若所述合约代码中包含有跨合约调用字段,则在所述合约代码编译成功后,根据所述合约调用集合中的用户合约名称,查询所述调用链路依次调用的用户合约的部署状态,并发出相应的部署状态提示。
4.如权利要求3所述的基于联盟链的用户合约自动部署方法,其特征在于,根据所述调用链路依次调用的用户合约的部署状态的查询结果,将所述调用链路中未部署的用户合约部署在联盟链上。
5.一种基于联盟链的用户合约自动部署装置,其设置在联盟链的节点上,其特征在于,包括:
检测模块,用于检测联盟链的节点上是否存在未部署的用户合约,以及检测未部署的用户合约其合约代码中是否包含跨合约调用字段;
合约调用集合生成模块,用于生成所述跨合约调用字段对应调用链路的合约调用集合,其中,所述合约调用集合包括所述调用链路依次调用的用户合约的名称;
调用链路检测模块,用于检测所述合约调用集合中是否存在重复的用户合约名称,若存在,则所述调用链路异常,反之则所述调用链路正常;
部署模块,用于在未部署的用户合约其合约代码中不包含所述跨合约调用字段或者所述调用链路正常时,进入部署流程,并将所述用户合约部署在联盟链上。
6.如权利要求5所述的基于联盟链的用户合约自动部署装置,其特征在于,所述部署模块包括:
语法检查子模块,用于对所述合约代码进行语法检查;
容器创建子模块,用于在通过所述语法检查后,为所述用户合约创建一个相应的Docker容器;
镜像加载子模块,用于根据所述合约代码的编写语言,将相应的运行环境镜像文件加载至所述Docker容器中;
编译子模块,用于对编译所述合约代码进行编译;其中,若编译成功,则将所述用户合约加载至联盟链上。
7.如权利要求6所述的基于联盟链的用户合约自动部署装置,其特征在于,所述部署模块还包括:
部署状态查询子模块,用于在所述合约代码编译成功后,根据所述合约调用集合中的用户合约名称,查询所述调用链路依次调用的用户合约的部署状态;
部署状态提示子模块,用于根据查询到的所述调用链路依次调用的用户合约的部署状态,发出相应的部署状态提示。
8.一种可读存储介质,其上存储有一个或多个程序,其特征在于,该一个或多个程序被一个或多个处理器执行时实现权利要求1~4任一项所述的基于联盟链的用户合约自动部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011194429.0A CN112394939B (zh) | 2020-10-30 | 2020-10-30 | 基于联盟链的用户合约自动部署方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011194429.0A CN112394939B (zh) | 2020-10-30 | 2020-10-30 | 基于联盟链的用户合约自动部署方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112394939A CN112394939A (zh) | 2021-02-23 |
CN112394939B true CN112394939B (zh) | 2023-06-13 |
Family
ID=74598585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011194429.0A Active CN112394939B (zh) | 2020-10-30 | 2020-10-30 | 基于联盟链的用户合约自动部署方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112394939B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360251B (zh) * | 2021-08-11 | 2021-12-21 | 北京微芯感知科技有限公司 | 智能合约执行与跨合约调用方法、装置及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9719147B1 (en) * | 2003-08-22 | 2017-08-01 | Dennis Sunga Fernandez | Integrated biosensor and simulation systems for diagnosis and therapy |
CN109151031A (zh) * | 2018-08-28 | 2019-01-04 | 北京奇虎科技有限公司 | 基于区块链的合约处理方法及装置 |
CN110297721A (zh) * | 2019-06-24 | 2019-10-01 | 杭州趣链科技有限公司 | 一种基于java的智能合约的跨合约调用方法 |
CN110532038A (zh) * | 2019-08-19 | 2019-12-03 | 杭州趣链科技有限公司 | 一种基于Java智能合约的并行执行方法 |
CN110865927A (zh) * | 2019-11-20 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 区块链调用链路异常检测方法、装置和计算机设备 |
CN111176791A (zh) * | 2019-12-31 | 2020-05-19 | 杭州趣链科技有限公司 | 一种基于多虚拟机区块链平台跨虚拟机调用方法 |
CN111259395A (zh) * | 2020-01-16 | 2020-06-09 | 图灵人工智能研究院(南京)有限公司 | 智能合约的利用程序获取方法、装置及存储介质 |
CN111400317A (zh) * | 2020-03-09 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 全函数动态调用链路确定方法、装置及存储介质 |
WO2020173377A1 (zh) * | 2019-02-28 | 2020-09-03 | 华为技术有限公司 | 一种日志信息生成方法、装置及电子设备 |
CN111770206A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
-
2020
- 2020-10-30 CN CN202011194429.0A patent/CN112394939B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9719147B1 (en) * | 2003-08-22 | 2017-08-01 | Dennis Sunga Fernandez | Integrated biosensor and simulation systems for diagnosis and therapy |
CN109151031A (zh) * | 2018-08-28 | 2019-01-04 | 北京奇虎科技有限公司 | 基于区块链的合约处理方法及装置 |
WO2020173377A1 (zh) * | 2019-02-28 | 2020-09-03 | 华为技术有限公司 | 一种日志信息生成方法、装置及电子设备 |
CN110297721A (zh) * | 2019-06-24 | 2019-10-01 | 杭州趣链科技有限公司 | 一种基于java的智能合约的跨合约调用方法 |
CN110532038A (zh) * | 2019-08-19 | 2019-12-03 | 杭州趣链科技有限公司 | 一种基于Java智能合约的并行执行方法 |
CN110865927A (zh) * | 2019-11-20 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 区块链调用链路异常检测方法、装置和计算机设备 |
CN111176791A (zh) * | 2019-12-31 | 2020-05-19 | 杭州趣链科技有限公司 | 一种基于多虚拟机区块链平台跨虚拟机调用方法 |
CN111259395A (zh) * | 2020-01-16 | 2020-06-09 | 图灵人工智能研究院(南京)有限公司 | 智能合约的利用程序获取方法、装置及存储介质 |
CN111400317A (zh) * | 2020-03-09 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 全函数动态调用链路确定方法、装置及存储介质 |
CN111770206A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
Non-Patent Citations (2)
Title |
---|
多通道联盟链关键技术研究与实现;李晓芳;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-455 * |
超级账本智能合约的应用研究;季超越;《现代信息科技》;第4卷(第4期);176-179 * |
Also Published As
Publication number | Publication date |
---|---|
CN112394939A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7316005B2 (en) | Data race detection using sequential program analysis | |
US8914780B2 (en) | Incremental generation of managed assemblies | |
US7284237B2 (en) | Testing flow control at test assertion level | |
KR101036679B1 (ko) | 애트리뷰트를 통하여 제어되는 테스트 케이스 상속 | |
US7124060B1 (en) | Method for isolating a fault from error messages | |
CN100349131C (zh) | 一种应用程序故障的定位方法 | |
CN111045751B (zh) | 多服务配置链式处理方法及装置 | |
CN110399184B (zh) | 区块链中智能合约的执行方法及装置 | |
US9304762B2 (en) | Automatically customizing a computer-executable application at runtime | |
US20140310688A1 (en) | Using stack data and source code to rank program changes | |
CN110795091B (zh) | 一种模块化路由解耦方法、存储介质、电子设备及系统 | |
CN111679852B (zh) | 一种冲突依赖库的检测方法及装置 | |
CN112394939B (zh) | 基于联盟链的用户合约自动部署方法、装置及存储介质 | |
CN102262537B (zh) | 一种工作于混合模式执行引擎中的异常处理方法 | |
Kolovos et al. | The epsilon pattern language | |
CN107463421A (zh) | 一种静态流程模型的编译执行方法及系统 | |
US7356804B2 (en) | Language integrated unit testing | |
CN114510356A (zh) | 微服务之间调用操作的日志追踪方法、装置、设备和介质 | |
US20070168960A1 (en) | On demand software contract modification and termination in running component assemblies | |
CN112668008A (zh) | 一种基于lsm来实现动态的系统调用劫持的方法 | |
CN111352631A (zh) | 一种接口兼容性检测方法及装置 | |
CN114327778A (zh) | 一种基于Webassembly字节码的智能合约虚拟机 | |
Ma et al. | Analyzing distributed Java applications by automatic centralization | |
US20070174734A1 (en) | Failure resistant multiple computer system and method | |
US6606640B2 (en) | Method, computer program product, and system for modifying populated databases utilizing a reload utility |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |