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

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

Info

Publication number
CN108765158A
CN108765158A CN201810552513.1A CN201810552513A CN108765158A CN 108765158 A CN108765158 A CN 108765158A CN 201810552513 A CN201810552513 A CN 201810552513A CN 108765158 A CN108765158 A CN 108765158A
Authority
CN
China
Prior art keywords
contract
intelligent contract
evm
virtual machine
primary
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.)
Granted
Application number
CN201810552513.1A
Other languages
English (en)
Other versions
CN108765158B (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
Cryptape 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 Cryptape Co ltd filed Critical Cryptape 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

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)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (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 (10)

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

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710384A (zh) * 2018-12-29 2019-05-03 杭州趣链科技有限公司 一种安全的Java智能合约解释执行引擎及方法
CN109903163A (zh) * 2019-03-05 2019-06-18 杭州秘猿科技有限公司 一种区块链的出块奖励方法、装置和电子设备
CN109933407A (zh) * 2019-02-26 2019-06-25 上海南潮信息科技有限公司 区块链dapp虚拟机、数据处理方法和计算设备
CN109933328A (zh) * 2019-02-19 2019-06-25 深圳前海达闼云端智能科技有限公司 智能合约的扩展编译方法,区块链节点及系统,存储介质
CN109977638A (zh) * 2019-02-22 2019-07-05 亦非云互联网技术(上海)有限公司 基于以太坊的智能合约更新方法及系统、存储介质及终端
CN110048846A (zh) * 2018-12-12 2019-07-23 阿里巴巴集团控股有限公司 一种基于区块链智能合约的签名验证方法及系统
CN110249307A (zh) * 2018-12-29 2019-09-17 阿里巴巴集团控股有限公司 用于在区块链上执行原生合约的系统和方法
CN110278193A (zh) * 2019-05-20 2019-09-24 阿里巴巴集团控股有限公司 结合代码标注与交易、事件类型的收据存储方法和节点
CN110297721A (zh) * 2019-06-24 2019-10-01 杭州趣链科技有限公司 一种基于java的智能合约的跨合约调用方法
CN110392052A (zh) * 2019-07-22 2019-10-29 中国工商银行股份有限公司 一种区块链智能合约处理系统及方法
CN110543783A (zh) * 2019-08-19 2019-12-06 湖南正宇软件技术开发有限公司 一种投票系统及其实现方法、设备及存储介质
CN110569110A (zh) * 2019-09-11 2019-12-13 杭州秘猿科技有限公司 支持可交互的多虚拟机的区块链方法、电子设备
CN110675256A (zh) * 2019-08-30 2020-01-10 阿里巴巴集团控股有限公司 部署和执行智能合约的方法及装置
CN110704063A (zh) * 2019-09-30 2020-01-17 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
WO2020119379A1 (zh) * 2018-12-12 2020-06-18 阿里巴巴集团控股有限公司 一种基于区块链智能合约的编解码方法及系统
CN111324645A (zh) * 2018-12-14 2020-06-23 北京沃东天骏信息技术有限公司 区块链的数据处理方法及装置
US10733152B2 (en) 2018-12-29 2020-08-04 Alibaba Group Holding Limited System and method for implementing native contract on blockchain
US10783082B2 (en) 2019-08-30 2020-09-22 Alibaba Group Holding Limited Deploying a smart contract
CN111770202A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111768187A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
US10812255B2 (en) 2019-03-04 2020-10-20 Alibaba Group Holding Limited Software interface for smart contracts
CN111815310A (zh) * 2020-08-31 2020-10-23 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
US10860350B2 (en) 2019-03-26 2020-12-08 Advanced New Technologies Co., Ltd. System and method for implementing different types of blockchain contracts
CN112306645A (zh) * 2020-12-24 2021-02-02 北京百度网讯科技有限公司 以太坊虚拟机的事务处理方法、装置、设备、程序和介质
CN112835975A (zh) * 2020-06-05 2021-05-25 支付宝(杭州)信息技术有限公司 一种在区块链中部署、更新、调用智能合约的方法
CN113256296A (zh) * 2021-07-01 2021-08-13 支付宝(杭州)信息技术有限公司 智能合约执行方法、系统、装置和存储介质
CN115759955A (zh) * 2022-10-20 2023-03-07 福建师范大学 一种基于区块链的业务流程执行引擎

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
袁勇: "《区块链技术发展现状与展望》", 《自动化学报》 *

Cited By (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110048846A (zh) * 2018-12-12 2019-07-23 阿里巴巴集团控股有限公司 一种基于区块链智能合约的签名验证方法及系统
WO2020119379A1 (zh) * 2018-12-12 2020-06-18 阿里巴巴集团控股有限公司 一种基于区块链智能合约的编解码方法及系统
CN110048846B (zh) * 2018-12-12 2020-04-14 阿里巴巴集团控股有限公司 一种基于区块链智能合约的签名验证方法及系统
CN111324645A (zh) * 2018-12-14 2020-06-23 北京沃东天骏信息技术有限公司 区块链的数据处理方法及装置
CN111324645B (zh) * 2018-12-14 2023-05-30 北京沃东天骏信息技术有限公司 区块链的数据处理方法及装置
CN109710384A (zh) * 2018-12-29 2019-05-03 杭州趣链科技有限公司 一种安全的Java智能合约解释执行引擎及方法
CN110249307B (zh) * 2018-12-29 2022-05-31 创新先进技术有限公司 用于在区块链上执行原生合约的系统和方法
US11086847B2 (en) 2018-12-29 2021-08-10 Advanced New Technologies Co., Ltd. System and method for implementing native contract on blockchain
US10733152B2 (en) 2018-12-29 2020-08-04 Alibaba Group Holding Limited System and method for implementing native contract on blockchain
CN110249307A (zh) * 2018-12-29 2019-09-17 阿里巴巴集团控股有限公司 用于在区块链上执行原生合约的系统和方法
EP3542494A4 (en) * 2018-12-29 2020-02-26 Alibaba Group Holding Limited SYSTEM AND METHOD FOR IMPLEMENTING A NATIVE CONTRACT ON BLOCKCHAIN
CN109933328A (zh) * 2019-02-19 2019-06-25 深圳前海达闼云端智能科技有限公司 智能合约的扩展编译方法,区块链节点及系统,存储介质
CN109977638A (zh) * 2019-02-22 2019-07-05 亦非云互联网技术(上海)有限公司 基于以太坊的智能合约更新方法及系统、存储介质及终端
CN109933407A (zh) * 2019-02-26 2019-06-25 上海南潮信息科技有限公司 区块链dapp虚拟机、数据处理方法和计算设备
CN109933407B (zh) * 2019-02-26 2021-06-01 上海南潮信息科技有限公司 区块链dapp虚拟机、数据处理方法和计算设备
US10812255B2 (en) 2019-03-04 2020-10-20 Alibaba Group Holding Limited Software interface for smart contracts
CN109903163A (zh) * 2019-03-05 2019-06-18 杭州秘猿科技有限公司 一种区块链的出块奖励方法、装置和电子设备
US10949231B2 (en) 2019-03-26 2021-03-16 Advanced New Technologies Co., Ltd. System and method for implementing different types of blockchain contracts
US10860350B2 (en) 2019-03-26 2020-12-08 Advanced New Technologies Co., Ltd. System and method for implementing different types of blockchain contracts
US10866823B2 (en) 2019-03-26 2020-12-15 Advanced New Technologies Co., Ltd. System and method for implementing different types of blockchain contracts
US11010184B2 (en) 2019-03-26 2021-05-18 Advanced New Technologies Co., Ltd. System and method for implementing different types of blockchain contracts
CN110278193A (zh) * 2019-05-20 2019-09-24 阿里巴巴集团控股有限公司 结合代码标注与交易、事件类型的收据存储方法和节点
CN110278193B (zh) * 2019-05-20 2021-06-01 创新先进技术有限公司 结合代码标注与交易、事件类型的收据存储方法和节点
CN110297721A (zh) * 2019-06-24 2019-10-01 杭州趣链科技有限公司 一种基于java的智能合约的跨合约调用方法
CN110392052A (zh) * 2019-07-22 2019-10-29 中国工商银行股份有限公司 一种区块链智能合约处理系统及方法
CN110392052B (zh) * 2019-07-22 2021-05-25 中国工商银行股份有限公司 一种区块链智能合约处理系统及方法
CN110543783A (zh) * 2019-08-19 2019-12-06 湖南正宇软件技术开发有限公司 一种投票系统及其实现方法、设备及存储介质
CN110675256A (zh) * 2019-08-30 2020-01-10 阿里巴巴集团控股有限公司 部署和执行智能合约的方法及装置
US11010303B2 (en) 2019-08-30 2021-05-18 Advanced New Technologies Co., Ltd. Deploying a smart contract
US11307990B2 (en) 2019-08-30 2022-04-19 Advanced New Technologies Co., Ltd. Deploying a smart contract
US10783082B2 (en) 2019-08-30 2020-09-22 Alibaba Group Holding Limited Deploying a smart contract
CN110569110A (zh) * 2019-09-11 2019-12-13 杭州秘猿科技有限公司 支持可交互的多虚拟机的区块链方法、电子设备
CN110569110B (zh) * 2019-09-11 2022-01-11 杭州秘猿科技有限公司 支持可交互的多虚拟机的区块链方法、电子设备
CN110704063B (zh) * 2019-09-30 2021-09-07 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN110704063A (zh) * 2019-09-30 2020-01-17 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN112835975B (zh) * 2020-06-05 2023-09-29 支付宝(杭州)信息技术有限公司 一种在区块链中部署、更新、调用智能合约的方法
CN112835975A (zh) * 2020-06-05 2021-05-25 支付宝(杭州)信息技术有限公司 一种在区块链中部署、更新、调用智能合约的方法
CN111768187A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
CN111770202A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
US11544044B2 (en) 2020-08-31 2023-01-03 Alipay (Hangzhou) Information Technology Co., Ltd. Methods, blockchain nodes, and storage media for executing smart contract
US11551206B2 (en) 2020-08-31 2023-01-10 Alipay (Hangzhou) Information Technology Co., Ltd. Methods, blockchain nodes, and storage media for deploying smart contract
CN111815310A (zh) * 2020-08-31 2020-10-23 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN112306645B (zh) * 2020-12-24 2021-05-04 北京百度网讯科技有限公司 以太坊虚拟机的事务处理方法、装置、设备和介质
US11397827B2 (en) 2020-12-24 2022-07-26 Beijing Baidu Netcom Science And Technology Co., Ltd. EVM-based transaction processing method, device, program and medium
CN112306645A (zh) * 2020-12-24 2021-02-02 北京百度网讯科技有限公司 以太坊虚拟机的事务处理方法、装置、设备、程序和介质
CN113256296A (zh) * 2021-07-01 2021-08-13 支付宝(杭州)信息技术有限公司 智能合约执行方法、系统、装置和存储介质
CN115759955A (zh) * 2022-10-20 2023-03-07 福建师范大学 一种基于区块链的业务流程执行引擎
CN115759955B (zh) * 2022-10-20 2023-08-04 福建师范大学 一种基于区块链的业务流程执行引擎

Also Published As

Publication number Publication date
CN108765158B (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
CN108765158A (zh) 一种基于区块链的智能合约引擎系统及其合约执行方法
Niemeyer et al. Learning java
US9996323B2 (en) Methods and systems for utilizing bytecode in an on-demand service environment including providing multi-tenant runtime environments and systems
CN101421711B (zh) 用于资源受限设备的虚拟执行系统
US8261248B2 (en) System and method of executing a dynamic program in a structured environment
CN111770113A (zh) 一种执行智能合约的方法、区块链节点和节点设备
CN111045668B (zh) 一种跨平台的移动端系统开发方法及装置
CN106302442A (zh) 一种基于Java语言的网络通讯数据包解析方法
CN107450928B (zh) 一种基于缓存技术的混合开发方法
CN108874372B (zh) 一种基于Scala的区块链合约实现方法及系统
CN105404794B (zh) Java应用软件的保护方法和装置
EP2479663A1 (en) Resource management method and system
CN103838572A (zh) 一种安卓开发包的打包系统和方法
Prezerakos et al. Model-driven composition of context-aware web services using ContextUML and aspects
CN102455931A (zh) 一种Android平台工程的开发方法及系统
CN103092583A (zh) 一种动态生成设置项列表视图的方法及装置
CN110045956A (zh) 组件的配置方法、装置、设备及可读存储介质
CN107133055A (zh) 一种基于ClassLoader实现定制开发的方法
CN103176838A (zh) 兼容Android本机程序的方法及系统
CN102999371B (zh) 基于Lua脚本的人机界面开发方法及系统
CN105653351A (zh) java卡虚拟机的优化方法及系统
CN105094849B (zh) 一种插件的资源调用方法和装置
US7350211B2 (en) Middleware application environment
CN105005497A (zh) 一种Java卡虚拟机中本地函数的调用方法及装置
CN103631645A (zh) 一种基于数字医疗的数字家庭中间件系统

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

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.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant