CN112529711B - 基于区块链虚拟机复用的交易处理方法及装置 - Google Patents
基于区块链虚拟机复用的交易处理方法及装置 Download PDFInfo
- Publication number
- CN112529711B CN112529711B CN202110176859.8A CN202110176859A CN112529711B CN 112529711 B CN112529711 B CN 112529711B CN 202110176859 A CN202110176859 A CN 202110176859A CN 112529711 B CN112529711 B CN 112529711B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- target
- intelligent contract
- transaction
- pool
- 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
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请的实施例揭示了一种基于区块链虚拟机复用的交易处理方法及装置,该方法包括:获取待处理的交易;根据所述交易中含有的智能合约标识,从虚拟机池中查找目标虚拟机,所述虚拟机池用于存储加载有智能合约的区块链虚拟机,所述目标虚拟机中加载有所述智能合约标识指示的目标智能合约;调用所述目标虚拟机,以通过所述目标虚拟机中加载的目标智能合约执行所述交易;在执行完所述交易之后终止调用所述目标虚拟机,终止调用的所述目标虚拟机在所述虚拟机池中等待复用。本申请实施例的技术方案能够提升交易的执行效率,并相应提升区块链***的性能。
Description
技术领域
本申请涉及区块链技术领域,具体而言,涉及一种基于区块链虚拟机复用的交易处理方法及装置、电子设备、计算机可读存储介质。
背景技术
区块链虚拟机是智能合约执行的沙箱,区块链虚拟机为智能合约提供了基本的能力,例如计算、获取链上数据、数据库读写等。
在执行交易之前,通常需要为每笔交易创建一个区块链虚拟机,并将智能合约加载到区块链虚拟机中,以通过区块链虚拟机中加载的智能合约执行交易。但是,创建区块链虚拟机的过程以及将智能合约加载到区块链虚拟机中的过程耗时非常大,导致智能合约执行交易的效率较低,也使得整个区块链***的性能不高。
发明内容
为解决上述技术问题,本申请的实施例提供了一种基于区块链虚拟机复用的交易处理方法及装置、电子设备、计算机可读存储介质。
根据本申请实施例的一个方面,提供了一种基于区块链虚拟机复用的交易处理方法,包括:获取待处理的交易;根据所述交易中含有的智能合约标识,从虚拟机池中查找目标虚拟机,所述虚拟机池用于存储加载有智能合约的区块链虚拟机,所述目标虚拟机中加载有所述智能合约标识指示的目标智能合约;调用所述目标虚拟机,以通过所述目标虚拟机中加载的目标智能合约执行所述交易;在执行完所述交易之后终止调用所述目标虚拟机,终止调用的所述目标虚拟机在所述虚拟机池中等待复用。
根据本申请实施例的一个方面,提供了一种基于区块链虚拟机复用的交易处理装置,包括:交易获取模块,配置为获取待处理的交易;虚拟机查找模块,配置为根据所述交易中含有的智能合约标识,从虚拟机池中查找目标虚拟机,所述虚拟机池用于存储加载有智能合约的区块链虚拟机,所述目标虚拟机中加载有所述智能合约标识指示的目标智能合约;交易执行模块,配置为调用所述目标虚拟机,以通过所述目标虚拟机中加载的目标智能合约执行所述交易;调用终止模块,配置为在执行完所述交易之后终止调用所述目标虚拟机,终止调用的所述目标虚拟机在所述虚拟机池中等待复用。
根据本申请实施例的一个方面,提供了一种电子设备,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的基于区块链虚拟机复用的交易处理方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的基于区块链虚拟机复用的交易处理方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的基于区块链虚拟机复用的交易处理方法。
在本申请的实施例提供的技术方案中,是将区块链虚拟机存储在虚拟机池中,在执行交易之前,从虚拟机中查找并调用加载有交易所指示的目标智能合约的目标虚拟机,以通过目标虚拟机中加载的目标智能合约执行交易,在交易执行完之后,通过终止调用目标虚拟机,相当于是将目标虚拟机放回虚拟机池中,以等待下一次被调用,由此实现了虚拟机池中区块链虚拟机的复用,无需针对每一笔交易都创建区块链虚拟机以及将智能合约加载到区块链虚拟机中,由此提升交易的执行效率,并相应提升区块链***的性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请涉及的一种实施环境的示意图。
图2是本申请的一示例性实施例示出的基于区块链虚拟机复用的交易处理方法的流程图。
图3是图2所示实施例中的步骤S130在一个示例性实施例中的流程图。
图4是本申请的另一示例性实施例示出的基于区块链虚拟机复用的交易处理方法的流程图。
图5是本申请的一个示例性实施例示出的基于区块链虚拟机复用的交易并行执行应用场景的示意图。
图6是本申请的一示例性实施例示出的基于区块链虚拟机复用的交易处理装置的框图。
图7示出了适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
还需要说明的是:在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参阅图1,图1是本申请涉及的一种实施环境的示意图。该实施环境具体为一区块链交易***,如图1所示,该区块链交易***包括区块链***100和交易终端200,交易终端200通过有线或者无线的方式与区块链***100建立通信连接,区块链***100用于处理交易终端200发送的交易。
图1中示出的区块链***100是指用于进行节点10与节点10之间数据共享的***,为了保证区块链***100内的信息互通,区块链***100中的节点10之间可以存在信息连接,使得节点10之间可以通过此信息连接进行信息传输。
区块链***100包含的节点10中存储有区块链11,如图1所示,区块链11由多个区块组成,每个区块包括区块头和区块体,区块头中存储有区块高度、时间戳等信息。
区块链11上部署有至少一种智能合约,以通过智能合约具体执行交易终端200发送的交易。智能合约的部署与执行都经过了区块链***100中节点10的共识,恶意节点无法影响区块链***100整体的共识结果,因此智能合约具有去中心化、去信任的特征。区块链虚拟机为智能合约提供了基本的能力,例如计算、获取链上数据、数据库读取等,因此智能合约需加载到区块链虚拟机中。
具体来说,当区块链***100包含的节点10获取到待处理的交易时,根据交易中含有的智能合约标识,从虚拟机池中查找目标虚拟机,其中虚拟机池用于存储加载有智能合约的区块链虚拟机,目标虚拟机是指加载有智能合约标识所指示的目标智能合约的区块链虚拟机。从虚拟机池中查找到目标虚拟机之后,调用目标虚拟机,以通过目标虚拟机中加载的目标智能合约执行交易。在执行完交易之后终止对目标虚拟机的调用,使得终止调用的目标虚拟机在虚拟机池中等待复用。
基于以上提出的虚拟机池中区块链虚拟机的复用机制,节点10无需针对每一笔交易都创建一个区块链虚拟机以及将目标智能合约加载到区块链虚拟机中,能够减少节点10执行创建区块链虚拟机以及将智能合约加载到区块链虚拟机中的次数,从而提升交易的执行效率,并能够提升区块链***100的整体性能。
需要说明的是,图1所示的交易终端200可以是智能手机、平板、笔记本电脑、计算机等终端设备;节点10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处不对此进行限制。
图2是本申请的一示例性实施例示出的基于区块链虚拟机复用的交易处理方法的流程图。该方法可以应用于图1所示的实施环境,并由图1所示实施环境中的节点10具体执行。而在其它的实施环境中,该方法也可以由其它设备执行,本处不对此进行限制。
需要说明的是,在现有的技术实现中,处理交易之前需为每笔交易创建一个区块链虚拟机,并将处理该笔交易的目标智能合约加载到所创建的区块链虚拟机中。这两个步骤所需的时间成本非常高,例如在采用区块链电子***的智能合约执行电子***交易的场景下,执行这两个步骤所需耗时占执行电子***交易所需总体耗时的71.5%,由此导致现有技术实现中处理交易的效率不高,进而导致整个区块链***的性能不高。
为解决此技术问题,本实施例提出一种基于区块链虚拟机复用的交易处理方法。本实施例提及的区块链虚拟机复用是指,区块链虚拟机在交易执行完成后不会被销毁,而是继续回收复用。其中,区块链虚拟机的复用是出于以下考虑:
第一、对于任何交易而言,区块链虚拟机的创建流程是一致的,例如以区块链虚拟机实现为JavaScript(简称为JS,是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言)虚拟机为例,除了创建一个JavaScript虚拟机对象以外,还需要生成Date、Math、String、Object等大量全局变量,并将这些全局变量挂载到JavaScript虚拟机对象上;
第二、对于由同一智能合约执行的交易而言,智能合约加载至区块链虚拟机的流程是一致的,例如该流程会将智能合约的代码编译为能够被区块链虚拟机识别的指令码,然后执行指令码;
基于以上考虑,本实施例引入虚拟机池对执行交易后的区块链虚拟机进行回收,回收的区块链虚拟机可由后续的交易所复用,后续的交易则不需要进行区块链虚拟机的创建和智能合约的加载,由此提升交易执行的TPS(Transaction Per Second,每秒处理交易的数量),降低交易执行所需分配的内存大小和内存分配的次数,由此提升交易执行的效率以及区块链***的性能。
如图2所示,本实施例提出的基于区块链虚拟机复用的交易处理方法至少包括步骤S110至步骤S170,详细介绍如下:
步骤S110,获取待处理的交易。
在本实施例中,待处理的交易可以是指任意形式的交易,例如可以是转账交易或者电子票据交易,本处不对此进行限制。待处理的交易可以是由交易终端发起的实时交易,也可以是交易池中存储的交易,本实施例也不对此进行限制。
步骤S130,根据交易中含有的智能合约标识,从虚拟机池中查找目标虚拟机,虚拟机池用于存储加载有智能合约的区块链虚拟机,目标虚拟机中加载有智能合约标识指示的目标智能合约。
智能合约存储在区块链上,通常由可执行代码以及合约自身状态两部分组成。智能合约经由交易触发执行的流程通常抽象为如下公式:
其中TX表示传入的交易,S表示智能合约在执行交易之前的状态,F表示智能合约的执行逻辑,通常由智能合约的可执行代码决定,则表示智能合约执行完交易之后的状态。智能合约的部署与执行都经过了区块链节点的共识,恶意节点无法影响区块链***整体的共识结果,因此本实施例部署在区块链上的智能合约具有去中心化、去信任的特征。
在本实施例中,交易中携带有用于执行该交易的目标智能合约的智能合约标识,例如包括目标智能合约的名称和版本号,可以根据交易中含有的智能合约标识即可相应获取区块链上部署的目标智能合约。
区块链虚拟机是智能合约代码执行的沙箱,保证在相同的初始状态下,智能合约执行相同的交易,最终能够得到相同的交易执行结果。智能合约代码在区块链虚拟机中是以指令码的形式存在,指令码能够被区块链虚拟机识别并执行。区块链虚拟机为智能合约提供了基本的能力,例如计算、获取链上数据、数据库读写等,因此智能合约需加载到区块链虚拟机中执行。智能合约无法使用区块链虚拟机所不支持的功能,例如网络的访问。
本实施例中设置有用于存储加载有智能合约的区块链虚拟机的虚拟机池,也即虚拟机池是一段或多段用于存储加载有智能合约的区块链虚拟机的存储空间。在根据交易中含有的智能合约标识确定执行交易的目标智能合约之后,即可从虚拟机池中查找目标智能合约对应的目标虚拟机,目标虚拟机也即是加载有目标智能合约的区块链虚拟机。
若虚拟机池中当前存在等待复用的加载有目标智能合约的区块链虚拟机,则将此区块链虚拟机直接作为目标虚拟机,从而能够在虚拟机池中查找到对应的目标虚拟机。
若虚拟机池当前不存在等待复用的加载有目标智能合约的区块链虚拟机,则通过在虚拟机池中新建加载有目标智能合约的区块链虚拟机,并将此新建的区块链虚拟机作为目标虚拟机,由此能够在虚拟机池中查找到目标虚拟机。
需要理解的是,等待复用的区块链虚拟机是指该区块链虚拟机当前处于空闲状态,若虚拟机池中不存在加载有目标智能合约的区块链虚拟机,或者虚拟机池中存储的加载有目标智能合约的区块链虚拟机正处于空闲状态,都将视为虚拟机池当前不存在等待复用的加载有目标智能合约的区块链虚拟机的情形。
步骤S150,调用目标虚拟机,以通过目标虚拟机中加载的目标智能合约执行交易。
从虚拟机池中查找到目标虚拟机之后,通过调用目标虚拟机,将待处理的交易传入目标虚拟机所加载的目标智能合约中,即可通过目标智能合约执行该交易。需要说明的是,目标虚拟机在被调用之后,目标虚拟机则处于非空闲状态,也即目标虚拟机并非处于等待复用的状态。
步骤S170,在执行完交易之后终止对目标虚拟机的调用,终止调用的目标虚拟机在虚拟机池中等待复用。
在智能合约执行完交易之后,会得到相应的交易执行结果,同时会终止对于目标虚拟机的调用,使得目标虚拟机处于空闲状态,相当于是将目标虚拟机回收到虚拟机池中,并在虚拟机池中等待后续交易的复用。
由此可知,本实施例是将区块链虚拟机存储在虚拟机池中,在执行交易之前,从虚拟机中查找并调用加载有交易所指示的目标智能合约的目标虚拟机,以通过目标虚拟机中加载的目标智能合约执行交易,在交易执行完之后通过终止调用目标虚拟机,以将目标虚拟机放回虚拟机池中等待后续交易的复用,由此基于虚拟机池中区块链虚拟机的复用,无需针对待处理的每笔交易都创建区块链虚拟机以及将智能合约加载到区块链虚拟机中,由此提升交易的执行效率,并相应提升区块链***的性能。
图3是图2所示实施例中的步骤S130在一个示例性实施例中的流程图。如图3所示,根据交易中含有的智能合约标识从虚拟机池中查找目标虚拟机的过程可以包括步骤S131至步骤S133,详细介绍如下:
步骤S131,在虚拟机池中查找加载有智能合约标识指示的目标智能合约的目标虚拟机。
如前所述的,若虚拟机池中当前存在处于空闲状态的加载有目标智能合约的区块链虚拟机,根据交易中含有的智能合约标识,则能够直接在虚拟机池中查找到加载有目标智能合约的目标虚拟机。
考虑到加载有不同智能合约的区块链虚拟机之间可能存在污染的问题,例如从虚拟机池中查找到的加载有智能合约A的区块链虚拟机上可能挂载有智能合约B的函数,导致智能合约A在执行时可能调用智能合约B的函数。为解决此问题,本实施例还引入虚拟机池,也即设置多个虚拟机池,每个虚拟机池用于存储加载有同一智能合约的区块链虚拟机。由于同一虚拟机池中存储的区块链虚拟机所加载的智能合约是相同的,存储在同一虚拟机池中的各个区块链虚拟机之间则不存在合约间污染的问题。
由此,通过查找与交易中含有的智能合约标识相关联的虚拟机池,并从查找到的虚拟机池中获取处于空闲状态的区块链虚拟机,则可以得到目标虚拟机。
多个虚拟机池可以是以键值对的方式存储在内存空间中的,例如是在内存空间中维护一个以智能合约标识为键,以虚拟机池为值的缓存。在查找与智能合约标识相关联的虚拟机池时,则可以将智能合约标识作为键,在内存空间中查找对应的值,由此得到与智能合约标识相关联的虚拟机池。
通过在查找到的虚拟机池中搜索处于空闲状态的区块链虚拟机,若确定不存处于空闲状态的区块链虚拟机,则在虚拟机池中新建加载有目标智能合约的区块链虚拟机,将新建的区块链虚拟机获取为处于空闲状态的区块链虚拟机,或者等待虚拟机池中的区块链虚拟机由非空闲状态切换为空闲状态。
需要说明的是,获取虚拟机池中处于空闲状态的区块链虚拟机的方式可以根据虚拟机池中新建区块链虚拟机所需的第一时长,以及交易执行所需的第二时长进行决策。其中,第一时长和第二时长可以通过统计历史新建区块链虚拟机所耗费的时长以及历史交易执行所耗费的时长所得到的。
示例性的,若第一时长大于第二时长,表示在虚拟机池中新建区块链虚拟机所需耗费的时长大于交易执行所需耗费的时长,则等待虚拟机池中加载有目标智能合约的区块链虚拟机执行完正在执行的交易、并回收至虚拟机池中之后,将此区块链虚拟机作为执行待处理交易的目标虚拟机。若第一时长小于第二时长,则表示在虚拟机池中新建区块链虚拟机所需耗费的时长小于交易执行所需耗费的时长,因此可以在虚拟机池中新建一个加载有目标智能合约的区块链虚拟机,将新建的区块链虚拟机作为执行待处理交易的目标虚拟机。
或者在一些实施例中,考虑到虚拟机池中处于非空闲状态的区块链虚拟机对于正在执行的交易已经耗费了一段时长,在根据第一时长和第二时长决策获取虚拟机池中处于空闲状态的区块链虚拟机的方式时,可以将此时长考虑在其中。例如,通过预设的时长阈值表征虚拟机池中处于非空闲状态的区块链虚拟机对于执行的交易所耗费的时长,如果第一时长大于第二时长与该时长阈值之差,则等待虚拟机池中的区块链虚拟机由非空闲状态切换为空闲状态。由于每个虚拟机池中通常含有多个区块链虚拟机,多个区块链虚拟机对于自身交易的执行进度并不完全相同,因此本实施例可以考量多个区块链虚拟机的执行进度来设置合适的时长阈值。
由上可知,通过决策的方式来获取虚拟机池中处于空闲状态的区块链虚拟机,能够尽可能少地在虚拟机池中新建区块链虚拟机,由此减少区块链虚拟机的数量,降低交易执行所需的内存空间以及内存分配次数,同时不会影响区块链***的交易执行效率,以进一步地提升区块链***的性能。
步骤S133,若未查找到目标虚拟机,则在虚拟机池中创建区块链虚拟机,将目标智能合约加载到创建的区块链虚拟机中,以将加载有目标智能合约的区块链虚拟机作为目标虚拟机。
在虚拟机池中创建区块链虚拟机,并将目标智能合约加载到创建的区块链虚拟机中通常包括如下过程:
在虚拟机池中创建虚拟机对象;将目标智能合约的代码编译为指令码,并将指令码配置到虚拟机对象中;控制虚拟机对象执行指令码,以在虚拟机对象中进行目标智能合约的初始化,将初始化完成后的虚拟机对象作为加载有目标智能合约的区块链虚拟机。
其中,所创建的虚拟机对象例如可以是JavaScript对象,经编译得到的指令码能够被虚拟机对象识别并执行。智能合约中通常含有Date、Math、String、Object等大量全局变量,还含有大量公/私有函数,例如复杂的智能合约可能含有80多个函数,因此在虚拟机对象中进行目标智能合约的初始化,通常包括全局变量的初始化与函数的声明等操作。
全局变量还将挂载到区块链虚拟机上,例如区块链虚拟机中含有特定字段挂载所有的全局变量,以便于从区块链虚拟机中查询这些全局变量。
由此可知,无论虚拟机池当前是否存在加载有目标智能合约的区块链虚拟机,最终都将从虚拟机池中查找到一个目标虚拟机,并通过目标虚拟机中加载的目标智能合约来执行待处理的交易,由此确保交易执行的可靠性。
在另一示例性实施例中,在图2所示实施例的基础上,该基于区块链虚拟机复用的交易处理方法还包括图4所示的步骤S210至步骤S230,详细介绍如下:
步骤S210,获取目标虚拟机的状态信息。
为防止同一智能合约在不同交易之间的污染问题,本实施例中还对于区块链虚拟机的回收复用设置了复用条件,如果区块链虚拟机不符合复用条件,则不会回收该区块链虚拟机。
目标虚拟机的状态信息可以包括目标虚拟机中挂载的与目标智能合约关联的全局变量,如前所述的,每个区块链虚拟机通过特定字段挂载自身所加载智能合约的全局变量;目标虚拟机的状态信息还可以包括目标虚拟机的执行状态,本实施例不对此进行限制。
步骤S230,若根据状态信息确定目标虚拟机不符合复用条件,则从虚拟机池中删除目标虚拟机。
在本实施例中,若确定目标虚拟机不符合复用条件,则表示目标虚拟机已经被所执行的交易污染。通过将目标虚拟机从虚拟机池中删除,相当于是将目标虚拟机销毁,从而不再复用目标虚拟机。
示例性的,若目标虚拟机中挂载的全局变量相比于目标虚拟机在被调用之前所挂载的全局变量存在差别,则表示交易修改了目标虚拟机所挂载的全局变量,也即修改了目标虚拟机中加载的智能合约,因此确定目标虚拟机不符合复用条件。
若目标虚拟机的执行状态指示目标虚拟机执行交易失败,导致目标虚拟机处于中间执行状态,例如目标虚拟机在执行某些指令时出现异常,目标虚拟机则处于执行该指令时的状态,由此导致目标虚拟机被所执行的交易污染。在此情况下,也需要确定目标虚拟机不符合复用条件,进而不再复用目标虚拟机。
由此,本实施例针对区块链虚拟机的回收复用设置了复用条件,能够保证虚拟池所复用的区块链虚拟机是准确的,使得区块链虚拟机在复用过程中不会出错,进一步提升了区块链***执行交易的可靠性。
请参阅图5,图5是本申请的一个示例性实施例示出的基于区块链虚拟机复用的交易并行执行应用场景的示意图。
在图5所示的应用场景中,待处理的交易包括待上链区块中含有的多笔交易,通过多个线程并行执行此多笔交易。具体的,每个线程以交易中含有的智能合约名称和版本号为键,在缓存中查找相应的虚拟机池,并从虚拟机池中获取处于空闲状态的区块链虚拟机,若虚拟机池中不存在区块链虚拟机或者不存在处于空闲状态的区块链虚拟机,则新建一个区块链虚拟机,并加载能够执行当前交易的目标智能合约。每个线程调用处于空闲状态的区块链虚拟机,以将交易传入区块链虚拟机加载的智能合约,通过智能合约来执行交易。每个甲乙执行完后,会得到相应的交易执行结果,并回收区块链虚拟机至虚拟机池中,以供后续交易进行复用。最后通过串行合并各个交易对应的交易执行结果,则得到整个待上链区块对应的交易执行结果。待上链区块对应的交易执行结果可以作用于待上链的共识、上链等过程,本处不对此进行限制。
在图5所示的应用场景中,基于区块链虚拟机的复用机制,多个线程无需针对每一笔交易都新建一个加载有目标智能合约的区块链虚拟机,而是优先使用复用的区块链虚拟机来执行交易,极大地节省了交易执行所需的耗时,也能够极大减少交易执行过程中所需分配的内存空间以及内存分配的次数。同时,通过在缓存中设置虚拟机池组的方式,能够避免区块链虚拟机中存在合约间污染的问题。另外,对于执行完交易的区块链虚拟机的回收复用也设置有复用条件,能够避免区块链虚拟机被不同交易污染的问题。由此,则可以得到十分可靠的交易并行执行***。
本申请的发明人以区块链电子***的交易作为示例,使用8核16G内存的电子设备根据本申请提出的基于区块链虚拟机复用的交易处理方法执行电子***交易,并统计电子***交易执行过程中的TPS、分配的内存空间和内存分配次数。发明人还使用同一电子设备根据现有技术执行同样的电子***交易,也即针对每一笔交易都新建一个区块链虚拟机,仍统计电子***交易执行过程中的TPS、分配的内存空间和内存分配次数。通过对比电子***交易执行过程中所统计的数据,可以得到如下表1所示的信息。
从表1中可以看出,本申请提出的基于区块链虚拟机复用的交易处理方法能够极大程度地提升区块链***处理交易的TPS,并且能够在很大程度上减少交易处理过程中所需分配的内存空间以及减少内存分配的次数,极大地提升了区块链***的性能。
图6是本申请的一示例性实施例示出的基于区块链虚拟机复用的交易处理装置的框图。如图6所示,该装置包括:
交易获取模块310,配置为获取待处理的交易;虚拟机查找模块330,配置为根据交易中含有的智能合约标识,从虚拟机池中查找目标虚拟机,虚拟机池用于存储加载有智能合约的区块链虚拟机,目标虚拟机中加载有智能合约标识指示的目标智能合约;交易执行模块350,配置为调用目标虚拟机,以通过目标虚拟机中加载的目标智能合约执行交易;调用终止模块370,配置为在执行完交易之后终止调用目标虚拟机,终止调用的目标虚拟机在虚拟机池中等待复用。
在另一示例性的实施例中,虚拟机查找模块330包括:
查找单元,配置为在虚拟机池中查找加载有智能合约标识指示的目标智能合约的目标虚拟机;新建单元,配置为若未查找到目标虚拟机,则在虚拟机池中创建区块链虚拟机,将目标智能合约加载到创建的区块链虚拟机中,以将加载有目标智能合约的区块链虚拟机作为目标虚拟机。
在另一示例性的实施例中,新建单元包括:
虚拟机对象创建子单元,配置为在虚拟机池中创建虚拟机对象;指令吗编译子单元,配置为将目标智能合约的代码编译为指令码,并将指令码配置到虚拟机对象中;初始化子单元,配置为控制虚拟机对象执行指令码,以在虚拟机对象中进行目标智能合约的初始化,将初始化完成后的虚拟机对象作为加载有目标智能合约的区块链虚拟机。
在另一示例性的实施例中,目标智能合约的初始化包括目标智能合约中全局变量的初始化和目标智能合约中函数的声明。
在另一示例性的实施例中,虚拟机池的数量为多个,各个虚拟机池用于存储加载有同一智能合约的区块链虚拟机;查找单元包括:
虚拟机池查找单元,配置为查找与智能合约标识相关联的虚拟机池;虚拟机获取单元,配置为从查找到的虚拟机池中获取处于空闲状态的区块链虚拟机,将获取的区块链虚拟机作为目标虚拟机。
在另一示例性的实施例中,多个虚拟机池以键值对的方式存储于内存空间;虚拟机池查找单元包括:
键值查找子单元,配置为将智能合约标识作为键,在内存空间中查找键对应的值,得到与智能合约标识相关联的虚拟机池。
在另一示例性的实施例中,虚拟机获取单元包括:
虚拟机搜索子单元,配置为在虚拟机池中搜索处于空闲状态的区块链虚拟机;虚拟机选择子单元,配置为若确定不存处于空闲状态的区块链虚拟机,则在虚拟机池中新建加载有目标智能合约的区块链虚拟机,将新建的区块链虚拟机获取为处于空闲状态的区块链虚拟机,或者等待虚拟机池中的区块链虚拟机由非空闲状态切换为空闲状态。
在另一示例性的实施例中,虚拟机选择子单元包括:
决策子单元,配置为获取虚拟机池中新建区块链虚拟机所需的第一时长,以及获取交易执行所需的第二时长,并根据第一时长和第二时长决策获取虚拟机池中处于空闲状态的区块链虚拟机的方式。
在另一示例性的实施例中,该装置还包括:
状态信息获取模块,配置为获取目标虚拟机的状态信息;虚拟机删除模块,配置为若根据状态信息确定目标虚拟机不符合复用条件,则从虚拟机池中删除目标虚拟机。
在另一示例性的实施例中,状态信息包括目标虚拟机中挂载的与目标智能合约关联的全局变量;该装置还包括:
第一复用条件判定模块,配置为若目标虚拟机中挂载的全局变量相比于目标虚拟机在被调用之前所挂载的全局变量存在差别,则确定目标虚拟机不符合复用条件。
在另一示例性的实施例中,状态信息包括目标虚拟机的交易执行状态;该装置还包括:
第二复用条件判定模块,配置为若目标虚拟机的执行状态指示目标虚拟机执行交易失败,则确定目标虚拟机不符合复用条件。
在另一示例性的实施例中,待处理的交易包括待上链区块中含有的多笔交易;该装置还包括:
执行结果获取模块,配置为获取每笔交易对应的交易执行结果;执行结果合并模块,配置为将待上链区块中含有的多笔交易对应的交易执行结果串行合并,得到待上链区块对应的交易执行结果。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
本申请的实施例还提供了一种电子设备,包括处理器和存储器,其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如前所述的基于区块链虚拟机复用的交易处理方法。
图7示出了适于用来实现本申请实施例的电子设备的计算机***的结构示意图。需要说明的是,图7示出的电子设备的计算机***1600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机***1600包括中央处理单元(Central Processing Unit,CPU)1601,其可以根据存储在只读存储器(Read-Only Memory,ROM)1602中的程序或者从储存部分1608加载到随机访问存储器(Random Access Memory,RAM)1603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1603中,还存储有***操作所需的各种程序和数据。CPU 1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(Input /Output,I/O)接口1605也连接至总线1604。
以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1607;包括硬盘等的储存部分1608;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入储存部分1608。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本申请的***中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的基于区块链虚拟机复用的交易处理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的基于区块链虚拟机复用的交易处理方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (15)
1.一种基于区块链虚拟机复用的交易处理方法,其特征在于,包括:
获取待处理的交易;
根据所述交易中含有的智能合约标识,从虚拟机池中查找目标虚拟机,所述虚拟机池用于存储加载有智能合约的区块链虚拟机,所述目标虚拟机中加载有所述智能合约标识指示的目标智能合约;
调用所述目标虚拟机,以通过所述目标虚拟机中加载的目标智能合约执行所述交易;
在执行完所述交易之后终止对所述目标虚拟机的调用,终止调用的所述目标虚拟机在所述虚拟机池中等待复用;
获取所述目标虚拟机的状态信息;
若根据所述状态信息确定所述目标虚拟机不符合复用条件,则从所述虚拟机池中删除所述目标虚拟机;
其中,所述状态信息包括所述目标虚拟机中挂载的与所述目标智能合约关联的全局变量,若所述目标虚拟机中挂载的全局变量相比于所述目标虚拟机在被调用之前所挂载的全局变量存在差别,则确定所述目标虚拟机不符合复用条件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述交易中含有的智能合约标识,从虚拟机池中查找目标虚拟机,包括:
在所述虚拟机池中查找加载有所述智能合约标识指示的目标智能合约的目标虚拟机;
若未查找到所述目标虚拟机,则在所述虚拟机池中创建区块链虚拟机,将所述目标智能合约加载到创建的区块链虚拟机中,以将加载有所述目标智能合约的区块链虚拟机作为目标虚拟机。
3.根据权利要求2所述的方法,其特征在于,所述在所述虚拟机池中创建区块链虚拟机,将所述目标智能合约加载到创建的区块链虚拟机中,包括:
在所述虚拟机池中创建虚拟机对象;
将所述目标智能合约的代码编译为指令码,并将所述指令码配置到所述虚拟机对象中;
控制所述虚拟机对象执行所述指令码,以在所述虚拟机对象中进行所述目标智能合约的初始化,将初始化完成后的虚拟机对象作为加载有所述目标智能合约的区块链虚拟机。
4.根据权利要求3所述的方法,其特征在于,所述目标智能合约的初始化包括所述目标智能合约中全局变量的初始化和所述目标智能合约中函数的声明。
5.根据权利要求2所述的方法,其特征在于,所述虚拟机池的数量为多个,各个虚拟机池用于存储加载有同一智能合约的区块链虚拟机;所述在所述虚拟机池中查找加载有所述智能合约标识指示的目标智能合约的目标虚拟机,包括:
查找与所述智能合约标识相关联的虚拟机池;
从查找到的虚拟机池中获取处于空闲状态的区块链虚拟机,将获取的区块链虚拟机作为所述目标虚拟机。
6.根据权利要求5所述的方法,其特征在于,所述多个虚拟机池以键值对的方式存储于内存空间;所述查找与所述智能合约标识相关联的虚拟机池,包括:
将所述智能合约标识作为键,在所述内存空间中查找所述键对应的值,得到与所述智能合约标识相关联的虚拟机池。
7.根据权利要求5所述的方法,其特征在于,所述从查找到的虚拟机池中获取处于空闲状态的区块链虚拟机,包括:
在所述虚拟机池中搜索处于空闲状态的区块链虚拟机;
若确定不存处于空闲状态的区块链虚拟机,则在所述虚拟机池中新建加载有所述目标智能合约的区块链虚拟机,将新建的区块链虚拟机获取为处于空闲状态的区块链虚拟机,或者等待所述虚拟机池中的区块链虚拟机由非空闲状态切换为空闲状态。
8.根据权利要求7所述的方法,其特征在于,在确定不存处于空闲状态的区块链虚拟机之后,所述方法还包括:
获取所述虚拟机池中新建区块链虚拟机所需的第一时长,以及获取交易执行所需的第二时长;
根据所述第一时长和第二时长决策获取所述虚拟机池中处于空闲状态的区块链虚拟机的方式。
9.根据权利要求1所述的方法,其特征在于,所述状态信息包括所述目标虚拟机的交易执行状态;所述方法还包括:
若所述目标虚拟机的执行状态指示所述目标虚拟机执行所述交易失败,则确定所述目标虚拟机不符合复用条件。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述待处理的交易包括待上链区块中含有的多笔交易;所述方法还包括:
获取每笔交易对应的交易执行结果;
将所述待上链区块中含有的多笔交易对应的交易执行结果串行合并,得到所述待上链区块对应的交易执行结果。
11.一种基于区块链虚拟机复用的交易处理装置,其特征在于,包括:
交易获取模块,配置为获取待处理的交易;
虚拟机查找模块,配置为根据所述交易中含有的智能合约标识,从虚拟机池中查找目标虚拟机,所述虚拟机池用于存储加载有智能合约的区块链虚拟机,所述目标虚拟机中加载有所述智能合约标识指示的目标智能合约;
交易执行模块,配置为调用所述目标虚拟机,以通过所述目标虚拟机中加载的目标智能合约执行所述交易;
调用终止模块,配置为在执行完所述交易之后终止调用所述目标虚拟机,终止调用的所述目标虚拟机在所述虚拟机池中等待复用;
状态信息获取模块,配置为获取所述目标虚拟机的状态信息;
虚拟机删除模块,配置为若根据所述状态信息确定所述目标虚拟机不符合复用条件,则从所述虚拟机池中删除所述目标虚拟机;
其中,所述状态信息包括所述目标虚拟机中挂载的与所述目标智能合约关联的全局变量,若所述目标虚拟机中挂载的全局变量相比于所述目标虚拟机在被调用之前所挂载的全局变量存在差别,则确定所述目标虚拟机不符合复用条件。
12.根据权利要求11所述的装置,其特征在于,所述虚拟机查找模块包括:
查找单元,配置为在所述虚拟机池中查找加载有所述智能合约标识指示的目标智能合约的目标虚拟机;
新建单元,配置为若未查找到所述目标虚拟机,则在所述虚拟机池中创建区块链虚拟机,将所述目标智能合约加载到创建的区块链虚拟机中,以将加载有所述目标智能合约的区块链虚拟机作为目标虚拟机。
13.根据权利要求12所述的装置,其特征在于,所述新建单元包括:
虚拟机对象创建子单元,配置为在所述虚拟机池中创建虚拟机对象;
指令码编译子单元,配置为将所述目标智能合约的代码编译为指令码,并将所述指令码配置到所述虚拟机对象中;
初始化子单元,配置为控制所述虚拟机对象执行所述指令码,以在所述虚拟机对象中进行所述目标智能合约的初始化,将初始化完成后的虚拟机对象作为加载有所述目标智能合约的区块链虚拟机。
14.一种电子设备,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1-10中的任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-10中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110176859.8A CN112529711B (zh) | 2021-02-07 | 2021-02-07 | 基于区块链虚拟机复用的交易处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110176859.8A CN112529711B (zh) | 2021-02-07 | 2021-02-07 | 基于区块链虚拟机复用的交易处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112529711A CN112529711A (zh) | 2021-03-19 |
CN112529711B true CN112529711B (zh) | 2021-05-14 |
Family
ID=74975527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110176859.8A Active CN112529711B (zh) | 2021-02-07 | 2021-02-07 | 基于区块链虚拟机复用的交易处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112529711B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113805889B (zh) * | 2021-08-27 | 2023-07-28 | 成都质数斯达克科技有限公司 | 一种智能合约调用执行方法、装置、设备及可读存储介质 |
CN115174589B (zh) * | 2022-05-20 | 2023-11-03 | 网易(杭州)网络有限公司 | 区块链虚拟机的选择方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104168310A (zh) * | 2014-07-24 | 2014-11-26 | 深圳天珑无线科技有限公司 | 云端虚拟服务器的调度方法及装置 |
CN104281496A (zh) * | 2014-10-27 | 2015-01-14 | 深圳中兴网信科技有限公司 | 虚拟资源的分配方法及分配装置 |
CN106133688A (zh) * | 2014-03-28 | 2016-11-16 | 亚马逊技术有限公司 | 协调容器布置和执行的服务的实施 |
CN107111507A (zh) * | 2014-09-30 | 2017-08-29 | 亚马逊技术有限公司 | 线程化作为服务 |
CN110297689A (zh) * | 2019-05-06 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备及介质 |
CN110392052A (zh) * | 2019-07-22 | 2019-10-29 | 中国工商银行股份有限公司 | 一种区块链智能合约处理***及方法 |
CN110704063A (zh) * | 2019-09-30 | 2020-01-17 | 支付宝(杭州)信息技术有限公司 | 编译和执行智能合约的方法及装置 |
CN111736954A (zh) * | 2020-06-24 | 2020-10-02 | 陈鹏 | 多智能合约虚拟机实现方法、多智能合约虚拟机及*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9471775B1 (en) * | 2015-02-04 | 2016-10-18 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
CN106598549B (zh) * | 2016-12-08 | 2019-02-01 | 天津米游科技有限公司 | 一种基于区块链的智能合约***及实现方法 |
CN107707661B (zh) * | 2017-10-16 | 2020-10-16 | ***股份有限公司 | 一种负载均衡资源管理方法和装置 |
CN110602125B (zh) * | 2019-09-23 | 2021-04-13 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、终端及存储介质 |
CN111124617B (zh) * | 2019-12-24 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 区块链***的创建方法和装置、存储介质及电子装置 |
CN111989663A (zh) * | 2020-06-08 | 2020-11-24 | 支付宝实验室(新加坡)有限公司 | 基于区块链的智能合约池 |
CN111736957A (zh) * | 2020-06-29 | 2020-10-02 | 平安普惠企业管理有限公司 | 多类型业务的混合部署方法、装置、设备及存储介质 |
-
2021
- 2021-02-07 CN CN202110176859.8A patent/CN112529711B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106133688A (zh) * | 2014-03-28 | 2016-11-16 | 亚马逊技术有限公司 | 协调容器布置和执行的服务的实施 |
CN104168310A (zh) * | 2014-07-24 | 2014-11-26 | 深圳天珑无线科技有限公司 | 云端虚拟服务器的调度方法及装置 |
CN107111507A (zh) * | 2014-09-30 | 2017-08-29 | 亚马逊技术有限公司 | 线程化作为服务 |
CN104281496A (zh) * | 2014-10-27 | 2015-01-14 | 深圳中兴网信科技有限公司 | 虚拟资源的分配方法及分配装置 |
CN110297689A (zh) * | 2019-05-06 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备及介质 |
CN110392052A (zh) * | 2019-07-22 | 2019-10-29 | 中国工商银行股份有限公司 | 一种区块链智能合约处理***及方法 |
CN110704063A (zh) * | 2019-09-30 | 2020-01-17 | 支付宝(杭州)信息技术有限公司 | 编译和执行智能合约的方法及装置 |
CN111736954A (zh) * | 2020-06-24 | 2020-10-02 | 陈鹏 | 多智能合约虚拟机实现方法、多智能合约虚拟机及*** |
Also Published As
Publication number | Publication date |
---|---|
CN112529711A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11146502B2 (en) | Method and apparatus for allocating resource | |
CN108388599B (zh) | 电子装置、数据迁移及调用方法及存储介质 | |
CN112529711B (zh) | 基于区块链虚拟机复用的交易处理方法及装置 | |
CN110225078B (zh) | 一种应用服务更新方法、***及终端设备 | |
CN111694638A (zh) | 规则包加载方法、规则包执行方法及终端设备 | |
CN110162344B (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
CN111988429A (zh) | 算法调度方法以及*** | |
CN110764913B (zh) | 基于规则调用的数据计算方法、客户端及可读存储介质 | |
CN113360893B (zh) | 基于容器的智能合约执行方法、装置及存储介质 | |
CN109683992B (zh) | 用于管理对象的方法和装置 | |
CN108520401B (zh) | 用户名单管理方法、装置、平台及存储介质 | |
US9626213B2 (en) | System and method for file injection in virtual machine configuration | |
CN116932147A (zh) | 流式作业处理方法、装置、电子设备及介质 | |
CN111176641A (zh) | 流程节点执行方法、装置、介质及电子设备 | |
CN113360251B (zh) | 智能合约执行与跨合约调用方法、装置及存储介质 | |
CN111475226B (zh) | 电子装置、微服务调用方法和计算机可读存储介质 | |
CN115185979A (zh) | 数据访问路由方法、装置设备、存储介质和程序产品 | |
CN114489754A (zh) | 可配置服务管理方法及装置 | |
CN112214287B (zh) | 应用软件的业务控制方法及装置、电子设备 | |
CN110033145B (zh) | 财务共享作业分单方法及装置、设备和存储介质 | |
CN113760524A (zh) | 任务执行方法和装置 | |
CN111897822A (zh) | 账户状态信息的处理方法、装置、电子设备及存储介质 | |
KR20150137766A (ko) | 가상머신 스택 생성 시스템 및 방법 | |
CN115484149B (zh) | 网络切换方法、网络切换装置、电子设备及存储介质 | |
CN113360252B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40041048 Country of ref document: HK |