CN114547191A - 区块链虚拟机异步执行智能合约的方法、系统及p2p网络 - Google Patents
区块链虚拟机异步执行智能合约的方法、系统及p2p网络 Download PDFInfo
- Publication number
- CN114547191A CN114547191A CN202210107544.2A CN202210107544A CN114547191A CN 114547191 A CN114547191 A CN 114547191A CN 202210107544 A CN202210107544 A CN 202210107544A CN 114547191 A CN114547191 A CN 114547191A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- data
- complete
- executing
- transaction
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- 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
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Databases & Information Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种异步执行的区块链虚拟机智能合约执行方式,在执行智能合约过程中遇到访问本地的冷数据、访问本地没有的冷数据或其它无法即时得到反馈的情况,区块链虚拟机可以将当前智能合约的执行暂时挂起,先执行其他智能合约,等数据准备好以后再恢复执行挂起的智能合约。因此,本发明可以有效的提升智能合约执行的效率,提升交易速度。
Description
技术领域
本发明涉及大数据处理及信息技术领域,更具体地,涉及一种区块链虚拟机异步执行智能合约的方法、系统及P2P网络。
背景技术
随着区块链知识和技术的普及,越来越多的应用场景里出现了区块链技术(Blockchain technology,简称BT)落地的身影。区块链技术也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明以及让每个节点均可参与数据库记录。
区块链技术主要经历了比特币作为区块链1.0时代、以太坊作为区块链2.0时代以及以EOS(Enterprise Operation System)为代表区块链3.0的三个发展阶段,每个阶段在关键技术上都有更新和突破。
区块链虚拟机,即区块链中智能合约的运行环境,目前作为区块链技术中的重要技术支撑也随着区块链一同进行不断的演进;比如以太坊虚拟机(EVM),是以太坊智能合约(Smart Contract)的运行环境。区块链虚拟机技术的发展从侧面也反应了区块链自身的发展。
智能合约是一段经过协商的代码集合,它的执行是分布式的、可观察和可验证的,代码部署在公共的账本上,智能合约可以维持自己的状态和控制自己的资产(即状态和资产与代码一样,被存储在账本上),还能够对输入的信息进行代码执行和应答。智能合约放在区块链上执行就是利用区块链本身自带的一致性算法来保证合约执行结果的一致性。
在现有技术中,区块链虚拟机执行智能合约时,是同步执行的,即虚拟机执行一个智能合约,需要等待执行完成返回结果,才能去执行下一个合约或交易,当前合约未执行完成时,虚拟机处于等待状态。也就是说,当在同步执行职能合约过程中,遇到访问本地没有的冷数据(离线类不经常访问的数据)或其他无法得到及时反馈的情况,此时区块链虚拟机仍需处于等待状态,导致合约执行的交易时间变长,影响合约整体执行效率。
发明内容
本发明的目的在于提供一种区块链虚拟机异步执行智能合约的方法及装置,其可以在执行智能合约过程中遇到访问本地没有的冷数据或其他无法即时得到反馈的情况,虚拟机可以将当前合约的执行暂时挂起,先执行其他合约,等数据准备好以后再恢复执行挂起的智能合约。
为实现上述目的,本发明的技术方案如下:
一种区块链虚拟机异步执行智能合约的方法,用于包括N个节点的区块链系统中,其包括如下步骤:
步骤S1:每个节点从区块广播中获取未处理的事务交易transaction,按打包的顺序依次执行未处理的所述事务交易transaction;
步骤S2:在执行当前所述事务交易transaction时,从所述事务交易transaction中解析获取payload数据;
步骤S3:从所述payload数据中解析函数以及智能合约相关的API,并准备调用当前所述事务交易transaction的智能合约;
步骤S4:在调用所述智能合约时,检查本地数据是否完整,如果是,执行所述智能合约,返回执行成功或失败的结果,如果得到成功的结果,执行步骤S6;如果本地数据不完整,或执行所述智能合约时返回执行失败的结果,则执行步骤S5;
步骤S5:挂起当前的所述智能合约,将下一个所述智能合约或所述事务交易transaction作为当前所述智能合约执行;
步骤S6:判断是否存在未处理的所述事务交易transaction或所述智能合约,如果是,执行所述步骤S1,如果不是,则结束。
进一步地,在步骤S4中,每一个所述节点中包括的所述本地数据分为冷数据和热数据;其中,所述冷数据为离线类不经常访问的数据,所述热数据为被计算节点频繁访问的在线类数据,每个所述节点都存储完整的所述热数据和所述冷数据。
进一步地,在步骤S4中,每一个所述节点中包括的所述本地数据分为冷数据和热数据;其中,所述冷数据为离线类不经常访问的数据,所述冷数据采用分布式存储,每个节点只存储所述冷数据的一部分;所述热数据为被计算节点频繁访问的在线类数据,每个所述节点都存储完整的所述热数据;当本地的所述冷数据不完整时,向邻近的其它节点请求,获取完整的所述冷数据。
进一步地,所述步骤S5具体包括:
步骤S51:挂起当前的所述智能合约,将下一个所述智能合约或所述事务交易transaction作为当前所述智能合约执行;
步骤S52:继续完成所挂起的所述智能合约的本地数据完整性工作;
步骤S53:判断挂起的所述智能合约的本地数据是否完整,如果是,判断当前所述智能合约或所述事务交易transaction是否执行完成?如果是,将挂起的所述智能合约返回作为当前所述智能合约执行;否则,依次将再下一个所述智能合约或所述事务交易transaction作为当前所述智能合约执行。
进一步地,所述步骤S4中的返回执行失败的结果的情况为,当本地数据完整时,所述智能合约执行在一预定时间内无结果反馈。
进一步地,在所述智能合约中嵌套调用有另外一个所述智能合约。
从上述技术方案可以看出,本发明提出的区块链虚拟机异步执行智能合约的方法,可以有效的提升合约执行的效率,提升交易速度。
附图说明
图1所示为本发明实施例中区块链虚拟机异步执行智能合约的方法流程示意图
图2所示为本发明实施例中第一种区块链数据存储方式示意图
图3所示为本发明实施例中第二种区块链数据存储方式示意图
图4所示为本发明实施例中本地无完整冷数据时异步执行智能合约的流程示意图
图5所示为本发明实施例中本地数据完整但合约执行无反馈情况下异步执行智能合约的流程示意图
具体实施方式
下面结合附图1-5,对本发明的具体实施方式作进一步的详细说明。
需要说明的是,在下述的具体实施方式中,在详述本发明的实施方式时,为了清楚地表示本发明的结构以便于说明,特对附图中的结构不依照一般比例绘图,并进行了局部放大、变形及简化处理,因此,应避免以此作为对本发明的限定来加以理解。
本发明提出的一种异步执行的区块链虚拟机智能合约执行方式,在执行智能合约过程中遇到访问本地的冷数据、访问本地没有的冷数据或其它无法即时得到反馈的情况,区块链虚拟机可以将当前智能合约的执行暂时挂起,先执行其他智能合约,等数据准备好以后再恢复执行挂起的智能合约,可以有效的提升智能合约执行的效率,提升交易速度。
请参阅图1,图1所示为本发明实施例中区块链虚拟机异步执行智能合约的方法流程示意图。如图1所示,该区块链虚拟机异步执行智能合约的方法,用于包括N个节点的区块链系统中,与现有技术相同的是,其可以包括如下步骤:
步骤S1:每个节点从区块广播中获取未处理的事务交易transaction,按打包的顺序依次执行未处理的所述事务交易transaction;
步骤S2:在执行当前所述事务交易transaction时,从所述事务交易transaction中解析获取payload数据;
步骤S3:从所述payload数据中解析函数以及智能合约相关的API,并准备调用当前所述事务交易transaction的智能合约。
与现有技术不同的是,在本发明的实施例中,异步执行智能合约的方法需要执行如下步骤:
步骤S4:在调用所述智能合约时,检查本地数据是否完整,如果是,执行所述智能合约,返回执行成功或失败的结果,如果得到成功的结果,执行步骤S6;如果本地数据不完整,或执行所述智能合约时返回执行失败的结果,则执行步骤S5。
在步骤S4中,每个所述节点中包括的所述本地数据分为冷数据和热数据;其中,所述冷数据为离线类不经常访问的数据,例如,一年前的交易数据,日志数据等;所述热数据为被计算节点频繁访问的在线类数据。
在以下本发明的具体实施方式中,各节点要保持所有所存数据能被智能合约访问,区块链系统可以具有两种区块链的存储方式:
①、每个所述节点都存储完整的所述热数据和所述冷数据,默认所有的数据都存储在本地硬盘上。
请参阅图2,图2所示为本发明实施例中第一种区块链数据存储方式示意图。如图2所示,以区块链系统包括6个节点为例,每个节点都存储大量同样的数据,这种方式没有兼容基于分布式存储的上层执行环境,极大地提高了本地的存储开销;尤其当智能合约需要在本地搜索冷数据时,所需要的时间较长。
②、所述冷数据采用分布式存储,每个节点只存储所述冷数据的一部分;所述热数据为被计算节点频繁访问的在线类数据,每个所述节点都存储完整的所述热数据;当本地的所述冷数据不完整时,向邻近的其它节点请求,获取完整的所述冷数据。
请参阅图3,图3所示为本发明实施例中第二种区块链数据存储方式示意图。如图3所示,以区块链系统包括6个节点为例,热数据每个节点都存储并维护,而对于冷数据,采用分布式存储,每个节点只存储一部分,即将全网的冷数据分成3份,节点1、节点2和节点3均各自维护全网冷数据的1/3,得到分布式存储一份完整的冷数据。当其中一节点需要查找历史冷数据,但本节点查找不到时,可以向邻近的节点请求冷数据,从而达到请求完整数据的目的。同时,为防止部分节点意外宕机,无法提供服务,分布式存储需要考虑容灾备份的需求,整个系统中每份冷数据有多个副本或多个纠错码意义下的备份,即节点4、节点5和节点6均各自维护全网冷数据的1/3,同样分布式存储(备份)了一份完整的冷数据。
在执行时,如果本节点无完整的冷数据信息,可以向邻近的其他节点请求,这样可以极大地节约存储开销。
因此,与上述方式一相同,当智能合约需要在本地搜索冷数据时,所需要的时间较长,即造成在一预定的时间内收集到的本地数据不完整。此时,就执行步骤S5:挂起当前的所述智能合约,将下一个所述智能合约或所述事务交易transaction作为当前所述智能合约执行。
在本发明的实施例中,所述步骤S5可以具体包括:
步骤S51:挂起当前的所述智能合约,将下一个所述智能合约或所述事务交易transaction作为当前所述智能合约执行;
步骤S52:继续完成所挂起的所述智能合约的本地数据完整性工作;
步骤S53:判断挂起的所述智能合约的本地数据是否完整,如果是,判断当前所述智能合约或所述事务交易transaction是否执行完成?如果是,将挂起的所述智能合约返回作为当前所述智能合约执行;否则,依次将再下一个所述智能合约或所述事务交易transaction作为当前所述智能合约执行。
步骤S6:判断是否存在未处理的所述事务交易transaction或所述智能合约,如果是,执行所述步骤S1,如果不是,则结束。
下面通过以下两个具体的实施例,对本发明进一步详述。
实施例1
请参阅图4,图4所示为本发明实施例中本地无完整冷数据时异步执行智能合约的流程示意图。如图4所示,该区块链虚拟机在执行智能合约如果遇到访问本地没有的冷数据时,及时挂起当前智能合约,并执行下一个合约或交易;等本地数据准备好以后再恢复并执行挂起的智能合约,这样可以有效的提升智能合约执行的效率。
实施例2
请参阅图5,图5所示为本发明实施例中本地数据完整但合约执行无反馈情况下异步执行智能合约的流程示意图。如图5所示,该区块链虚拟机在执行智能合约,如果遇到所述步骤S4中的返回执行失败的结果的情况时(即当本地数据完整时,所述智能合约执行在一预定时间内无结果反馈),及时挂起当前智能合约,并执行下一个智能合约或交易时间;等本地数据准备好以后再恢复并执行挂起的智能合约,这样可以有效的提升智能合约执行的效率。
以上所述的仅为本发明的优选实施例,所述实施例并非用以限制本发明的专利保护范围,因此凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。
Claims (6)
1.一种区块链虚拟机异步执行智能合约的方法,用于包括N个节点的区块链系统中,其特征在于,包括如下步骤:
步骤S1:每个节点从区块广播中获取未处理的事务交易transaction,按打包的顺序依次执行未处理的所述事务交易transaction;
步骤S2:在执行当前所述事务交易transaction时,从所述事务交易transaction中解析获取payload数据;
步骤S3:从所述payload数据中解析函数以及智能合约相关的API,并准备调用当前所述事务交易transaction的智能合约;
步骤S4:在调用所述智能合约时,检查本地数据是否完整,如果是,执行所述智能合约,返回执行成功或失败的结果,如果得到成功的结果,执行步骤S6;如果本地数据不完整,或执行所述智能合约时返回执行失败的结果,则执行步骤S5;
步骤S5:挂起当前的所述智能合约,将下一个所述智能合约或所述事务交易transaction作为当前所述智能合约执行;
步骤S6:判断是否存在未处理的所述事务交易transaction或所述智能合约,如果是,执行所述步骤S1,如果不是,则结束。
2.根据权利要求1所述的区块链虚拟机异步执行智能合约的方法,其特征在于,在步骤S4中,每一个所述节点中包括的所述本地数据分为冷数据和热数据;其中,所述冷数据为离线类不经常访问的数据,所述热数据为被计算节点频繁访问的在线类数据,每个所述节点都存储完整的所述热数据和所述冷数据。
3.根据权利要求1所述的区块链虚拟机异步执行智能合约的方法,其特征在于,在步骤S4中,每一个所述节点中包括的所述本地数据分为冷数据和热数据;其中,所述冷数据为离线类不经常访问的数据,所述冷数据采用分布式存储,每个节点只存储所述冷数据的一部分;所述热数据为被计算节点频繁访问的在线类数据,每个所述节点都存储完整的所述热数据;当本地的所述冷数据不完整时,向邻近的其它节点请求,获取完整的所述冷数据。
4.根据权利要求2或3任意一个所述的区块链虚拟机异步执行智能合约的方法,其特征在于,所述步骤S5具体包括:
步骤S51:挂起当前的所述智能合约,将下一个所述智能合约或所述事务交易transaction作为当前所述智能合约执行;
步骤S52:继续完成所挂起的所述智能合约的本地数据完整性工作;
步骤S53:判断挂起的所述智能合约的本地数据是否完整,如果是,判断当前所述智能合约或所述事务交易transaction是否执行完成?如果是,将挂起的所述智能合约返回作为当前所述智能合约执行;否则,依次将再下一个所述智能合约或所述事务交易transaction作为当前所述智能合约执行。
5.根据权利要求1所述的区块链虚拟机异步执行智能合约的方法,所述步骤S4中的返回执行失败的结果的情况为,当本地数据完整时,所述智能合约执行在一预定时间内无结果反馈。
6.根据权利要求1所述的区块链虚拟机异步执行智能合约的方法,其特征在于,在所述智能合约中嵌套调用有另外一个所述智能合约。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210107544.2A CN114547191A (zh) | 2022-01-28 | 2022-01-28 | 区块链虚拟机异步执行智能合约的方法、系统及p2p网络 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210107544.2A CN114547191A (zh) | 2022-01-28 | 2022-01-28 | 区块链虚拟机异步执行智能合约的方法、系统及p2p网络 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114547191A true CN114547191A (zh) | 2022-05-27 |
Family
ID=81672832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210107544.2A Pending CN114547191A (zh) | 2022-01-28 | 2022-01-28 | 区块链虚拟机异步执行智能合约的方法、系统及p2p网络 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114547191A (zh) |
-
2022
- 2022-01-28 CN CN202210107544.2A patent/CN114547191A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3270216B2 (ja) | ファイル名検出方式 | |
CN110447021B (zh) | 用于在数据中心之间维持元数据和数据的一致性的方法、装置和系统 | |
JP6463393B2 (ja) | テナント移行にわたるテナント・データのリカバリ | |
US11321291B2 (en) | Persistent version control for data transfer between heterogeneous data stores | |
CN111078667B (zh) | 一种数据迁移的方法以及相关装置 | |
CN111506253B (zh) | 一种分布式存储系统及其存储方法 | |
US6944635B2 (en) | Method for file deletion and recovery against system failures in database management system | |
CN111240892A (zh) | 数据备份方法及装置 | |
CN111666266A (zh) | 一种数据迁移方法及相关设备 | |
CN114490677A (zh) | 数据分析系统中的数据同步 | |
CN112256400A (zh) | 一种虚拟机快照管理方法及装置 | |
CN101206596A (zh) | 复原系统操作的方法 | |
CN113297173B (zh) | 分布式数据库集群管理方法及装置、电子设备 | |
CN114356504A (zh) | 集群中数据迁移方法、装置、电子设备和存储介质 | |
CN112269679A (zh) | 一种云平台的数据库持久化方法、系统、设备及存储介质 | |
CN114547191A (zh) | 区块链虚拟机异步执行智能合约的方法、系统及p2p网络 | |
CN109359085A (zh) | 文件迁移方法、装置、计算机设备及存储介质 | |
CN113934575A (zh) | 一种基于分布式拷贝的大数据备份系统及方法 | |
CN112765126A (zh) | 数据库事务的管理方法、装置、计算机设备和存储介质 | |
CN112269677A (zh) | 一种异构云平台下的回滚操作装置、方法、设备及介质 | |
KR102303895B1 (ko) | 이중화 성능이 개선된 데이터베이스 이중화시스템 | |
US8250195B2 (en) | Leveraging synchronous communication protocols to enable asynchronous application and line-of-business behaviors | |
CN111241068B (zh) | 信息处理方法、装置及设备、计算机可读存储介质 | |
CN114328376A (zh) | 快照创建方法、装置、设备及存储介质 | |
CN111797062B (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 |