CN117593129B - 交易的执行方法、装置、计算机可读介质及电子设备 - Google Patents

交易的执行方法、装置、计算机可读介质及电子设备 Download PDF

Info

Publication number
CN117593129B
CN117593129B CN202410078987.2A CN202410078987A CN117593129B CN 117593129 B CN117593129 B CN 117593129B CN 202410078987 A CN202410078987 A CN 202410078987A CN 117593129 B CN117593129 B CN 117593129B
Authority
CN
China
Prior art keywords
transaction
new
blockchain
data transfer
contract
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
CN202410078987.2A
Other languages
English (en)
Other versions
CN117593129A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202410078987.2A priority Critical patent/CN117593129B/zh
Publication of CN117593129A publication Critical patent/CN117593129A/zh
Application granted granted Critical
Publication of CN117593129B publication Critical patent/CN117593129B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请的实施例提供了一种交易的执行方法、装置、计算机可读介质及电子设备,该方法由区块链网络中的区块链主节点执行,该方法包括:在获取到待执行交易后,在数据中转方创建新交易,并将待执行交易的交易内容存入新交易中,以便区块链主节点对应的第一交易执行方在监测到数据中转方中产生了与区块链主节点对应的新交易之后,根据新交易的交易内容调用目标智能合约执行所述新交易,并将新交易的执行结果存入数据中转方;交易内容包括与目标智能合约相关的信息;当监测到数据中转方产生了所述新交易的执行结果,获取新交易的执行结果。本申请实施例可以简化不同语言的交易执行方与区块链节点的交互过程,并能够降低系统实施的难度和维护成本。

Description

交易的执行方法、装置、计算机可读介质及电子设备
技术领域
本申请涉及区块链技术领域,具体而言,涉及一种交易的执行方法、装置、计算机可读介质及电子设备。
背景技术
目前,区块链节点通常使用交易执行方来执行交易。
然而,对于每一种语言的交易执行方,都需要设计一套交互的协议和处理的代码用来和区块链节点进行互通,导致了开发、设计和管理工作相对繁琐,增加了系统实施的难度和维护成本。
发明内容
本申请的实施例提供了一种交易的执行方法、装置、计算机可读介质及电子设备,进而至少在一定程度上可以简化不同语言的交易执行方与区块链节点的交互过程,并能够降低系统实施的难度和维护成本。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种交易的执行方法,该方法由区块链网络中的区块链主节点执行,该方法包括:在获取到待执行交易后,在数据中转方创建新交易,并将所述待执行交易的交易内容存入所述新交易中,以便所述区块链主节点对应的第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新交易之后,根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方;所述交易内容包括与所述目标智能合约相关的信息;当监测到所述数据中转方产生了所述新交易的执行结果,获取所述新交易的执行结果。
根据本申请实施例的一个方面,提供了一种交易的执行装置,所述装置应用于区块链网络中的区块链主节点,所述装置包括:创建和保存单元,用于在获取到待执行交易后,在数据中转方创建新交易,并将所述待执行交易的交易内容存入所述新交易中,以便所述区块链主节点对应的第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新交易之后,根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方;所述交易内容包括与所述目标智能合约相关的信息;获取单元,用于当监测到所述数据中转方产生了所述新交易的执行结果,获取所述新交易的执行结果。
在本申请的一些实施例中,基于前述方案,所述与所述目标智能合约相关的信息包括所述目标智能合约的名称、所述目标智能合约对应的方法名称和参数,所述第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新交易之后,通过如下方式根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方:启动用于执行所述新交易的合约进程;根据所述目标智能合约对应的方法名称确定所述目标智能合约对应的若干合约语句;通过所述合约进程根据所述目标智能合约对应的参数逐一执行所述目标智能合约对应的若干合约语句;若当前合约语句为需要与区块链交互的语句,则生成交互请求创建指令,并将所述交互请求创建指令发送至数据中转方,以指示在所述数据中转方中创建新交互请求;当监测到所述数据中转方中产生了所述新交互请求的应答结果,根据所述应答结果执行所述当前合约语句,其中,所述新交互请求的应答结果是所述区块链主节点在监测到所述数据中转方创建的所述新交互请求之后,由所述区块链主节点通过处理所述新交互请求生成并存入所述数据中转方的;若当前合约语句为无需与外部交互的普通执行语句,则通过所述合约进程执行所述当前合约语句;若当前合约语句为用于返回结果的语句,则在得到所述新交易的执行结果之后,通过所述合约进程执行所述当前合约语句将所述新交易的执行结果存入所述数据中转方。
在本申请的一些实施例中,基于前述方案,所述装置还包括待执行交易获取单元及验证和共识单元;在数据中转方创建新交易之前,所述待执行交易获取单元用于:在获取到交易后,将所述交易放入交易池中;生成新区块创建指令,并将所述新区块创建指令发送至数据中转方,以指示在所述数据中转方中创建新区块;从所述交易池中获取用于产生新区块的若干交易,作为待执行交易;所述创建和保存单元配置为:在获取到待执行交易后,在数据中转方创建与所述新区块关联的新交易,并将所述待执行交易的交易内容存入所述新交易中,以便所述区块链主节点对应的第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新区块中的所述新交易之后,根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方;在获取所述新交易的执行结果之后,所述验证和共识单元用于:当获取到与所述新区块关联的所有新交易的执行结果,根据各新交易和各新交易的执行结果生成待验证区块,并将所述待验证区块发送至区块链网络中与所述区块链主节点对应的区块链从节点中,由所述区块链从节点基于由与所述区块链从节点对应的第二交易执行方产生的各新交易的验证执行结果对所述待验证区块进行验证,并将验证结果发送至其他区块链节点;若根据各所述区块链从节点对所述待验证区块的验证结果确定所述区块链网络对所述待验证区块的验证达成共识,则将所述待验证区块添加至所述区块链网络所维护的区块链中。
在本申请的一些实施例中,基于前述方案,所述第二交易执行方通过如下方式产生各新交易的验证执行结果:从所述区块链从节点获取所述待验证区块中的新交易;启动用于执行所述新交易的新合约进程;根据所述新交易中目标智能合约对应的方法名称确定所述目标智能合约对应的若干合约语句;通过所述新合约进程根据所述新交易中所述目标智能合约对应的参数逐一执行所述目标智能合约对应的若干合约语句;若当前合约语句为需要与区块链交互的语句,则生成交互请求创建指令,并将所述交互请求创建指令发送至所述数据中转方,以指示在所述数据中转方中创建新交互请求;从所述数据中转方中获取所述新交互请求的应答结果,并根据所述应答结果执行所述当前合约语句,其中,所述新交互请求的应答结果是所述数据中转方在接收到所述交互请求创建指令之后,根据已存在根据所述交互请求创建指令创建的交互请求而直接将所述交互请求的应答结果作为新交互请求的应答结果返回给所述第二交易执行方的;若当前合约语句为无需与外部交互的普通执行语句,则通过所述新合约进程执行所述当前合约语句;若当前合约语句为用于返回结果的语句,则在得到所述新交易的验证执行结果之后,通过所述新合约进程执行所述当前合约语句将所述验证执行结果存入所述数据中转方。
在本申请的一些实施例中,基于前述方案,所述数据中转方为包括多个数据库的分布式数据库,所述分布式数据库中不同数据库之间自动同步数据。
在本申请的一些实施例中,基于前述方案,所述区块链从节点是通过专属的私有数据中转方与所述第二交易执行方交互的,所述私有数据中转方与所述数据中转方之间不进行数据同步。
在本申请的一些实施例中,基于前述方案,所述装置还包括请求验证单元;在将所述交易放入交易池中之前,所述请求验证单元用于:在所述区块链主节点接收到客户端发来的携带有交易的交易请求之后,对所述交易请求进行签名验证和权限验证,其中,将所述交易放入交易池中是在所述交易请求通过了所述签名验证和所述权限验证的情况下进行的。
在本申请的一些实施例中,基于前述方案,所述创建和保存单元配置为:在获取到待执行交易后,根据各待执行交易的优先级对各待执行交易进行排序;根据排序结果每次选择一个待执行交易,在数据中转方创建与所述新区块关联的一个新交易,并将选择的所述待执行交易的交易内容存入所述新交易中。
在本申请的一些实施例中,基于前述方案,所述装置还包括状态更新单元;在将验证结果发送至其他区块链节点之后,所述状态更新单元用于:若根据各所述区块链从节点对所述待验证区块的验证结果确定所述区块链网络对所述待验证区块的验证达成共识,则根据各新交易的执行结果对所述区块链主节点所维护的状态数据进行更新。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的交易的执行方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的交易的执行方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如上述实施例中所述的交易的执行方法。
在本申请的一些实施例所提供的技术方案中,在区块链主节点获取到待执行交易后,通过在数据中转方创建新交易,并将待执行交易的交易内容存入新交易中,与区块链主节点对应的第一交易执行方会监测到数据中转方中产生了与该区块链主节点对应的新交易,并从数据中转方获取和执行该新交易,还会将新交易的执行结果存入数据中转方;区块链主节点也会对数据中转方进行监测,当监测到数据中转方产生了新交易的执行结果,会直接从数据中转方获取该新交易的执行结果。因此,通过通用的数据中转方实现了区块链主节点和相应的交易执行方之间的交互,对于不同语言的交易执行方,也不需要单独设计一套交互的协议和处理的代码用来和区块链节点进行互通,只需要能够与数据中转方进行交互即可,因此,可以简化不同语言的交易执行方与区块链节点的交互过程,并能够降低系统实施的难度和维护成本,降低了开发、设计和管理的难度,提高了系统的通用性和可扩展性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
图2示出了根据本申请的一个实施例的交易的执行方法的流程图。
图3示出了根据本申请的一个实施例的图2实施例中步骤240之前步骤、步骤240的细节以及步骤250之后步骤的流程图。
图4示出了根据本申请的一个实施例的区块链节点的架构示意图。
图5示出了根据本申请的一个实施例的基于分布式数据库实现区块链主节点和虚拟机引擎之间交互的示意图。
图6示出了根据本申请的一个实施例的区块链节点对应的虚拟机引擎的架构示意图。
图7示出了根据本申请的一个实施例的第一交易执行方根据新交易的交易内容调用目标智能合约执行新交易,并将新交易的执行结果存入数据中转方的流程图。
图8A-图8C示出了根据本申请的一个实施例的区块链主节点交易执行流程的流程示意图。
图9示出了根据本申请的一个实施例的分布式数据库的存储结构图。
图10示出了根据本申请的一个实施例的第二交易执行方产生各新交易的验证执行结果的流程图。
图11A-图11B示出了根据本申请的一个实施例的区块链从节点的交易验证流程的流程示意图。
图12示出了根据本申请的一个实施例的信任模式下区块链从节点与分布式数据库的交互图。
图13示出了根据本申请的一个实施例的非信任模式下区块链从节点与分布式数据库的交互图。
图14示出了根据本申请的一个实施例的区块链网络中交易的执行装置的框图。
图15示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
相关技术中,区块链主节点通常利用交易执行方来执行交易,并利用相应的区块链从节点来验证交易。
然而,相关技术存在以下明显缺陷:
1、开发和维护复杂度较高:传统方案中,每种虚拟引擎的语言都需要设计一套交互的协议和处理的代码用来和区块链节点进行互通。这导致了开发、设计和管理工作相对繁琐,增加了系统实施的难度和维护成本。
2、数据共享效率较低:在传统方案中,从节点在执行时需要重新向区块链获取数据,无法有效利用主节点已经获取到的数据。这导致了数据获取过程的重复,降低了整个系统的运行效率。
3、灵活性较差:传统方案中,节点之间的数据共享和信任关系配置相对固定,缺乏灵活性。这可能导致节点在面临不同信任关系和需求时,难以作出合适的调整。
为此,本申请首先提供了一种交易的执行方法。基于本申请实施例提供的交易的执行方法可以克服上述缺陷,不仅简化了不同语言虚拟引擎与区块链的交互过程,可以降低系统开发和维护的复杂度,而且可以实现数据的高效共享,提供整个系统的运行效率,此外,可以灵活调整节点之间的数据共享和信任关系,能够满足多样化的需求。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。如图1所示,该系统架构100可以包括用户终端110、服务器网络130和包括多个数据库的分布式数据库140,服务器网络130包括多个服务器,具体可以包括第一服务器131、第二服务器132、第三服务器133、第四服务器134和第五服务器135,用户终端110和服务器网络130通过第一通信链路120相连,服务器网络130中任意两个服务器之间均建立了通信连接,这使得用户终端110可以与服务器网络130中的任意一个服务器进行通信,服务器网络130中的任意两个服务器之间也可以相互进行通信。分布式数据库140具体可以包括第一数据库141、第二数据库142以及第三数据库143,不同数据库之间自动同步数据。服务器网络130中的每个服务器包括一个区块链节点和与该区块链节点对应的交易执行方。服务器网络130和分布式数据库140通过第二通信链路150相连,这使得各服务器上的区块链节点和交易执行方可以与分布式数据库140中的一个或者多个数据库交互。当本申请提供的一种交易的执行方法应用于图1所示的系统架构中时,一个过程可以是这样的:首先,用户通过用户终端110上的客户端将一个包含原始交易的交易请求发送至服务器网络130的第一服务器131,第一服务器131上的第一区块链节点接收到该交易请求,并获取到该交易请求中的原始交易;然后,第一服务器131的第一区块链节点向分布式数据库140发送新交易创建指令,由分布式数据库140根据该新交易创建指令创建一个新的交易,第一区块链节点将获取到的该原始交易的交易内容发送至分布式数据库140,分布式数据库140将该原始交易的交易内容存入新交易中,从而生成新交易;接着,第一服务器131上与第一区块链节点对应的交易执行方持续对分布式数据库140进行监测,当监测到分布式数据库140存在与第一区块链节点对应的新交易时,会自动执行该新交易,并将执行结果存入分布式数据库140;最后,第一区块链节点也会持续对分布式数据库140进行监测,当其监测到分布式数据库140产生了新交易对应的执行结果,便可以从分布式数据库140获取到该执行结果。
在本申请的一些实施例中,每个区块链节点和相应的交易执行方定期对分布式数据库进行监测。
在本申请的一些实施例中,第一区块链节点是在将获取到的原始交易的交易内容发送至分布式数据库之后开始对分布式数据库进行监测的。
在本申请的一些实施例中,第一区块链节点为区块链主节点,第一区块链节点会在获得了新交易对应的执行结果之后,将该新交易对应的原始交易发送至服务器网络130中的其他区块链节点,由其他区块链节点以区块链从节点的身份对该原始交易进行验证。
在本申请的一些实施例中,区块链从节点与区块链主节点采用同样的方式与分布式数据库140进行交互,以对原始交易进行验证。
应该理解,图1中的用户终端的数目、服务器网络中的服务器的数目以及分布式数据库包括的数据库的数目仅仅是示意性的。根据实现需要,可以具有任意数目的用户终端,服务器网络中的服务器的数目及分布式数据库包括的数据库的数目也可以是任意的,即用户终端可以为多个,服务器网络中的服务器的数目可以超过5个,也可以低于5个,分布式数据库包括的数据库的数目可以超过3个,也可以低于3个。
需要说明的是,图1示出的仅为本申请的一个实施例。虽然在图1实施例的方案是通过分布式数据库实现区块链节点和交易执行方之间的通信的,但在本申请的其他实施例中,还可以通过其他各种能够实现数据中转的机构来进行区块链节点和交易执行方之间的通信;虽然在图1实施例的方案中,区块链节点和交易执行方位于服务器上,而用户终端为台式计算机,但在本申请的其他实施例中,区块链节点和交易执行方所部署的设备以及用户终端还可以为笔记本电脑、台式计算机、平板电脑、车载终端、便携式可穿戴设备、工作站等各种类型的终端设备;虽然在图1实施例的方案中,区块链节点和与其对应的交易执行方部署在同一设备上,但在本申请的其他实施例中,区块链节点和与其对应的交易执行方还可以部署在不同设备上;虽然在图1实施例的方案中,对于每个区块链节点,都有一个与之唯一对应的交易执行方,但在本申请的其他实施例中,不同区块链节点可以使用相同的交易执行方。本申请实施例对此不作任何限定,本申请的保护范围也不应因此而受到任何限制。
易于理解,本申请实施例所提供的交易的执行方法一般由服务器执行,相应地,交易的执行装置一般设置于服务器中。但是,在本申请的其它实施例中,终端设备也可以与服务器具有相似的功能,从而执行本申请实施例所提供的交易的执行方案。
因此,本申请实施例可以应用于终端或服务器中。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例的方案可以应用于区块链领域。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监测等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,管理和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监测模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监测网络情况、监测节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图2示出了根据本申请的一个实施例的交易的执行方法的流程图,该交易的执行方法可以由区块链网络中的区块链主节点执行,区块链主节点可以是区块链网络中的任一区块链节点,区块链节点可以是各种能够计算和处理的设备来执行,比如可以是用户终端或云服务器,用户终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器、智能手表等。请参照图2所示,该交易的执行方法至少包括以下步骤:
步骤240,在获取到待执行交易后,在数据中转方创建新交易,并将待执行交易的交易内容存入新交易中,以便区块链主节点对应的第一交易执行方在监测到数据中转方中产生了与区块链主节点对应的新交易之后,根据新交易的交易内容调用目标智能合约执行新交易,并将新交易的执行结果存入数据中转方;交易内容包括与目标智能合约相关的信息。
步骤250,当监测到数据中转方产生了新交易的执行结果,获取新交易的执行结果。
在详细介绍上述步骤之前,先介绍在步骤240之前需要执行的步骤。
图3示出了根据本申请的一个实施例的图2实施例中步骤240之前步骤、步骤240的细节以及步骤250之后步骤的流程图。请参见图3所示,在数据中转方创建新交易,可以包括以下步骤:
在步骤210中,在获取到交易后,将交易放入交易池中。
区块链主节点可以通过接收交易请求的方式获取到交易请求携带的交易,然后执行该交易。区块链主节点可以是距离请求方最近的区块链节点,也可以是从区块链网络中随机确定的区块链节点。
区块链节点的交易池(Transaction Pool,也称为Mempool)是指未被打包到区块中的、等待被写入区块的交易集合。
在本申请的一个实施例中,在将交易放入交易池中之前,该方法还包括:
在区块链主节点接收到客户端发来的携带有交易的交易请求之后,对交易请求进行签名验证和权限验证,其中,将交易放入交易池中是在交易请求通过了签名验证和权限验证的情况下进行的。
可以根据请求方的公钥对交易请求进行签名验证。
交易请求中可以包含请求方的身份标识,可以通过判断该交易请求是否与该身份标识对应的权限匹配来对该交易请求进行权限验证。请求方的身份标识可以是请求方的公钥,还可以是其他各种能够唯一标识一个请求方的ID。
具体而言,通过可以判断交易请求的请求方是否位于异常名单中、是否有权限发送交易、是否有权限调用创建合约的方法等方式判断是否通过权限验证。
图4示出了根据本申请的一个实施例的区块链节点的架构示意图。请参见图4所示,区块链节点可以包括网络模块、验证模块、交易池模块、调度执行模块、共识模块以及存储模块。
网络模块负责节点之间的通信,包括接收和发送区块、交易和其他网络信息,其用来确保区块链节点之间的信息传递顺畅,以维护整个区块链网络的稳定运行。
验证模块负责对交易和区块进行验证,确保其符合区块链的规则和约束;验证模块包括证书验证子模块和权限验证子模块;证书验证子模块用于对交易和区块的签名进行验证,确保其来源可信;权限验证子模块用于检查发送者是否具有执行交易的权限。可以通过证书验证子模块进行签名验证,并通过权限验证子模块进行权限验证。
交易池模块负责管理尚未打包进区块的交易。节点接收到新交易后,将其存储在交易池中,等待进一步处理。
调度执行模块负责处理交易池中的交易,将其打包进新区块并更新区块链状态;调度执行模块包括区块生成器子模块、交易调度器子模块、交易请求处理器子模块以及分布式数据库客户端子模块;区块生成器子模块负责根据交易执行结果生成新的区块;交易调度器子模块负责对交易进行排序和筛选,以便优先处理高优先级的交易;交易请求处理器子模块负责处理分布式数据库的请求(来自合约进程,如合约进程发起了一个查询链上数据的请求);
分布式数据库客户端子模块负责与分布式数据库进行交互,实现虚拟引擎与区块链之间的通信。
共识模块负责在区块链网络中达成关于区块链状态的一致性。
存储模块负责管理区块链节点的本地数据,包括区块数据和状态数据;存储模块包括区块账本子模块和状态数据子模块;区块账本子模块用于存储区块链节点的区块数据,包括区块头、交易列表等信息;状态数据子模块用于存储区块链节点的状态数据,如账户余额、智能合约状态等。区块账本是区块链系统中的核心数据结构,用于存储和管理所有已确认的区块。区块账本以链式结构组织,每个区块包含一组交易、区块头(包括前一个区块的哈希值、时间戳等元数据)以及其他信息。区块账本为区块链系统提供了一个公共、不可篡改的交易历史记录,确保了系统的透明性和一致性。
通过上述模块的协同工作,区块链节点能够实现交易的处理、共识的达成以及数据的存储等核心功能,确保区块链网络的正常运行和安全性。
可以利用图4所示的交易池模块将交易放入交易池中。
在步骤220中,生成新区块创建指令,并将新区块创建指令发送至数据中转方,以指示在数据中转方中创建新区块。
新区块创建指令是一个用于指示数据中转方创建新区块的语句。
在本申请的一个实施例中,数据中转方为包括多个数据库的分布式数据库,分布式数据库中不同数据库之间自动同步数据。
分布式数据库中不同数据库的容量大小以及性能参数等指标可以相同,也可以不同,分布式数据库中不同数据库通常位于不同地理位置。分布式数据库可以部署在区块链节点中,也可以部署在其他环境。每个数据库都保存着同样的数据,自动同步。
图5示出了根据本申请的一个实施例的基于分布式数据库实现区块链主节点和虚拟机引擎之间交互的示意图。
请参见图5所示,区块链主节点与对应的虚拟机引擎之间的交互都是通过分布式数据库实现的,即可以通过分布式数据库进行两者之间的数据传输,虚拟机引擎即交易执行方。
区块链节点与对应的虚拟机引擎可以分离部署,即两者可以部署在不同的机器或者不同的容器中;区块链主节点与对应的虚拟机引擎也可以部署在同一环境,即两者可以部署在相同的机器或者容器中。一个虚拟机引擎可以仅与一个区块链节点对应,一个虚拟机引擎也可以同时与多个区块链节点对应。
在步骤230中,从交易池中获取用于产生新区块的若干交易,作为待执行交易。
在具体应用时,可以获取分别与不同用户对应的若干交易作为待执行交易,以避免交易执行冲突。
下面,详细介绍图2所示步骤。
在步骤240中,在获取到待执行交易后,在数据中转方创建新交易,并将待执行交易的交易内容存入新交易中,以便区块链主节点对应的第一交易执行方在监测到数据中转方中产生了与区块链主节点对应的新交易之后,根据新交易的交易内容调用目标智能合约执行新交易,并将新交易的执行结果存入数据中转方;交易内容包括与目标智能合约相关的信息。
第一交易执行方可以是与区块链主节点对应的第一虚拟机引擎。第一交易执行方会持续监测数据中转方。第一交易执行方可以是与当前的区块链主节点唯一对应的交易执行方。当前的区块链主节点和第一交易执行方可以部署在相同或者不同的机器上。第一交易执行方根据与目标智能合约相关的信息可以确定出需要调用的目标智能合约。
智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追溯且不可逆转。
交易执行方,即虚拟机引擎,其是负责执行智能合约的核心组件,它为智能合约提供了一个运行环境,支持各种操作,如计算、存储和通信等。
图6示出了根据本申请的一个实施例的区块链节点对应的虚拟机引擎的架构示意图。请参见图6所示,虚拟机引擎包括网络模块和交易执行模块。网络模块负责虚拟机引擎与区块链节点之间的通信,包括接收和发送交易请求、交易回复等信息,网络模块可以确保虚拟机引擎与区块链节点之间的信息传递顺畅,以实现智能合约的正确执行。交易执行模块包括以下子模块:
合约进程池:负责管理智能合约的执行进程,为每个智能合约提供一个独立的运行环境,以确保其正确执行且互不干扰。
交易回复处理器:负责处理智能合约执行结果,将执行结果返回给区块链节点,以便节点更新区块链状态。
分布式数据库客户端:负责与分布式数据库进行交互,实现虚拟机引擎与区块链之间的通信,从而简化了不同语言虚拟引擎与区块链的交互过程。
请继续参见图3所示,图2实施例中的步骤240可以包括以下步骤:
在步骤240'中,在获取到待执行交易后,在数据中转方创建与新区块关联的新交易,并将待执行交易的交易内容存入新交易中,以便区块链主节点对应的第一交易执行方在监测到数据中转方中产生了与区块链主节点对应的新区块中的新交易之后,根据新交易的交易内容调用目标智能合约执行新交易,并将新交易的执行结果存入数据中转方。
在本申请实施例中,可以从区块的角度整体创建新区块,并通过第一交易执行方批量执行新区块中的新交易。
在本申请的一个实施例中,与目标智能合约相关的信息包括目标智能合约的名称、目标智能合约对应的方法名称和参数。
在本申请的一个实施例中,在获取到待执行交易后,在数据中转方创建与新区块关联的新交易,并将待执行交易的交易内容存入新交易中,包括:
在获取到待执行交易后,根据各待执行交易的优先级对各待执行交易进行排序;根据排序结果每次选择一个待执行交易,在数据中转方创建与新区块关联的一个新交易,并将选择的待执行交易的交易内容存入新交易中。
待执行交易的优先级比如可以是待执行交易的请求时间,也可以是待执行交易的类别等。
请继续参见图2所示,在步骤250中,当监测到数据中转方产生了新交易的执行结果,获取新交易的执行结果。
当前的区块链主节点能够从数据中转方监测到新交易的执行结果,进而能够获取到该执行结果。
图7示出了根据本申请的一个实施例的第一交易执行方根据新交易的交易内容调用目标智能合约执行新交易,并将新交易的执行结果存入数据中转方的流程图。请参见图7所示,第一交易执行方根据新交易的交易内容调用目标智能合约执行新交易,并将新交易的执行结果存入数据中转方的具体步骤如下:
在步骤710中,启动用于执行新交易的合约进程。
可以通过合约进程池启动相应的合约进程。
在步骤720中,根据目标智能合约对应的方法名称确定目标智能合约对应的若干合约语句。
在步骤730中,通过合约进程根据目标智能合约对应的参数逐一执行目标智能合约对应的若干合约语句。
可以根据目标智能合约的名称启动目标智能合约对应的二进制文件,然后根据目标智能合约对应的方法名称和参数执行相应的合约语句。
在步骤740中,若当前合约语句为需要与区块链交互的语句,则生成交互请求创建指令,并将交互请求创建指令发送至数据中转方,以指示在数据中转方中创建新交互请求。
当前合约语句为当前需要执行的合约语句。
与区块链交互的语句比如可以是请求从区块链获取数据的语句。比如,对于具有转账功能的智能合约,需要从区块链获取转账双方的余额。
在步骤750中,当监测到数据中转方中产生了新交互请求的应答结果,根据应答结果执行当前合约语句,其中,新交互请求的应答结果是区块链主节点在监测到数据中转方创建的新交互请求之后,由区块链主节点通过处理新交互请求生成并存入数据中转方的。
区块链主节点会对数据中转方是否产生新交互请求进行监测,并在监测到新交互请求后,向数据中转方提供相应的应答结果(如请求查询的数据)。
在步骤760中,若当前合约语句为无需与外部交互的普通执行语句,则通过合约进程执行当前合约语句。
无需与外部交互的普通执行语句可以由合约进程执行。
在步骤770中,若当前合约语句为用于返回结果的语句,则在得到新交易的执行结果之后,通过合约进程执行当前合约语句将新交易的执行结果存入数据中转方。
如果得到新交易的执行结果,说明新交易执行完毕,在将新交易的执行结果存入数据中转方后可以结束该合约进程。
图8A-图8C示出了根据本申请的一个实施例的区块链主节点交易执行流程的流程示意图。请参见图8A-图8C所示,具体可以包括以下流程:
步骤810,开始。
步骤820,用户将交易发送到主节点上。
步骤830,区块链节点网络模块接收交易并发送到验证模块进行验证。
步骤840,签名验证是否通过?
如果是,则转到步骤860,否则转到步骤850。
步骤850,返回签名验证失败的错误。向请求方返回相应的错误信息。
在执行完本步骤后转到步骤8320。
步骤860,权限验证是否通过?
如果是,则转到步骤880,否则转到步骤870。
步骤870,返回该用户无权限进行此操作的错误。
在执行完本步骤后转到步骤8320。
步骤880,区块链节点将该交易放入交易池中。
步骤890,区块链主节点调度执行模块开始出新区块。
此处为触发信号,代表调度执行模块需要开始产生新的区块。
步骤8100,分布式数据库客户端生成并发送创建区块的语句,让数据库创建新的区块。
分布式数据库客户端向分布式数据库发送新区块创建指令。
步骤8110,区块调度执行模块从交易池打包一批交易作为新区块的所有交易准备执行。
区块调度执行模块从交易池选择一批交易作为建立新区块的所有交易。
步骤8120,区块调度执行模块按照一定调度算法将交易按照顺序放给分布式数据库客户端。
区块调度执行模块按照一定顺序将各交易提供给分布式数据库客户端。
步骤8130,分布式数据库客户端执行创建交易的语句,让数据库创建新的交易,并将交易内容放到交易中。
数据库创建的新交易为新的区块,在将交易内容放到交易中之后,该交易会被添加至新区块中。
图9示出了根据本申请的一个实施例的分布式数据库的存储结构图。请参见图9所示,分布式数据库包括多个节点(即数据库),每个节点都保存着不同区块的内容,每个区块保存着不同交易,每一笔交易中包括交易内容、请求列表和回复列表。交易内容通常包括调用的合约名、方法名、参数、调用用户、调用时间等;请求列表通常包括虚拟机引擎向区块链的请求列表,如获取数据、存储数据等,还会存储虚拟机引擎执行的结果;回复列表通常包括区块链向虚拟机引擎回复的内容,如查询结果。
步骤8140,虚拟机引擎网络模块监测到新区块中的新交易。
步骤8150,虚拟机引擎交易执行模块开始处理新交易。
步骤8160,虚拟机引擎交易执行模块从合约进程池中启动合约进程执行上述交易。
步骤8170,虚拟机引擎合约进程开始根据交易中的方法和参数逐步执行合约语句。
步骤8180,当前合约语句为与区块链交互的语句,如获取链上数据?
获取链上数据的语句比如可以是从区块链获取账户余额。
如果是,则转到步骤8190,否则转到步骤8250。
步骤8190,虚拟机引擎分布式数据库客户端执行创建请求的语句,让数据库创建新的请求。
分布式数据库对应创建用来与区块链交互的请求,该请求有对应的请求ID,请求ID可以是根据当前合约语句生成的,比如请求ID可以是通过对当前合约语句进行哈希运算生成的摘要。
步骤8200,区块链节点网络模块监测到新的请求,如获取数据,之后发送给交易请求处理器。
区块链节点网络模块将监测到的请求转发给交易请求处理器。
步骤8210,交易请求处理器处理请求获取结果。
步骤8220,虚拟机引擎分布式数据库客户端将结果存入数据库的回复列表中,键为请求ID。
通过图9可以看到,请求列表和回复列表中的信息均与请求ID对应。
步骤8230,虚拟机引擎网络模块监测到回复并发送给交易回复处理器。
虚拟机引擎的网络模块会监测到相应的回复信息。
步骤8240,交易回复处理器处理回复,进行解包和数据提取。
在执行完本步骤后转到步骤8170。
步骤8250,当前合约语句为普通执行语句,即自身能完成的简单语句?
判断当前合约语句是否为普通执行语句。
如果是,则转到步骤8260,否则转到步骤8270。
步骤8260,合约进程处理该语句。
在执行完本步骤后转到步骤8170。
步骤8270,当前合约语句为返回结果的语句。
确定当前合约语句为返回结果的语句。
步骤8280,虚拟机引擎分布式数据库客户端将交易执行结果存到数据库中的交易请求中。
通过执行返回结果的语句可以将交易执行结果存储到请求列表中。交易执行结果可以是执行成功或执行失败,也可以是通过执行交易产生的结果数据。
步骤8290,区块链节点网络模块监测到新的请求,即执行结果。
步骤8300,区块链节点等待该区块中所有交易都执行完成之后调用区块生成器生成新的待验证区块。
步骤8310,共识模块将上述区块发送给所有从节点进行验证。
步骤8320,结束。
请继续参见图3所示,在获取新交易的执行结果之后,该方法还包括以下步骤:
在步骤260中,当获取到与新区块关联的所有新交易的执行结果,根据各新交易和各新交易的执行结果生成待验证区块,并将待验证区块发送至区块链网络中与区块链主节点对应的区块链从节点中,由区块链从节点基于由与区块链从节点对应的第二交易执行方产生的各新交易的验证执行结果对待验证区块进行验证,并将验证结果发送至其他区块链节点。
第二交易执行方即与区块链从节点对应的第二虚拟机引擎。
与区块链主节点对应的区块链从节点可以是区块链网络中除了区块链主节点之外的所有区块链节点,可以是区块链网络中除了区块链主节点之外的部分区块链节点。
区块链从节点执行新交易的方式可以与区块链主节点类似。区块链从节点通过执行新交易得到相应的最新执行结果,然后将其与获取到的待验证区块中相应新交易的执行结果进行比对,若比对通过,则通过验证。
图10示出了根据本申请的一个实施例的第二交易执行方产生各新交易的验证执行结果的流程图。请参见图10所示,第二交易执行方产生各新交易的验证执行结果的具体步骤如下:
在步骤1010中,从区块链从节点获取待验证区块中的新交易。
在步骤1020中,启动用于执行新交易的新合约进程。
在步骤1030中,根据新交易中目标智能合约对应的方法名称确定目标智能合约对应的若干合约语句。
在步骤1040中,通过新合约进程根据新交易中目标智能合约对应的参数逐一执行目标智能合约对应的若干合约语句。
在步骤1050中,若当前合约语句为需要与区块链交互的语句,则生成交互请求创建指令,并将交互请求创建指令发送至数据中转方,以指示在数据中转方中创建新交互请求。
在步骤1060中,从数据中转方中获取新交互请求的应答结果,并根据应答结果执行当前合约语句,其中,新交互请求的应答结果是数据中转方在接收到所述交互请求创建指令之后,根据已存在根据交互请求创建指令创建的交互请求而直接将交互请求的应答结果作为新交互请求的应答结果返回给第二交易执行方的。
由于数据中转方已经存在了相应的应答结果,因此,可以无需再次对区块链进行查询,缩短了数据获取耗时,提高了系统运行效率。
图12示出了根据本申请的一个实施例的信任模式下区块链从节点与分布式数据库的交互图。请参见图12所示,在信任模式下,区块链从节点接入的是分布式数据库,即多个区块链节点共享数据库中的内容,这种情况下区块链从节点虚拟引擎不需要从区块链节点获取数据,直接获取分布式数据库中的数据即可(主节点在执行时已经存储过)。
在步骤1070中,若当前合约语句为无需与外部交互的普通执行语句,则通过新合约进程执行所述当前合约语句。
在步骤1080中,若当前合约语句为用于返回结果的语句,则在得到新交易的验证执行结果之后,通过新合约进程执行当前合约语句将验证执行结果存入数据中转方。
请继续参见图3,在步骤270中,若根据各区块链从节点对待验证区块的验证结果确定区块链网络对待验证区块的验证达成共识,则将待验证区块添加至区块链网络所维护的区块链中。
具体来说,可以通过实用拜占庭容错算法(PBFT,Practical Byzantine FaultTolerance)进行共识。比如,当所有区块链从节点中一定比例的区块链从节点验证通过时,说明区块链网络对待验证区块的验证达成共识。
在本申请的一个实施例中,在将验证结果发送至其他区块链节点之后,该方法还包括:若根据各区块链从节点对待验证区块的验证结果确定区块链网络对待验证区块的验证达成共识,则根据各新交易的执行结果对区块链主节点所维护的状态数据进行更新。
比如,可以对账户余额等状态数据进行更新。
在本申请的一个实施例中,区块链从节点是通过专属的私有数据中转方与第二交易执行方交互的,私有数据中转方与数据中转方之间不进行数据同步。
图13示出了根据本申请的一个实施例的非信任模式下区块链从节点与分布式数据库的交互图。在非信任模式下,区块链从节点可以选择接入私有数据库,即不与其他区块链节点共享数据,也不从他们的数据库中获取数据,此时仍然会通过私有数据库与区块链从节点进行交互,区块链从节点在进行验证时不使用分布式数据库的数据。
图11A-图11B示出了根据本申请的一个实施例的区块链从节点的交易验证流程的流程示意图。请参见图11A-图11B所示,可以包括以下流程:
步骤1110,开始。
步骤1120,区块链从节点网络模块接收到待验证区块并准备进行验证。
步骤1130,区块链从节点调度执行模块解析区块中的交易并准备验证执行。
步骤1140,区块链从节点的虚拟机引擎网络模块监测到待验证区块中的交易。
步骤1150,虚拟机引擎交易执行模块开始处理交易。
步骤1160,虚拟机引擎交易执行模块从合约进程池中启动合约进程执行上述交易。
步骤1170,虚拟机引擎合约进程开始根据交易中的方法和参数逐步执行合约语句。
步骤1180,当前合约语句为与区块链交互的语句,如获取链上数据?
如果是,则转到步骤1190,否则转到步骤11120。
步骤1190,虚拟机引擎分布式数据库客户端生成并发送创建请求的语句,让数据库创建新的请求。
步骤11100,分布式数据库中已有该请求,直接返回结果。
分布式数据库可以根据分布式数据库客户端发送的语句生成相应的请求ID,并将该请求ID与已有的请求ID进行比对,若比对一致,则确定分布式数据库中已有该请求。
步骤11110,交易回复处理器处理回复,进行解包和数据提取。
在执行完本步骤后转到步骤1170。
步骤11120,当前合约语句为普通执行语句,即自身能完成的简单语句?
如果是,则转到步骤11130,否则转到步骤11140。
步骤11130,合约进程处理该语句。
在执行完本步骤后转到步骤1170。
步骤11140,当前合约语句为返回结果的语句。
步骤11150,虚拟机引擎分布式数据库客户端将交易执行结果存到数据库中的交易请求中。
步骤11160,区块链节点网络模块监测到新的请求,即执行结果。
步骤11170,区块链节点等待该区块中所有交易都执行完成之后开始执行验证
步骤11180,共识模块将验证结果发送给所有其他节点。
步骤11190,所有节点达成一致的共识?
如果是,则转到步骤11210,否则转到步骤11200。
步骤11200,丢弃区块,返回共识失败的错误。
在执行完本步骤后转到步骤11230。
步骤11210,所有节点将最新数据保存到状态数据库中。
步骤11220,所有节点将新的区块追加到区块账本中。
步骤11230,结束。
综上所述,根据本申请实施例提供的交易的执行方法,至少能够取得以下效果:
1、通用性和可扩展性:通过分布式数据库作为中间层,不同语言的虚拟引擎可以更容易地与区块链进行交互,只需适配数据库即可。这大大简化了开发和维护工作,提高了系统的通用性和可扩展性。
2、数据共享效率:分布式数据库可以实现主节点和从节点之间的数据共享,减少了从节点在执行时需要重新向区块链获取数据的耗时,提高了整个系统的运行效率。
3、灵活性:本方案允许从节点根据信任程度选择加入数据库或设立单独的数据库。这为节点提供了更多的灵活性,使其可以根据实际需求和信任关系进行配置。
综上所述,本申请实施例的方案在性能、通信开销和共识策略的自适应性方面具有明显优势,为区块链共识算法带来了较大的优化。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的交易的执行方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的交易的执行方法的实施例。
图14示出了根据本申请的一个实施例的区块链网络中交易的执行装置的框图。参照图14所示,根据本申请的一个实施例的区块链网络中交易的执行装置1400,包括:创建和保存单元1410和获取单元1420。其中,创建和保存单元1410用于在获取到待执行交易后,在数据中转方创建新交易,并将所述待执行交易的交易内容存入所述新交易中,以便所述区块链主节点对应的第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新交易之后,根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方;所述交易内容包括与所述目标智能合约相关的信息;获取单元1420用于当监测到所述数据中转方产生了所述新交易的执行结果,获取所述新交易的执行结果。
在本申请的一些实施例中,基于前述方案,所述与所述目标智能合约相关的信息包括所述目标智能合约的名称、所述目标智能合约对应的方法名称和参数,所述第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新交易之后,通过如下方式根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方:启动用于执行所述新交易的合约进程;根据所述目标智能合约对应的方法名称确定所述目标智能合约对应的若干合约语句;通过所述合约进程根据所述目标智能合约对应的参数逐一执行所述目标智能合约对应的若干合约语句;若当前合约语句为需要与区块链交互的语句,则生成交互请求创建指令,并将所述交互请求创建指令发送至数据中转方,以指示在所述数据中转方中创建新交互请求;当监测到所述数据中转方中产生了所述新交互请求的应答结果,根据所述应答结果执行所述当前合约语句,其中,所述新交互请求的应答结果是所述区块链主节点在监测到所述数据中转方创建的所述新交互请求之后,由所述区块链主节点通过处理所述新交互请求生成并存入所述数据中转方的;若当前合约语句为无需与外部交互的普通执行语句,则通过所述合约进程执行所述当前合约语句;若当前合约语句为用于返回结果的语句,则在得到所述新交易的执行结果之后,通过所述合约进程执行所述当前合约语句将所述新交易的执行结果存入所述数据中转方。
在本申请的一些实施例中,基于前述方案,所述装置还包括待执行交易获取单元及验证和共识单元;在数据中转方创建新交易之前,所述待执行交易获取单元用于:在获取到交易后,将所述交易放入交易池中;生成新区块创建指令,并将所述新区块创建指令发送至数据中转方,以指示在所述数据中转方中创建新区块;从所述交易池中获取用于产生新区块的若干交易,作为待执行交易;创建和保存单元1410配置为:在获取到待执行交易后,在数据中转方创建与所述新区块关联的新交易,并将所述待执行交易的交易内容存入所述新交易中,以便所述区块链主节点对应的第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新区块中的所述新交易之后,根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方;在获取所述新交易的执行结果之后,所述验证和共识单元用于:当获取到与所述新区块关联的所有新交易的执行结果,根据各新交易和各新交易的执行结果生成待验证区块,并将所述待验证区块发送至区块链网络中与所述区块链主节点对应的区块链从节点中,由所述区块链从节点基于由与所述区块链从节点对应的第二交易执行方产生的各新交易的验证执行结果对所述待验证区块进行验证,并将验证结果发送至其他区块链节点;若根据各所述区块链从节点对所述待验证区块的验证结果确定所述区块链网络对所述待验证区块的验证达成共识,则将所述待验证区块添加至所述区块链网络所维护的区块链中。
在本申请的一些实施例中,基于前述方案,所述第二交易执行方通过如下方式产生各新交易的验证执行结果:从所述区块链从节点获取所述待验证区块中的新交易;启动用于执行所述新交易的新合约进程;根据所述新交易中目标智能合约对应的方法名称确定所述目标智能合约对应的若干合约语句;通过所述新合约进程根据所述新交易中所述目标智能合约对应的参数逐一执行所述目标智能合约对应的若干合约语句;若当前合约语句为需要与区块链交互的语句,则生成交互请求创建指令,并将所述交互请求创建指令发送至所述数据中转方,以指示在所述数据中转方中创建新交互请求;从所述数据中转方中获取所述新交互请求的应答结果,并根据所述应答结果执行所述当前合约语句,其中,所述新交互请求的应答结果是所述数据中转方在接收到所述交互请求创建指令之后,根据已存在根据所述交互请求创建指令创建的交互请求而直接将所述交互请求的应答结果作为新交互请求的应答结果返回给所述第二交易执行方的;若当前合约语句为无需与外部交互的普通执行语句,则通过所述新合约进程执行所述当前合约语句;若当前合约语句为用于返回结果的语句,则在得到所述新交易的验证执行结果之后,通过所述新合约进程执行所述当前合约语句将所述验证执行结果存入所述数据中转方。
在本申请的一些实施例中,基于前述方案,所述数据中转方为包括多个数据库的分布式数据库,所述分布式数据库中不同数据库之间自动同步数据。
在本申请的一些实施例中,基于前述方案,所述区块链从节点是通过专属的私有数据中转方与所述第二交易执行方交互的,所述私有数据中转方与所述数据中转方之间不进行数据同步。
在本申请的一些实施例中,基于前述方案,所述装置还包括请求验证单元;在将所述交易放入交易池中之前,所述请求验证单元用于:在所述区块链主节点接收到客户端发来的携带有交易的交易请求之后,对所述交易请求进行签名验证和权限验证,其中,将所述交易放入交易池中是在所述交易请求通过了所述签名验证和所述权限验证的情况下进行的。
在本申请的一些实施例中,基于前述方案,创建和保存单元1410配置为:在获取到待执行交易后,根据各待执行交易的优先级对各待执行交易进行排序;根据排序结果每次选择一个待执行交易,在数据中转方创建与所述新区块关联的一个新交易,并将选择的所述待执行交易的交易内容存入所述新交易中。
在本申请的一些实施例中,基于前述方案,所述装置还包括状态更新单元;在将验证结果发送至其他区块链节点之后,所述状态更新单元用于:若根据各所述区块链从节点对所述待验证区块的验证结果确定所述区块链网络对所述待验证区块的验证达成共识,则根据各新交易的执行结果对所述区块链主节点所维护的状态数据进行更新。
图15示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图15示出的电子设备的计算机系统1500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图15所示,计算机系统1500包括中央处理单元(Central Processing Unit,CPU)1501,其可以根据存储在只读存储器(Read-Only Memory,ROM)1502中的程序或者从存储部分1508加载到随机访问存储器(Random Access Memory,RAM)1503中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1503中,还存储有系统操作所需的各种程序和数据。CPU 1501、ROM 1502以及RAM 1503通过总线1504彼此相连。输入/输出(Input /Output,I/O)接口1505也连接至总线1504。
以下部件连接至I/O接口1505:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1507;包括硬盘等的存储部分1508;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至I/O接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。在该计算机程序被中央处理单元(CPU)1501执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
可以理解的是,在本申请的具体实施方式中,涉及到与区块链相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (13)

1.一种交易的执行方法,其特征在于,所述方法由区块链网络中的区块链主节点执行,所述方法包括:
在获取到待执行交易后,在数据中转方创建新交易,并将所述待执行交易的交易内容存入所述新交易中,以便所述区块链主节点对应的第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新交易之后,根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方;所述交易内容包括与所述目标智能合约相关的信息;其中,在所述第一交易执行方执行所述新交易的过程中,当执行到需要与区块链交互的合约语句时,所述第一交易执行方根据所述数据中转方中产生的新交互请求的应答结果执行所述合约语句;所述新交互请求是由所述第一交易执行方指示所述数据中转方创建的,所述新交互请求的应答结果是所述区块链主节点在监测到所述数据中转方创建的所述新交互请求之后,由所述区块链主节点通过处理所述新交互请求生成并存入所述数据中转方的;
当监测到所述数据中转方产生了所述新交易的执行结果,获取所述新交易的执行结果。
2.根据权利要求1所述的交易的执行方法,其特征在于,所述与所述目标智能合约相关的信息包括所述目标智能合约的名称、所述目标智能合约对应的方法名称和参数,所述第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新交易之后,通过如下方式根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方:
启动用于执行所述新交易的合约进程;
根据所述目标智能合约对应的方法名称确定所述目标智能合约对应的若干合约语句;
通过所述合约进程根据所述目标智能合约对应的参数逐一执行所述目标智能合约对应的若干合约语句;
若当前合约语句为需要与区块链交互的语句,则生成交互请求创建指令,并将所述交互请求创建指令发送至数据中转方,以指示在所述数据中转方中创建新交互请求;
当监测到所述数据中转方中产生了所述新交互请求的应答结果,根据所述应答结果执行所述当前合约语句;
若当前合约语句为无需与外部交互的普通执行语句,则通过所述合约进程执行所述当前合约语句;
若当前合约语句为用于返回结果的语句,则在得到所述新交易的执行结果之后,通过所述合约进程执行所述当前合约语句将所述新交易的执行结果存入所述数据中转方。
3.根据权利要求1所述的交易的执行方法,其特征在于,在数据中转方创建新交易之前,所述方法还包括:
在获取到交易后,将所述交易放入交易池中;
生成新区块创建指令,并将所述新区块创建指令发送至数据中转方,以指示在所述数据中转方中创建新区块;
从所述交易池中获取用于产生新区块的若干交易,作为待执行交易;
所述在获取到待执行交易后,在数据中转方创建新交易,并将所述待执行交易的交易内容存入所述新交易中,以便所述区块链主节点对应的第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新交易之后,根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方,包括:
在获取到待执行交易后,在数据中转方创建与所述新区块关联的新交易,并将所述待执行交易的交易内容存入所述新交易中,以便所述区块链主节点对应的第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新区块中的所述新交易之后,根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方;
在获取所述新交易的执行结果之后,所述方法还包括:
当获取到与所述新区块关联的所有新交易的执行结果,根据各新交易和各新交易的执行结果生成待验证区块,并将所述待验证区块发送至区块链网络中与所述区块链主节点对应的区块链从节点中,由所述区块链从节点基于由与所述区块链从节点对应的第二交易执行方产生的各新交易的验证执行结果对所述待验证区块进行验证,并将验证结果发送至其他区块链节点;
若根据各所述区块链从节点对所述待验证区块的验证结果确定所述区块链网络对所述待验证区块的验证达成共识,则将所述待验证区块添加至所述区块链网络所维护的区块链中。
4.根据权利要求3所述的交易的执行方法,其特征在于,所述第二交易执行方通过如下方式产生各新交易的验证执行结果:
从所述区块链从节点获取所述待验证区块中的新交易;
启动用于执行所述新交易的新合约进程;
根据所述新交易中目标智能合约对应的方法名称确定所述目标智能合约对应的若干合约语句;
通过所述新合约进程根据所述新交易中所述目标智能合约对应的参数逐一执行所述目标智能合约对应的若干合约语句;
若当前合约语句为需要与区块链交互的语句,则生成交互请求创建指令,并将所述交互请求创建指令发送至所述数据中转方,以指示在所述数据中转方中创建新交互请求;
从所述数据中转方中获取所述新交互请求的应答结果,并根据所述应答结果执行所述当前合约语句,其中,所述新交互请求的应答结果是所述数据中转方在接收到所述交互请求创建指令之后,根据已存在根据所述交互请求创建指令创建的交互请求而直接将所述交互请求的应答结果作为新交互请求的应答结果返回给所述第二交易执行方的;
若当前合约语句为无需与外部交互的普通执行语句,则通过所述新合约进程执行所述当前合约语句;
若当前合约语句为用于返回结果的语句,则在得到所述新交易的验证执行结果之后,通过所述新合约进程执行所述当前合约语句将所述验证执行结果存入所述数据中转方。
5.根据权利要求1-4任意一项所述的交易的执行方法,其特征在于,所述数据中转方为包括多个数据库的分布式数据库,所述分布式数据库中不同数据库之间自动同步数据。
6.根据权利要求3所述的交易的执行方法,其特征在于,所述区块链从节点是通过专属的私有数据中转方与所述第二交易执行方交互的,所述私有数据中转方与所述数据中转方之间不进行数据同步。
7.根据权利要求3所述的交易的执行方法,其特征在于,在将所述交易放入交易池中之前,所述方法还包括:
在所述区块链主节点接收到客户端发来的携带有交易的交易请求之后,对所述交易请求进行签名验证和权限验证,其中,将所述交易放入交易池中是在所述交易请求通过了所述签名验证和所述权限验证的情况下进行的。
8.根据权利要求3所述的交易的执行方法,其特征在于,所述在获取到待执行交易后,在数据中转方创建与所述新区块关联的新交易,并将所述待执行交易的交易内容存入所述新交易中,包括:
在获取到待执行交易后,根据各待执行交易的优先级对各待执行交易进行排序;
根据排序结果每次选择一个待执行交易,在数据中转方创建与所述新区块关联的一个新交易,并将选择的所述待执行交易的交易内容存入所述新交易中。
9.根据权利要求3所述的交易的执行方法,其特征在于,在将验证结果发送至其他区块链节点之后,所述方法还包括:
若根据各所述区块链从节点对所述待验证区块的验证结果确定所述区块链网络对所述待验证区块的验证达成共识,则根据各新交易的执行结果对所述区块链主节点所维护的状态数据进行更新。
10.一种交易的执行装置,其特征在于,所述装置应用于区块链网络中的区块链主节点,所述装置包括:
创建和保存单元,用于在获取到待执行交易后,在数据中转方创建新交易,并将所述待执行交易的交易内容存入所述新交易中,以便所述区块链主节点对应的第一交易执行方在监测到所述数据中转方中产生了与所述区块链主节点对应的所述新交易之后,根据所述新交易的交易内容调用目标智能合约执行所述新交易,并将所述新交易的执行结果存入所述数据中转方;所述交易内容包括与所述目标智能合约相关的信息;其中,在所述第一交易执行方执行所述新交易的过程中,当执行到需要与区块链交互的合约语句时,所述第一交易执行方根据所述数据中转方中产生的新交互请求的应答结果执行所述合约语句;所述新交互请求是由所述第一交易执行方指示所述数据中转方创建的,所述新交互请求的应答结果是所述区块链主节点在监测到所述数据中转方创建的所述新交互请求之后,由所述区块链主节点通过处理所述新交互请求生成并存入所述数据中转方的;
获取单元,用于当监测到所述数据中转方产生了所述新交易的执行结果,获取所述新交易的执行结果。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的交易的执行方法。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至9中任一项所述的交易的执行方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如权利要求1至9中任一项所述的交易的执行方法。
CN202410078987.2A 2024-01-19 2024-01-19 交易的执行方法、装置、计算机可读介质及电子设备 Active CN117593129B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410078987.2A CN117593129B (zh) 2024-01-19 2024-01-19 交易的执行方法、装置、计算机可读介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410078987.2A CN117593129B (zh) 2024-01-19 2024-01-19 交易的执行方法、装置、计算机可读介质及电子设备

Publications (2)

Publication Number Publication Date
CN117593129A CN117593129A (zh) 2024-02-23
CN117593129B true CN117593129B (zh) 2024-05-03

Family

ID=89920607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410078987.2A Active CN117593129B (zh) 2024-01-19 2024-01-19 交易的执行方法、装置、计算机可读介质及电子设备

Country Status (1)

Country Link
CN (1) CN117593129B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536445A (zh) * 2018-03-28 2018-09-14 成都链安科技有限公司 面向区块链智能合约的高度自动化形式化验证系统及方法
CN112527466A (zh) * 2020-12-22 2021-03-19 上海万向区块链股份公司 基于EVM与Wasm虚拟机的多语言智能合约兼容方法及系统
CN113688186A (zh) * 2021-08-25 2021-11-23 工银科技有限公司 智能合约执行方法、引擎及区块链节点
CN114116134A (zh) * 2021-12-01 2022-03-01 上海研晓实业发展有限公司 智能合约部署和执行方法、设备及存储介质
CN114140250A (zh) * 2022-01-27 2022-03-04 深圳江行联加智能科技有限公司 基于区块链的电力交易方法、装置、电子设备及介质
CN116680209A (zh) * 2023-06-19 2023-09-01 电子科技大学 基于wasm的多智能合约实例管理方法
CN116934330A (zh) * 2023-07-24 2023-10-24 蚂蚁区块链科技(上海)有限公司 一种调用智能合约的方法及执行方法、计算机设备及存储介质
CN117251249A (zh) * 2019-12-31 2023-12-19 杭州趣链科技有限公司 一种基于多虚拟机区块链平台跨虚拟机调用方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782338B (zh) * 2018-12-12 2024-05-03 创新先进技术有限公司 一种基于区块链智能合约的数据处理方法及系统
US20200201838A1 (en) * 2018-12-20 2020-06-25 Sri International Middleware to automatically verify smart contracts on blockchains

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536445A (zh) * 2018-03-28 2018-09-14 成都链安科技有限公司 面向区块链智能合约的高度自动化形式化验证系统及方法
CN117251249A (zh) * 2019-12-31 2023-12-19 杭州趣链科技有限公司 一种基于多虚拟机区块链平台跨虚拟机调用方法
CN112527466A (zh) * 2020-12-22 2021-03-19 上海万向区块链股份公司 基于EVM与Wasm虚拟机的多语言智能合约兼容方法及系统
CN113688186A (zh) * 2021-08-25 2021-11-23 工银科技有限公司 智能合约执行方法、引擎及区块链节点
CN114116134A (zh) * 2021-12-01 2022-03-01 上海研晓实业发展有限公司 智能合约部署和执行方法、设备及存储介质
CN114140250A (zh) * 2022-01-27 2022-03-04 深圳江行联加智能科技有限公司 基于区块链的电力交易方法、装置、电子设备及介质
CN116680209A (zh) * 2023-06-19 2023-09-01 电子科技大学 基于wasm的多智能合约实例管理方法
CN116934330A (zh) * 2023-07-24 2023-10-24 蚂蚁区块链科技(上海)有限公司 一种调用智能合约的方法及执行方法、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Trust-Based Smart Contract for Automated Agent to Agent Communication;Halima Mhamdi etal;《Computational Intelligence and Neuroscience》;20220917;第 1-11页 *

Also Published As

Publication number Publication date
CN117593129A (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
JP7222036B2 (ja) モデルトレーニングシステムおよび方法および記憶媒体
CN109191124B (zh) 区块链网络、部署方法及存储介质
CN113691597B (zh) 区块链合约部署方法、装置、设备以及存储介质
JP2022000757A5 (zh)
US8868786B1 (en) Apparatus, systems and methods for transformation services
CN110599095B (zh) 基于区块链网络的危废处理方法及区块链网络的节点
CN111861482B (zh) 一种区块链对账方法和系统
CN110765484B (zh) 一种征信数据处理方法及电子设备
CN111543031A (zh) 用于控制和/或监控装置的方法和控制系统
US20130086630A1 (en) Dynamic identity switching
US10742415B2 (en) Method and apparatus for inter-blockchain transmission of authenticable message
CN113271311B (zh) 一种跨链网络中的数字身份管理方法及系统
CN111492355B (zh) 用于控制和/或监控装置的方法和控制系统
US20230052935A1 (en) Asynchronous accounting method and apparatus for blockchain, medium and electronic device
CN112035863B (zh) 一种基于智能合约方式的电子合同取证方法及系统
CN111124591A (zh) 一种镜像传输方法、装置、电子设备及存储介质
CN117593129B (zh) 交易的执行方法、装置、计算机可读介质及电子设备
CN114782045B (zh) 跨链非事务性写入方法和装置、存储介质、电子设备
CN116975901A (zh) 基于区块链的身份验证方法、装置、设备、介质及产品
CN112926981A (zh) 用于区块链的交易信息处理方法、装置、介质及电子设备
CN116186786A (zh) 基于区块链的业务处理方法、装置、电子设备和可读介质
CN113590711A (zh) 一种高弹性可扩展的多链数据分级共享存储系统及方法
Reed et al. BULWARK: A Framework to Store IoT Data in User Accounts
CN117574320B (zh) 数据处理方法、装置、计算机可读介质及电子设备
CN115001707B (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