CN108765158B - 一种基于区块链的智能合约引擎系统及其合约执行方法 - Google Patents

一种基于区块链的智能合约引擎系统及其合约执行方法 Download PDF

Info

Publication number
CN108765158B
CN108765158B CN201810552513.1A CN201810552513A CN108765158B CN 108765158 B CN108765158 B CN 108765158B CN 201810552513 A CN201810552513 A CN 201810552513A CN 108765158 B CN108765158 B CN 108765158B
Authority
CN
China
Prior art keywords
intelligent contract
contract
evm
virtual machine
native
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
Application number
CN201810552513.1A
Other languages
English (en)
Other versions
CN108765158A (zh
Inventor
谢晗剑
李华丰
胡焰林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Rivtower Technology Co Ltd
Original Assignee
Hangzhou Rivtower Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Rivtower Technology Co Ltd filed Critical Hangzhou Rivtower Technology Co Ltd
Priority to CN201810552513.1A priority Critical patent/CN108765158B/zh
Publication of CN108765158A publication Critical patent/CN108765158A/zh
Application granted granted Critical
Publication of CN108765158B publication Critical patent/CN108765158B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于区块链的智能合约引擎系统及其合约执行方法,包括:用户接口层、智能合约系统层和区块链访问接口层;所述用户接口层,用于向用户提供统一的接口,通过所述统一的接口,用户能够以完全相同的数据交互方式与所述智能合约系统层中的智能合约交互;所述智能合约系统层,用于执行智能合约;所述区块链访问接口层,用于为所述智能合约系统层中的智能合约提供统一的访问区块链数据的接口。本发明能够克服现有合约引擎系统采用EVM的方式造成的因执行速度慢而制约性能、因表达能力受限而制约可扩展性的缺陷;同时本发明也能够克服采用Docker的方式造成的因启动时间长影响整体效率的缺陷。

Description

一种基于区块链的智能合约引擎系统及其合约执行方法
技术领域
本发明属于计算机数据处理与计算领域,尤其涉及一种基于区块链的智能合约引擎系统及其合约执行方法。
背景技术
“智能合约”的概念是1994年由密码学家尼克萨博(Nick Szabo)首次提出,在本质上是一种自动合约,类似于计算机程序设计中的if-then语句,当一个预先编好的条件被触发时,智能合约能够自动执行相应的合同条款。智能合约较为普遍的应用是金融领域,几乎每一类金融合约都可以用程序代码的形式写成智能合约。
“智能合约”的概念提出之后,没有找到很好的落地实践方法,直到区块链的出现。区块链2.0时代,则被定义为“区块链+智能合约”,可见智能合约在区块链中的重要性。
以太坊(Ethereum)平台支持以太坊虚拟机(以太坊虚拟机(EVM)),可使用贴近机器的基于堆栈字节码的低级类汇编语言写成,被称为“以太坊虚拟机代码”(以太坊虚拟机(EVM)代码)。而对于开发应用合约编写人员,则可使用Solidity、Serpent、LLL等图灵完备语言较为方便的编写智能合约,编译城虚拟机字节码后,可在虚拟机上解释执行。但是,虚拟机解释执行的速度较慢,在大量交易发生时可能会存在性能瓶颈;而且虚拟机上执行语言的表达能力受限,不便于扩展。
而超级帐本中的子项目Fabric则采用轻量、可移植的Docker容器作为其智能合约的执行环境。它可以实现资源隔离,具体是通过一种称作“Chaincode”的方式来实现,相对于虚拟机代码执行的效率更高,支持用任意的高级语言来编写智能合约。但是Docker本身启动时间长、效率较低,成为制约整体效率的性能瓶颈。
鉴于上述缺点,亟需提出一种新的智能合约引擎及方法。
发明内容
本说明书实施例提供一种基于区块链的智能合约引擎系统及其合约执行方法,用以克服现有合约执行方法启动时间长、效率较低,制约整体效率的性能的缺陷,且具有很好的扩展性。
本说明书实施例采用下述技术方案:
第一方面,提供了一种基于区块链的智能合约引擎系统,所述合约引擎系统包括:用户接口层、智能合约系统层和区块链访问接口层;
所述用户接口层,用于向用户提供统一的接口,通过所述统一的接口,用户能够以完全相同的数据交互方式与所述智能合约系统层中的智能合约交互;
所述智能合约系统层,用于执行智能合约;
所述区块链访问接口层,用于为所述智能合约系统层中的智能合约提供统一的访问区块链数据的接口。
进一步可选的,所述智能合约系统层包括原生智能合约系统与以太坊虚拟机(EVM)智能合约系统。
进一步可选的,所述原生智能合约系统和所述以太坊虚拟机(EVM)智能合约系统并行的位于所述智能合约系统层的同一层级中,使得原生智能合约系统能够方便的替换和扩展所述以太坊虚拟机(EVM)智能合约系统。
进一步可选的,所述统一的接口与太坊虚拟机(EVM)智能合约系统的数据访问接口一致,从而用户在调用所述智能合约系统层中的智能合约时,不需要考虑调用的智能合约是原生智能合约还是以太坊虚拟机(EVM)智能合约;
所述区块链访问接口层的接口与以太坊虚拟机(EVM)智能合约系统的接口一致。
进一步可选的,所述智能合约系统层中的原生智能合约系统中的原生智能合约,依托于原生语言,且兼容以太坊虚拟机(EVM)智能合约的数据结构。
第二方面,提供了一种基于所述的智能合约引擎系统的合约执行方法,包括:
S1.用户使用区块链系统语言编写原生智能合约,所述原生智能合约上层满足以太坊虚拟机(EVM)智能合约系统的接口要求;
S2.依据所述原生智能合约注册的合约地址获取合约内容,调用exec执行接口,该接口能够根据函数签名执行合约的功能逻辑;
S3.上述原生智能合约经过原生编译器编译后生成目标机器的可执行代码,在机器上执行,通过区块链访问接口层调用区块链数据。
第三方面,还提供了另一种基于所述的智能合约引擎系统的合约执行方法,包括:
S1.用户使用脚本高级语言编写太坊虚拟机(EVM)智能合约;和/或通过以太坊虚拟机(EVM)智能合约系统的接口,调用满足以太坊虚拟机(EVM)智能合约系统的接口要求的原生智能合约;
S2.对于用户使用脚本高级语言编写的太坊虚拟机(EVM)智能合约,智能合约经脚本语言编译器编译成以太坊虚拟机(EVM)字节码,依据合约地址,以太坊虚拟机(EVM)字节码中的至少部分在以太坊虚拟机(EVM)合约引擎下,在以太坊虚拟机(EVM)环境下解释执行;
对于经接口调用的原生智能合约,在原生智能合约引擎下,经过原生编译器编译后先生成机器可执行代码,然后在机器执行。
第四方面,还提供了另一种智能合约引擎系统的合约执行方法,其特征在于:
如果待执行的合约仅为原生智能合约,则通过以下步骤执行:
S1.令所述原生智能合约满足以太坊虚拟机(EVM)智能合约系统的接口要求;
S2.依据所述原生智能合约注册的合约地址获取合约内容,调用exec执行接口,该接口能够根据函数签名执行合约的功能逻辑;
S3.上述原生智能合约经过原生编译器编译后生成目标机器的可执行代码,在机器上执行,通过区块链访问接口层调用区块链数据;
如果待执行的合约为太坊虚拟机(EVM)智能合约,则智能合约经脚本语言编译器编译成以太坊虚拟机(EVM)字节码,依据合约地址,以太坊虚拟机(EVM)字节码中的至少部分在以太坊虚拟机(EVM)合约引擎下,在以太坊虚拟机(EVM)环境下解释执行;
如果待执行的合约为太坊虚拟机(EVM)智能合约和通过以太坊虚拟机(EVM)智能合约系统的接口调用的满足以太坊虚拟机(EVM)智能合约系统的接口要求的原生智能合约,则通过以下步骤执行:
对于用户使用脚本高级语言编写的太坊虚拟机(EVM)智能合约,智能合约经脚本语言编译器编译成以太坊虚拟机(EVM)字节码,依据合约地址,以太坊虚拟机(EVM)字节码中的至少部分在以太坊虚拟机(EVM)合约引擎下,在以太坊虚拟机(EVM)环境下解释执行;对于经接口调用的原生智能合约,在原生智能合约引擎下,经过原生编译器编译后先生成机器可执行代码,然后在机器执行。
进一步可选的,所述步骤S1中,用户使用区块链系统语言编写的原生智能合约,包括合约结构定义,合约要实现的功能函数及用户签名。
进一步可选的,基于所述原生智能合约满足以太坊虚拟机(EVM)智能合约系统的接口要求,使得太坊虚拟机(EVM)能够基于所述原生智能合约的功能函数和参数,执行所述原生智能合约的功能,创建合约实例,以及利用注册表机制创建及销毁所述原生智能合约。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
(1)智能合约系统层包括原生智能合约系统与以太坊虚拟机(EVM)智能合约系统,支持多种形式的合约引擎;
(2)采用原生智能合约系统和所述以太坊虚拟机(EVM)智能合约系统并行的位于所述智能合约系统层的同一层级中,原生智能合约系统能够方便的替换和扩展所述以太坊虚拟机(EVM)智能合约,技术方案功能上能够与以太坊虚拟机(EVM)智能合约系统等价,并能够方便的进行扩展;
(3)使用一致性接口,不同形式的智能合约之间能够灵活调用,且系统在执行效率上优于以太坊虚拟机(EVM)智能合约;
(4)支持多种执行器,并允许用户混合使用多种智能合约;
(5)能够克服现有合约执行方法启动时间长、效率较低,制约整体效率的性能的瓶颈缺陷。
附图说明
图1是本发明实施例所述的一种智能合约系统的结构图。
图2是本发明实施例所述的一种基于所述的智能合约引擎系统的合约执行方法的流程图。
图3是本发明实施例3中具体的实施示意图。
图4是本发明实施例4中具体的实施示意图。
具体实施方式
为使本说明书实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书实施例保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
需要说明的是,在本说明书实施例中,支持多种形式的合约引擎,涉及但不限于以下两种合约引擎:
(1)以太坊虚拟机(EVM)合约引擎
用户可使用高级语言(如高级脚本语言Solidity)方便的编写智能合约,通过Solc编译器或Remix集成开发环境开发和测试,最后通过合约创建或调用接口来部署或调用合约。
(2)原生智能合约引擎
使用区块链系统所使用的原生语言编写智能合约,即“原生智能合约”来实现合约业务开发,合约经过编译后生成机器码在机器上直接执行,执行效率较虚拟机执行更高,也更贴近系统。而合约调用接口与上述方法一致。原生智能合约兼容以太坊虚拟机(EVM)合约的数据访问接口。同时也提供了注册表机制,用户可以实现合约的创建与销毁。
实施例一
参照图1所示,为本说明书实施例提供的一种基于区块链的智能合约引擎系统的步骤示意图,其中,所述合约引擎系统包括:用户接口层、智能合约系统层和区块链访问接口层;
所述用户接口层,用于向用户提供统一的接口,通过所述统一的接口,用户能够以完全相同的数据交互方式与所述智能合约系统层中的智能合约交互;
所述智能合约系统层,用于执行智能合约;
所述区块链访问接口层,用于为所述智能合约系统层中的智能合约提供统一的访问区块链数据的接口。
进一步可选的,所述智能合约系统层包括原生智能合约系统与以太坊虚拟机(EVM)智能合约系统。
进一步可选的,所述原生智能合约系统和所述以太坊虚拟机(EVM)智能合约系统并行的位于所述智能合约系统层的同一层级中,使得原生智能合约系统能够方便的替换和扩展所述以太坊虚拟机(EVM)智能合约系统。
进一步可选的,所述统一的接口与太坊虚拟机(EVM)智能合约系统的数据访问接口一致,从而用户在调用所述智能合约系统层中的智能合约时,不需要考虑调用的智能合约是原生智能合约还是以太坊虚拟机(EVM)智能合约;
所述区块链访问接口层的接口与以太坊虚拟机(EVM)智能合约系统的接口一致。
进一步可选的,所述智能合约系统层中的原生智能合约系统中的原生智能合约,依托于原生语言,且兼容以太坊虚拟机(EVM)智能合约的数据结构。
实施例二
参照图2所示,为本说明书实施例提供的一种基于所述的智能合约引擎系统的合约执行方法,如果待执行的合约仅为原生智能合约,则通过以下步骤执行:
S1.令所述原生智能合约满足以太坊虚拟机(EVM)智能合约系统的接口要求;
S2.依据所述原生智能合约注册的合约地址获取合约内容,调用exec执行接口,该接口能够根据函数签名执行合约的功能逻辑;
S3.上述原生智能合约经过原生编译器编译后生成目标机器的可执行代码,在机器上执行,通过区块链访问接口层调用区块链数据;
如果待执行的合约为太坊虚拟机(EVM)智能合约,则智能合约经脚本语言编译器编译成以太坊虚拟机(EVM)字节码,依据合约地址,以太坊虚拟机(EVM)字节码中的至少部分在以太坊虚拟机(EVM)合约引擎下,在以太坊虚拟机(EVM)环境下解释执行;
如果待执行的合约为太坊虚拟机(EVM)智能合约和通过以太坊虚拟机(EVM)智能合约系统的接口调用的满足以太坊虚拟机(EVM)智能合约系统的接口要求的原生智能合约,则通过以下步骤执行:
对于用户使用脚本高级语言编写的太坊虚拟机(EVM)智能合约,智能合约经脚本语言编译器编译成以太坊虚拟机(EVM)字节码,依据合约地址,以太坊虚拟机(EVM)字节码中的至少部分在以太坊虚拟机(EVM)合约引擎下,在以太坊虚拟机(EVM)环境下解释执行;对于经接口调用的原生智能合约,在原生智能合约引擎下,经过原生编译器编译后先生成机器可执行代码,然后在机器执行。
进一步可选的,所述步骤S1中,用户使用区块链系统语言编写的原生智能合约,包括合约结构定义,合约要实现的功能函数及用户签名。
进一步可选的,基于所述原生智能合约满足以太坊虚拟机(EVM)智能合约系统的接口要求,使得太坊虚拟机(EVM)能够基于所述原生智能合约的功能函数和参数,执行所述原生智能合约的功能,创建合约实例,以及利用注册表机制创建及销毁所述原生智能合约。
实施例三
本说明书实施例提供了一种基于所述的智能合约引擎系统的合约执行方法,包括:
S1.用户使用区块链系统语言编写原生智能合约,所述原生智能合约上层满足以太坊虚拟机(EVM)智能合约系统的接口要求;
S2.依据所述原生智能合约注册的合约地址获取合约内容,调用exec执行接口,该接口能够根据函数签名执行合约的功能逻辑;
S3.上述原生智能合约经区块链访问接口层调用,经过原生编译器编译后生成机器可执行代码,在机器上执行。
进一步可选的,所述步骤S1中,用户使用区块链系统语言编写的原生智能合约,包括合约结构定义,合约要实现的功能函数及用户签名。
进一步可选的,基于所述原生智能合约满足以太坊虚拟机(EVM)智能合约系统的接口要求,使得太坊虚拟机(EVM)能够基于所述原生智能合约的功能函数和参数,执行所述原生智能合约的功能,创建合约实例,以及利用注册表机制创建及销毁所述原生智能合约。
具体的,参照图3所示:
1用户使用区块链系统语言编写智能合约,上层满足以太坊虚拟机(EVM)智能合约系统的接口,在实现中调用区块链访问接口。
具体地,包含如下部分:
用户实现业务或应用对应的原生智能合约,含合约结构定义,要实现的功能函数功能及签名。
实现兼容以太坊虚拟机(EVM)的一致性接口:依据合约参数执行功能、创建合约实例。
利用注册表机制,支持创建及销毁合约。
上述合约内容编写完成后,依据注册的合约地址获取合约内容,调用exec执行接口,该接口实现依据函数签名执行合约的功能逻辑。
2上述原生智能合约经过原生编译器编译后生成目标机器的可执行代码,在机器上执行,通过区块链访问接口层调用区块链数据。。
实施例四
本说明书实施例提供了一种基于所述的智能合约引擎系统的合约执行方法,包括:
S1.用户使用脚本高级语言编写太坊虚拟机(EVM)智能合约;和/或通过以太坊虚拟机(EVM)智能合约系统的接口,调用满足以太坊虚拟机(EVM)智能合约系统的接口要求的原生智能合约;
S2.对于用户使用脚本高级语言编写的太坊虚拟机(EVM)智能合约,智能合约经脚本语言编译器编译成以太坊虚拟机(EVM)字节码,依据合约地址,以太坊虚拟机(EVM)字节码中的至少部分在以太坊虚拟机(EVM)合约引擎下,在以太坊虚拟机(EVM)环境下解释执行;
对于经接口调用的原生智能合约,在原生智能合约引擎下,经过原生编译器编译后先生成机器可执行代码,然后在机器执行。
具体的,参照图4所示:
1用户使用脚本高级语言(如Solidity)编写智能合约,对于较为复杂数据结构及脚本语言无法表达场景下,通过调用满足以太坊虚拟机(EVM)智能合约系统的接口(如通过填充合约地址等参数,调用call合约调用接口),调用原生智能合约。
2智能合约经脚本语言编译器编译成以太坊虚拟机(EVM)字节码,依据合约地址,以太坊虚拟机(EVM)字节码部分在以太坊虚拟机(EVM)合约引擎下,在以太坊虚拟机(EVM)环境下解释执行。
3经调用合约接口调用原生智能合约的部分,在原生智能合约引擎下,经过原生编译器编译后先生成机器可执行代码,然后在在机器执行。
改种方案功能上能够与以太坊虚拟机(EVM)智能合约系统等价,并能够进行扩展;在执行效率上优于以太坊虚拟机(EVM)智能合约。
本发明是一种支持多种合约引擎及实现方法,是可使用多种合约语言编写智能合约的系统。有必要指出的是,以下具体实施方式只是对本发明的进一步说明,本质上本发明可以适用于一切使用原生语言开发智能合约语言的实施例。
本发明提出的基于区块链多合约引擎的智能合约系统,可以兼容虚拟机智能合约系统,并能够提高执行性能,可以灵活扩展。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书实施例中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (9)

1.一种基于区块链的智能合约引擎系统,其特征在于,所述合约引擎系统包括:用户接口层、智能合约系统层和区块链访问接口层;
所述用户接口层,用于向用户提供统一的接口,通过所述统一的接口,用户能够以完全相同的数据交互方式与所述智能合约系统层中的智能合约交互;
所述智能合约系统层,用于执行智能合约,其中,所述智能合约系统层包括原生智能合约系统与以太坊虚拟机(EVM)智能合约系统;
所述区块链访问接口层,用于为所述智能合约系统层中的智能合约提供统一的访问区块链数据的接口。
2.根据权利要求1所述的智能合约引擎系统,其特征在于,所述原生智能合约系统和所述以太坊虚拟机(EVM)智能合约系统并行的位于所述智能合约系统层的同一层级中,使得原生智能合约系统能够方便的替换和扩展所述以太坊虚拟机(EVM)智能合约系统。
3.根据权利要求1所述的智能合约引擎系统,其特征在于,所述统一的接口与太坊虚拟机(EVM)智能合约系统的数据访问接口一致,从而用户在调用所述智能合约系统层中的智能合约时,不需要考虑调用的智能合约是原生智能合约还是以太坊虚拟机(EVM)智能合约;
所述区块链访问接口层的接口与以太坊虚拟机(EVM)智能合约系统的接口一致。
4.根据权利要求1所述的智能合约引擎系统,其特征在于,所述智能合约系统层中的原生智能合约系统中的原生智能合约,依托于原生语言,且兼容以太坊虚拟机(EVM)智能合约的数据结构。
5.一种基于权利要求1-4中任一项所述的智能合约引擎系统的合约执行方法,包括:
S1.用户使用区块链系统语言编写原生智能合约,所述原生智能合约上层满足以太坊虚拟机(EVM)智能合约系统的接口要求;
S2.依据所述原生智能合约注册的合约地址获取合约内容,调用exec执行接口,该接口能够根据函数签名执行合约的功能逻辑;
S3.上述原生智能合约经过系统编译器编译后生成目标机器的可执行代码,在机器上执行,通过区块链访问接口层调用区块链数据。
6.一种基于权利要求1-4中任一项所述的智能合约引擎系统的合约执行方法,包括:
S1.用户使用脚本高级语言编写太坊虚拟机(EVM)智能合约;和/或通过以太坊虚拟机(EVM)智能合约系统的接口,调用满足以太坊虚拟机(EVM)智能合约系统的接口要求的原生智能合约;
S2.对于用户使用脚本高级语言编写的太坊虚拟机(EVM)智能合约,智能合约经脚本语言编译器编译成以太坊虚拟机(EVM)字节码,依据合约地址,以太坊虚拟机(EVM)字节码中的至少部分在以太坊虚拟机(EVM)合约引擎下,在以太坊虚拟机(EVM)环境下解释执行;
对于经接口调用的原生智能合约,在原生智能合约引擎下,经过原生编译器编译后先生成机器可执行代码,然后在机器执行。
7.一种基于权利要求1-4中任一项所述的智能合约引擎系统的合约执行方法,其特征在于:
如果待执行的合约仅为原生智能合约,则通过以下步骤执行:
S1.令所述原生智能合约满足以太坊虚拟机(EVM)智能合约系统的接口要求;
S2.依据所述原生智能合约注册的合约地址获取合约内容,调用exec执行接口,该接口能够根据函数签名执行合约的功能逻辑;
S3.上述原生智能合约经过系统编译器编译后生成目标机器的可执行代码,在机器上执行,通过区块链访问接口层调用区块链数据;
如果待执行的合约为太坊虚拟机(EVM)智能合约,则智能合约经脚本语言编译器编译成以太坊虚拟机(EVM)字节码,依据合约地址,以太坊虚拟机(EVM)字节码中的至少部分在以太坊虚拟机(EVM)合约引擎下,在以太坊虚拟机(EVM)环境下解释执行;
如果待执行的合约为太坊虚拟机(EVM)智能合约和通过以太坊虚拟机(EVM)智能合约系统的接口调用的满足以太坊虚拟机(EVM)智能合约系统的接口要求的原生智能合约,则通过以下步骤执行:
对于用户使用脚本高级语言编写的太坊虚拟机(EVM)智能合约,智能合约经脚本语言编译器编译成以太坊虚拟机(EVM)字节码,依据合约地址,以太坊虚拟机(EVM)字节码中的至少部分在以太坊虚拟机(EVM)合约引擎下,在以 太坊虚拟机(EVM)环境下解释执行;对于经接口调用的原生智能合约,在原生智能合约引擎下,经过原生编译器编译后先生成机器可执行代码,然后在机器执行。
8.根据权利要求7所述的合约执行方法,其特征在于,所述步骤S1中,用户使用区块链系统语言编写的原生智能合约,包括合约结构定义,合约要实现的功能函数及用户签名。
9.根据权利要求7所述的合约执行方法,其特征在于,基于所述原生智能合约满足以太坊虚拟机(EVM)智能合约系统的接口要求,使得太坊虚拟机(EVM)能够基于所述原生智能合约的功能函数和参数,执行所述原生智能合约的功能,创建合约实例,以及利用注册表机制创建及销毁所述原生智能合约。
CN201810552513.1A 2018-05-31 2018-05-31 一种基于区块链的智能合约引擎系统及其合约执行方法 Active CN108765158B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810552513.1A CN108765158B (zh) 2018-05-31 2018-05-31 一种基于区块链的智能合约引擎系统及其合约执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810552513.1A CN108765158B (zh) 2018-05-31 2018-05-31 一种基于区块链的智能合约引擎系统及其合约执行方法

Publications (2)

Publication Number Publication Date
CN108765158A CN108765158A (zh) 2018-11-06
CN108765158B true CN108765158B (zh) 2020-11-24

Family

ID=64001552

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810552513.1A Active CN108765158B (zh) 2018-05-31 2018-05-31 一种基于区块链的智能合约引擎系统及其合约执行方法

Country Status (1)

Country Link
CN (1) CN108765158B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110048846B (zh) * 2018-12-12 2020-04-14 阿里巴巴集团控股有限公司 一种基于区块链智能合约的签名验证方法及系统
CN109933404B (zh) * 2018-12-12 2020-05-12 阿里巴巴集团控股有限公司 一种基于区块链智能合约的编解码方法及系统
CN111324645B (zh) * 2018-12-14 2023-05-30 北京沃东天骏信息技术有限公司 区块链的数据处理方法及装置
CN109710384B (zh) * 2018-12-29 2021-02-23 杭州趣链科技有限公司 一种安全的Java智能合约解释执行引擎及方法
PL3542494T3 (pl) * 2018-12-29 2021-08-23 Advanced New Technologies Co., Ltd. System i sposób realizacji umowy wewnętrznej w łańcuchu bloków
US10733152B2 (en) 2018-12-29 2020-08-04 Alibaba Group Holding Limited System and method for implementing native contract on blockchain
CN109933328B (zh) * 2019-02-19 2023-07-21 达闼机器人股份有限公司 智能合约的扩展编译方法,区块链节点及系统,存储介质
CN109977638A (zh) * 2019-02-22 2019-07-05 亦非云互联网技术(上海)有限公司 基于以太坊的智能合约更新方法及系统、存储介质及终端
CN109933407B (zh) * 2019-02-26 2021-06-01 上海南潮信息科技有限公司 区块链dapp虚拟机、数据处理方法和计算设备
WO2019101236A2 (en) 2019-03-04 2019-05-31 Alibaba Group Holding Limited Software interface for smart contracts
CN109903163A (zh) * 2019-03-05 2019-06-18 杭州秘猿科技有限公司 一种区块链的出块奖励方法、装置和电子设备
SG11201908890XA (en) 2019-03-26 2019-10-30 Alibaba Group Holding Ltd System and method for implementing different types of blockchain contracts
CN110278193B (zh) * 2019-05-20 2021-06-01 创新先进技术有限公司 结合代码标注与交易、事件类型的收据存储方法和节点
CN110297721B (zh) * 2019-06-24 2021-08-03 杭州趣链科技有限公司 一种基于java的智能合约的跨合约调用方法
CN110392052B (zh) * 2019-07-22 2021-05-25 中国工商银行股份有限公司 一种区块链智能合约处理系统及方法
CN110543783A (zh) * 2019-08-19 2019-12-06 湖南正宇软件技术开发有限公司 一种投票系统及其实现方法、设备及存储介质
US10783082B2 (en) 2019-08-30 2020-09-22 Alibaba Group Holding Limited Deploying a smart contract
CN110675256B (zh) * 2019-08-30 2020-08-21 阿里巴巴集团控股有限公司 部署和执行智能合约的方法及装置
CN110569110B (zh) * 2019-09-11 2022-01-11 杭州秘猿科技有限公司 支持可交互的多虚拟机的区块链方法、电子设备
CN110704063B (zh) * 2019-09-30 2021-09-07 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN112835975B (zh) * 2020-06-05 2023-09-29 支付宝(杭州)信息技术有限公司 一种在区块链中部署、更新、调用智能合约的方法
CN111770202B (zh) * 2020-08-31 2021-10-29 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111815310B (zh) * 2020-08-31 2021-08-17 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111768187A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
CN112306645B (zh) * 2020-12-24 2021-05-04 北京百度网讯科技有限公司 以太坊虚拟机的事务处理方法、装置、设备和介质
CN113256296B (zh) * 2021-07-01 2021-10-08 支付宝(杭州)信息技术有限公司 智能合约执行方法、系统、装置和存储介质
CN115759955B (zh) * 2022-10-20 2023-08-04 福建师范大学 一种基于区块链的业务流程执行引擎

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951307A (zh) * 2017-03-06 2017-07-14 钱德君 一种智能合约虚拟机实现方法
CN107317730A (zh) * 2017-08-21 2017-11-03 上海点融信息科技有限责任公司 用于监控区块链节点状态的方法、设备和系统
CN107360238A (zh) * 2017-07-25 2017-11-17 光载无限(北京)科技有限公司 基于区块链cpow共识算法的智能合约网关
CN107526624A (zh) * 2017-07-18 2017-12-29 杭州趣链科技有限公司 一种基于Java虚拟机的智能合约执行引擎
CN107562513A (zh) * 2017-07-18 2018-01-09 杭州趣链科技有限公司 一种基于java的智能合约生命周期的管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951307A (zh) * 2017-03-06 2017-07-14 钱德君 一种智能合约虚拟机实现方法
CN107526624A (zh) * 2017-07-18 2017-12-29 杭州趣链科技有限公司 一种基于Java虚拟机的智能合约执行引擎
CN107562513A (zh) * 2017-07-18 2018-01-09 杭州趣链科技有限公司 一种基于java的智能合约生命周期的管理方法
CN107360238A (zh) * 2017-07-25 2017-11-17 光载无限(北京)科技有限公司 基于区块链cpow共识算法的智能合约网关
CN107317730A (zh) * 2017-08-21 2017-11-03 上海点融信息科技有限责任公司 用于监控区块链节点状态的方法、设备和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《区块链技术发展现状与展望》;袁勇;《自动化学报》;20160430;第42卷(第4期);第481-492页,附图2、5, *

Also Published As

Publication number Publication date
CN108765158A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
CN108765158B (zh) 一种基于区块链的智能合约引擎系统及其合约执行方法
CN110912724B (zh) 一种基于参数驱动的自动业务编排方法及装置
US7421716B1 (en) System and method for providing composite applications
US8261248B2 (en) System and method of executing a dynamic program in a structured environment
US6330711B1 (en) Method and apparatus for dynamic application and maintenance of programs
CN101470621A (zh) 虚拟机配置系统
JP2017027635A (ja) オブジェクト指向スクリプトツールをサポートするシステムおよび方法
CN111061487A (zh) 一种基于容器的负载均衡分布式编译系统和方法
CN102073525A (zh) 基于Java平台的Web业务系统的动态升级方法及装置
CN107977572B (zh) 一种应用程序运行方法和装置、智能终端
Shafiei et al. Automatic handling of native methods in Java PathFinder
JP2004503866A (ja) モジュラーコンピュータシステムおよび関連方法
Xu et al. Caople: A programming language for microservices saas
US7219341B2 (en) Code analysis for selective runtime data processing
WO2022237590A1 (zh) 智能合约升级方法及区块链系统
CN101655804B (zh) 虚拟操作系统构建方法及装置
CN117057108B (zh) 一种基于Python的CAE软件领域特定语言系统
CN113177292B (zh) 一种通用的bim二次开发实现方法和装置
CN113220327B (zh) 智能合约升级方法及区块链系统
Gotanda et al. Short paper: Highly compatible fast container startup with lazy layer pull
Dantas et al. Towards aspect-oriented programming for context-aware systems: A comparative study
US7703108B2 (en) Native code isolation in a multi-tasking Java virtual machine
TĂBUȘCĂ et al. FLUTTER TECHNOLOGY AND MOBILE SOFTWARE APPLICATIONS.
KR101213651B1 (ko) 운영체제의 초기화 스크립트의 이진화 방법, 및 그 이진화 스크립트의 실행 방법
Vermeir MAUI

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200318

Address after: 310012 no.1001, 10 / F, block a, Huaxing Times Square, No.478, Wensan Road, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Xita Technology Co.,Ltd.

Address before: 310013 A 1301, Huaxing Times Square, 478 Wensanlu Road, Xihu District, Hangzhou, Zhejiang.

Applicant before: CRYPTAPE Co.,Ltd.

GR01 Patent grant
GR01 Patent grant