CN116805947A - 区块链数据处理方法、装置、设备及计算机可读存储介质 - Google Patents
区块链数据处理方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116805947A CN116805947A CN202311050909.3A CN202311050909A CN116805947A CN 116805947 A CN116805947 A CN 116805947A CN 202311050909 A CN202311050909 A CN 202311050909A CN 116805947 A CN116805947 A CN 116805947A
- Authority
- CN
- China
- Prior art keywords
- contract
- virtual machine
- operation information
- shared virtual
- threads
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 116
- 238000012545 processing Methods 0.000 claims abstract description 102
- 230000004044 response Effects 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 78
- 230000008569 process Effects 0.000 claims description 74
- 230000036961 partial effect Effects 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 26
- 238000004590 computer program Methods 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006378 damage Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000012864 cross contamination Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1091—Interfacing with client-server systems or between P2P systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请的实施例公开了一种区块链数据处理方法、装置、设备及计算机可读存储介质。该方法包括:创建智能合约对应的合约虚拟机以及共享虚拟机;当合约虚拟机接收到针对智能合约的调用请求时,向共享虚拟机发送合约操作信息;在共享虚拟机中响应于合约操作信息,对智能合约的合约代码执行运行处理,得到合约运行结果,并将合约运行结果返回至合约虚拟机。通过该方法,可以提高区块链数据处理的效率。
Description
技术领域
本申请涉及区块链技术领域,具体涉及一种区块链数据处理方法、装置、设备和计算机可读存储介质。
背景技术
智能合约是一种运行在区块链上的计算机程序,它可以自动执行合同条款并验证其执行结果,从而实现去中心化的信任和执行。
相关技术中,在每个区块链节点内,每创建一个智能合约都需要相应创建对应的虚拟机用来存储该智能合约的相关信息,例如合约地址、合约代码和一些其它元数据等,并且智能合约的具体执行也是通过虚拟机来完成。虚拟机在执行合约代码时需要消耗区块链节点较多的计算和存储资源,当区块链节点创建的智能合约过多时,需要相应创建大量的虚拟机,占用了大量的节点资源,若这些虚拟机同时执行智能合约,容易导致区块链节点的处理压力过大引发卡顿甚至宕机问题,若区块链节点无法及时执行完大量的智能合约,还会造成区块链网络拥堵,影响区块链网络的性能。
因此,如何提高区块链节点内的智能合约执行的效率是亟待解决的问题。
发明内容
为解决上述技术问题,本申请的实施例提供了一种区块链数据处理方法、装置、设备以及计算机可读存储介质,可以提高区块链数据处理的效率。
其中,本申请所采用的技术方案为:
在本申请的一个实施例中,提供了一种区块链数据处理方法,包括:
创建智能合约对应的合约虚拟机以及共享虚拟机;
当所述合约虚拟机接收到针对所述智能合约的调用请求时,向所述共享虚拟机发送合约操作信息;
在所述共享虚拟机中响应于所述合约操作信息,对所述智能合约的合约代码执行运行处理,得到合约运行结果,并将所述合约运行结果返回至所述合约虚拟机。
在本申请的一个实施例中,提供了一种区块链数据处理设备,包括:
创建单元,用于创建智能合约对应的合约虚拟机;
所述创建单元,还用于若未检测到专用于执行所述智能合约的共享虚拟机,则进行所述共享虚拟机的创建;
收发单元,用于若检测到所述共享虚拟机,则当所述合约虚拟机接收到针对所述智能合约的调用请求时,向所述共享虚拟机发送合约操作信息;
处理单元,用于在所述共享虚拟机中响应于所述合约操作信息,对所述智能合约的合约代码执行运行处理,得到合约运行结果,并将所述合约运行结果返回至所述合约虚拟机。
在本申请的一个实施例中,基于前述方案,所述收发单元,还用于若检测到专用于执行所述智能合约的共享虚拟机,则当所述合约虚拟机接收到针对所述智能合约的调用请求时,向所述共享虚拟机发送合约操作信息;所述处理单元,还用于在所述共享虚拟机中响应于所述合约操作信息,对所述智能合约的合约代码执行运行处理,得到合约运行结果,并将所述合约运行结果返回至所述合约虚拟机。
在本申请的一个实施例中,基于前述方案,所述收发单元,还用于在所述共享虚拟机中并发接收多个合约虚拟机分别发送的合约操作信息;基于接收到的多个合约操作信息确定同一合约代码存储地址,并基于所述合约代码存储地址获取对应的合约代码;基于所述多个合约操作信息并发运行所述合约代码,得到多个合约运行结果,并向所述多个合约虚拟机返回相应的合约运行结果。
在本申请的一个实施例中,基于前述方案,所述处理单元,还用于基于所述合约虚拟机的数量和预设线程数量,在所述共享虚拟机的运行进程中对用于运行所述合约代码的多个线程进行协程的分配;利用所述运行进程中包含的多个线程,基于多个合约操作信息对所述合约代码进行并发运行处理,得到各个合约操作信息所分别对应的合约运行结果。
在本申请的一个实施例中,基于前述方案,所述处理单元,还用于基于所述多个合约虚拟机并发合约操作信息的数量确定出并发量等级;处理单元,用于基于所述并发量等级,在所述运行进程中对所述预设线程数量的线程进行协程的分配。
在本申请的一个实施例中,基于前述方案,所述处理单元,还用于若所述并发量等级为第一预设并发量等级,则直接分配所述预设线程数量的线程用于所述合约代码的并发运行处理。
在本申请的一个实施例中,基于前述方案,所述处理单元,还用于若所述并发量等级表征为第二预设并发量等级,则对所述预设线程数量的线程中的部分线程分别分配第一数量的协程;其中,所述第二预设并发量等级所表征的并发量大于所述第一预设并发量等级所表征的并发量。
在本申请的一个实施例中,基于前述方案,所述处理单元,还用于若所述并发量等级表征为第三预设并发量等级,则基于所述合约虚拟机的数量和所述预设线程数量确定在各个线程中配置的协程对应的第二数量;在各个线程中分别分配所述第二数量的协程。
在本申请的一个实施例中,基于前述方案,所述处理单元,还用于在各个线程中基于合约操作信息包含的已授权功能标识,从所述合约代码包含的多个合约功能中确定出所述已授权功能标识所对应的已授权功能;基于所述已授权功能对所述合约代码进行更新处理,得到更新后的合约代码;将所述合约操作信息输入到所述更新后的合约代码中进行运行处理,得到相应的合约运行结果。
在本申请的一个实施例中,基于前述方案,所述处理单元,还用于在所述合约虚拟机中基于所述调用请求生成所述合约操作信息;所述收发单元,还用于基于所述合约虚拟机中保存的所述共享虚拟机地址向所述共享虚拟机发送所述合约操作信息。
在本申请的一个实施例中,基于前述方案,所述处理单元,还用于检测发起所述调用请求的客户端所属的客户端类型;基于所述调用请求中包含的申请合约功能和所述客户端类型确定所述客户端具备的合约功能使用权限;基于所述客户端具备的合约功能使用权限生成相应的合约操作信息。
在本申请的一个实施例中,基于前述方案,获取单元,用于获取访问控制列表,所述访问控制列表中包含不同的客户端类型所具备使用权限的合约功能;所述处理单元,还用于基于所述访问控制列表和所述调用请求中包含的申请合约功能进行匹配,得到所述客户端类型所具备使用权限的合约功能。
在本申请的一个实施例中,还提供了一种区块链节点,所述节点配置有合约虚拟机和共享虚拟机,其中:
所述合约虚拟机接收客户端发送的调用请求,基于所述调用请求生成合约操作信息,并向共享虚拟机发送所述合约操作信息;
所述共享虚拟机并发接收多个合约虚拟机分别发送的合约操作信息,基于接收到的多个合约操作信息确定同一合约代码存储地址,并基于所述合约代码存储地址获取对应的合约代码;
所述共享虚拟机基于所述多个合约操作信息并发运行所述合约代码,相应得到多个合约运行结果,并向所述多个合约虚拟机返回相应的合约运行结果;
所述合约虚拟机接收所述共享虚拟机相应返回的合约运行结果,并对所述合约运行结果执行上链处理。
在本申请的一个实施例中,提供了一种区块链数据处理设备,包括处理器及存储器,存储器上存储有计算机可读指令,计算机可读指令被处理器执行时实现如上的区块链数据处理方法。
在本申请的一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当计算机可读指令被计算机的处理器执行时,使计算机执行如上的区块链数据处理方法。
在本申请的一个实施例中,提供了一种计算机程序产品,包括计算机可读指令,计算机可读指令被处理器执行时实现如上的区块链数据处理方法。
在上述技术方案中,区块链节点可以对智能合约创建合约虚拟机和共享虚拟机,合约虚拟机将合约操作信息发送给共享虚拟机后,可以由共享虚拟机通过合约代码来处理该合约操作信息,这样,合约虚拟机就无需运行合约代码,而是由共享虚拟机基于合约操作信息运行合约代码,减少了区块链节点的合约虚拟机的负载,提高了区块链合约数据的处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一示例性实施例示出的一种区块链网络的结构示意图。
图2是本申请涉及的一种实施环境的示意图。
图3是根据一示例性实施例示出的一种区块链数据处理方法的流程图。
图4是一示例性的对智能合约创建虚拟机的过程示意图。
图5是根据另一示例性实施例示出的一种区块链数据处理方法的流程图。
图6是根据另一示例性实施例示出的一种区块链数据处理方法的流程图。
图7是一示例性的线程中协程的分配情况示意图。
图8是另一示例性的线程中协程的分配情况示意图。
图9是另一示例性的线程中协程的分配情况示意图。
图10是另一示例性的线程中协程的分配情况示意图。
图11是根据另一示例性实施例示出的一种区块链数据处理方法的流程图。
图12是一示例性的访问控制列表的示意图。
图13是根据另一示例性实施例示出的一种区块链数据处理方法的流程图。
图14是根据一示例性实施例示出的一种区块链数据处理装置的框图。
图15是根据一示例性实施例示出的一种区块链数据处理设备的计算机结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相同的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相同的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以整合或部分整合,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是,在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
需要说明的是,在本申请的具体实施方式中,涉及到用户相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
需要说明的是,本申请实施例中所涉及到的公式可以灵活调整,例如增加相应参数或减少相应参数等。
在介绍本申请实施例的技术方案之前,先在这里介绍本申请实施例涉及的技术名词。
智能合约是一种在区块链上运行的计算机程序,其特点是可以自动执行合同条款并验证其执行结果,从而实现去中心化的信任和执行。智能合约通常被用于编写和执行一系列可以完全自动化的操作,如货币交易、数字身份验证、资产管理、投票等。智能合约的工作原理基于区块链技术,它们可以由多个参与者共同控制,而不需要单独的管理机构或中间人。这种去中心化的特性使得智能合约成为一种强大的解决方案,能够在无需信任第三方的情况下进行交易和执行业务逻辑。通过智能合约,各方可以在区块链网络上达成一致,不需要依赖中介机构来验证和执行合同。智能合约的代码逻辑和执行结果都会被记录在区块链上,保证了交易的透明性和不可篡改性。
虚拟机(Virtual Machine,VM)是一种在计算机上模拟运行另一个完整的操作系统的软件或硬件实体。它允许在一个主机操作系统上创建并运行多个虚拟的独立的操作系统实例,每个实例被称为一个虚拟机。在本申请实施例中,节点每创建了一个智能合约,就会创建一个对应的虚拟机以存储与该智能合约相关的信息,如地址、合约代码的存储地址和其他一些元数据等等。
在本申请的实施例中,虚拟机具体包括合约虚拟机和共享虚拟机,其中,合约虚拟机用于接收和处理客户端发送的调用请求。当客户端发送调用请求时,合约虚拟机可以基于调用请求生成对应的合约操作信息。共享虚拟机用于接收合约虚拟机发送的合约操作信息,可以集中对多个合约虚拟机发送的多个合约操作信息进行并发处理。
其中,并发是指在系统中同时处理多个任务或操作的能力,或者同时传输数据的能力。在计算机领域,特别是在网络和分布式系统中,并发是指多个任务或请求可以在同一时间段内同时执行或处理。
进程(Process)是计算机中执行的程序实例。每个进程都有自己独立的地址空间、数据栈、文件描述符等资源,可以在操作系统中单独运行。不同进程之间是相互独立的,它们通过进程间通信(IPC)机制来进行数据交换和通信。进程之间的切换开销较大,因为它们需要独立的资源。
线程(Thread)是进程中的一个执行单元,一个进程可以包含多个线程。所有线程共享同一个地址空间和其他资源,它们可以共享数据和文件,相比于进程,线程之间的切换开销较小。线程使得一个进程可以同时执行多个任务,提高了程序的并发性和执行效率。但是,多线程编程需要注意线程同步和互斥,以避免数据竞争和死锁等问题。
协程(Coroutine)是一种轻量级的并发编程方式,类似于线程,但是协程是由程序员在代码中显式地定义和控制的,而非由操作系统调度。协程可以看作是一种特殊的线程,它允许在一个线程内部执行多个子任务,这些子任务可以相互之间进行切换。协程的切换开销非常小,因为切换由程序员自己控制,不需要操作系统的干预。协程适用于需要频繁切换、共享数据和状态的场景,比如异步编程、事件处理等。
访问控制列表(Access Control List,ACL)是计算机系统中用于管理资源访问权限的一种机制。它是一种表格或数据结构,用于规定在特定的对象(如文件、文件夹、网络资源等)上,哪些用户或用户组有权访问、读取、修改或执行该对象。
相关技术中,在每个区块链节点内,每创建一个智能合约都需要相应创建对应的虚拟机用来存储该智能合约的相关信息,例如合约地址、合约代码和一些其它元数据等,并且智能合约的具体执行也是通过虚拟机来完成。虚拟机在执行合约代码时需要消耗区块链节点较多的计算和存储资源,当区块链节点创建的智能合约过多时,需要相应创建大量的虚拟机,占用了大量的节点资源,若这些虚拟机同时执行智能合约,容易导致区块链节点的处理压力过大引发卡顿甚至宕机问题,若区块链节点无法及时执行完大量的智能合约,还会造成区块链网络拥堵,影响区块链网络的性能。
为解决如上技术问题,本申请的实施例分别提出了一种区块链数据处理方法、一种区块链数据处理装置、一种区块链数据处理设备、一种计算机可读存储介质以及一种计算机程序产品。在这些实施例中,区块链节点在创建智能合约时,会对每个智能合约创建一个合约虚拟机,并且,还会对使用同一个合约代码的智能合约创建一个共享虚拟机,这样就可以通过该共享虚拟机处理该合约代码所对应的合约虚拟机所发送的合约任务。具体地,每个合约虚拟机都可以向共享虚拟机发送一个合约操作信息,以使共享虚拟机执行对应的合约任务。而共享虚拟机在基于多个所接收的合约操作信息运行合约代码时,只需要加载一次合约代码,就可以分别对不同的合约操作信息进行处理,而无需在多个合约虚拟机中重复加载该合约代码并处理合约任务。这样有效地减轻了节点的负担,提高了区块链节点内的智能合约执行的效率。
首先说明的是,本申请的实施例涉及区块链(Blockchain)技术。区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。区块链是指一套去中心化、具备分布式存储特点的基础架构,具体是一种按照时间顺序将数据区块用类似链表的方式组成的数据结构,能够安全存储有先后关系的、能在系统内进行验证的数据,并以密码学方式保证数据不可篡改和不可伪造。简单的讲,区块链就是去中心化的分布式账本,每一条链相当于一个独立的账本。
图1是一示例性实施例示出的一种区块链网络的结构示意图。图1所示的区块链网络100可以包含节点设备10a、节点设备10b、节点设备10c、节点设备10d。其中,节点设备10a、节点设备10b、节点设备10c、节点设备10d均为图1所示的区块链网络100中的区块链节点(简称为节点),这些节点可以为接入该区块链网络100中的任意形式的计算设备,如服务器、用户终端等。图1所示的节点设备10a、节点设备10b、节点设备10c、节点设备10d之间也可以通过网络通信的形式连接形成区块链网络100。
图1所示的区块链网络100的架构中所涉及的区块链的类型具体可以包括:公有链(Public Blockchain)、私有链(Private Blockchain)和联盟链(ConsortiumBlockchain),不同的区块链应用场景下所采用的区块链的类型可能不同,在此不作限制。其中,公有链是指可以对外公开,任何人可以加入并访问的区块链;公有链上的区块可以被任何人查看,任何人也可以在公有链上发起交易,还可以随时参与公有链的共识过程。私有链是指可以在私有组织内部使用,在区块链上的读写权限、参与记账权限可以按照私有组织的规则来制定;通常用于企业内部的数据管理、审计等。联盟链是指参与联盟链的联盟成员在区块链上的读写权限、参与记账权可以按照联盟规则来制定;一般用于机构间的交易、结算或清算等场景。
对于区块链网络100中的每个节点,均具有与其对应的节点标识,而且区块链网络100中的每个节点均可以存储有区块链网络100中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链网络100中的其他节点。
区块链网络100中的每个节点均存储一条相同的区块链。区块链由多个区块组成,组成区块链的每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链,以保证区块中输入信息的安全性。另外区块中还可以包括有区块生成时的时间戳、版本号、难度值等信息,在此不进行列举。
请参阅图2,图2是本申请涉及的一种实施环境的示意图。
图2所示的实施环境包括客户端设备210和区块链节点220。
其中,区块链节点220可以是全节点、轻节点和合约节点等节点中的任意一种,本申请实施例不做限定。
客户端设备210中包含多个客户端,例如客户端1、客户端2、……、客户端n、客户端n+1等。每个客户端可以代表不同的用户、设备或系统。例如,客户端1可能代表用户A,客户端2可能代表用户B,以此类推。
区块链节点220包含了多个合约虚拟机,例如合约虚拟机1、合约虚拟机2、……、合约虚拟机n、合约虚拟机n+1等。每个合约虚拟机专门负责处理来自特定客户端的调用请求。例如,合约虚拟机1负责处理来自客户端1的合约请求,合约虚拟机2负责处理来自客户端2的合约请求,以此类推。
需要说明的是,区块链节点220中包含的合约虚拟机的数量可以与客户端设备210中包含的客户端的数量不相同。合约虚拟机是区块链节点220所预先创建的。在区块链节点220创建合约虚拟机时,每个合约虚拟机都可以获知所对应的智能合约类型。这样可以根据智能合约的类型和功能来配置合约虚拟机,以满足不同合约的需求,优化资源的利用,使得每个合约虚拟机都可以获知到其对应的合约代码的存储地址。
区块链节点220接收到一个客户端发送过来的调用请求后,可以从已经预先创建好的合约虚拟机中随机分配一个合约虚拟机来处理该调用请求。这样做的好处是节省了合约虚拟机创建的时间和资源,并且可以更快速地处理调用请求。
每个合约虚拟机可以对所接收到的调用请求进行处理,例如可以检测对应的客户端的客户端类型,以及该客户端类型是否具备该调用请求所申请合约功能的使用权限等,进而可以生成该调用请求所对应的合约操作信息。
在高并发的情况下,区块链节点220可以预先创建多个合约虚拟机,并将它们置于一个池中。当接收到客户端发送的调用请求时,区块链节点220会从合约虚拟机池中选择一个空闲的合约虚拟机来处理该调用请求。如果所有合约虚拟机都被占用了,那么该客户端的调用请求就需要等待,形成一个队列,直到有空闲的合约虚拟机可以处理该调用请求。因此,可以实现一个排队机制,确保每个调用请求都能够得到处理,保障区块链节点220的公平性和服务质量。
可选地,区块链节点220可能会根据实际需要动态创建合约虚拟机来处理调用请求。这种情况下,客户端发送调用请求后,区块链节点220会根据该调用请求的内容和当前区块链节点220的负载情况来决定是否创建一个新的合约虚拟机。如果节点上已有的合约虚拟机资源不足,或者没有合适的合约虚拟机可用来处理该合约请求,那么区块链节点220可能会创建一个新的合约虚拟机,并将该调用请求分派给新创建的合约虚拟机处理。
区块链节点中可包括多个共享虚拟机,例如共享虚拟机1和共享虚拟机2等。每个共享虚拟机可以用于运行多个合约虚拟机共同对应的同一合约代码。不同共享虚拟机分别运行不同的合约虚拟机共同对应的合约代码,例如共享虚拟机1可以运行合约虚拟机1至合约虚拟机50共同对应的合约代码,共享虚拟机2可以运行合约虚拟机51至合约虚拟机100共同对应的合约代码。可以理解的是,每个共享虚拟机对应一个合约代码,例如共享虚拟机1使用合约代码1,共享虚拟机2使用合约代码2,以此类推。
本申请实施例中的客户端可以是终端设备,该终端设备可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)、车载设备、飞行器、可穿戴设备(诸如智能手表、智能手环、计步器等的智能设备)、虚拟现实设备(例如VR(Virtual Reality,虚拟现实)设备、AR(Augmented Reality,增强现实)设备)等等。
本申请实施例中的区块链节点220可以部署在服务器中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
请参阅图3,图3是根据一示例性实施例示出的一种区块链数据处理方法的流程图。该方法可以适用于图2所示的实施环境,并且由区块链节点具体执行。当然该方法也可以适用于其它的实施环境,在此并不对该方法的执行主体进行限制。
以下将以区块链节点作为示例性的执行主体对该区块链数据处理方法进行详细阐述。如图3所示,在一示例性实施例中,该方法至少包括如下步骤:
S310,创建智能合约对应的合约虚拟机以及共享虚拟机。
区块链节点在可以对每个智能合约创建对应的合约虚拟机,该合约虚拟机用于存储该智能合约相关的数据。
具体地,如图4所示为一示例性的对智能合约创建虚拟机的过程示意图。如图4所示,区块链节点创建智能合约时,会在内存中同时创建两个对应的虚拟机。第一个虚拟机是合约虚拟机,用于存储智能合约的计算资源和运行容器,它将为特定的智能合约提供运行环境。例如,当要创建一个名为"contract1"的erc20合约时,区块链节点会创建一个专门用于该合约的合约虚拟机,该合约虚拟机将负责保存合约地址的存储地址、合约状态以及其他一些元数据,以便在需要时进行调用和处理。
在创建合约虚拟机的同时,区块链节点220还会创建一个用于共享虚拟机(例如虚拟机_invoke_erc20)。其中,ERC20(Ethereum Request for Comments 20)是以太坊请求提案,ERC是以太坊社区提出的一系列技术标准和提案,用于改进以太坊网络和智能合约的功能、安全性和互操作性。这个共享虚拟机将专门负责与合约虚拟机进行交互,执行对合约代码的调用操作。它充当了合约虚拟机的调用代理,负责处理来自各个合约虚拟机的合约操作信息。共享虚拟机的创建标识了一个特定合约的调用接口,使得客户端可以通过多个合约虚拟机调用该共享虚拟机实现与智能合约的交互。
本申请实施例中,若检测到专用于执行该智能合约的共享虚拟机,说明此时区块链节点中已存在该智能合约的合约虚拟机对应的共享虚拟机,因此无需再创建对应的共享虚拟机。
本申请实施例中,一个合约代码可以与一个共享虚拟机相对应,而一个共享虚拟机可以为多个合约虚拟机提供合约代码运行服务,其中,该多个合约虚拟机均可以调用该共享虚拟机以运行该合约代码。
在合约虚拟机的创建过程中,区块链节点会根据每个合约虚拟机所服务的智能合约的类型,为每个合约虚拟机分配各自绑定的共享虚拟机的标识。这样,每个合约虚拟机就可以将所生成的合约操作信息发送给共享虚拟机,使得共享虚拟机可以集中对接收到的多个合约操作信息进行处理,相应得到合约运行结果。
S320,当合约虚拟机接收到针对智能合约的调用请求时,向共享虚拟机发送合约操作信息。
客户端设备中可能会在短时间内有大量的客户端发送调用请求给区块链节点,因此,区块链节点可以使用多个合约虚拟机来接收多个客户端所分别发送调用请求。
每个合约虚拟机可以基于接收到的调用请求生成对应的合约操作信息,并发送给共享虚拟机。其中,多个合约虚拟机可以在短时间内分别发送合约操作信息至共享虚拟机,因此,会出现高并发的数据传输。共享虚拟机就可以相应地并发接收多个合约虚拟机所发送的合约操作信息。
S330,在共享虚拟机中响应于合约操作信息,对智能合约的合约代码执行运行处理,得到合约运行结果,并将合约运行结果返回至合约虚拟机。
区块链节点可以为每个共享虚拟机建立一个共享虚拟机的运行进程,以通过共享虚拟机的运行进程来基于多个合约操作信息并发运行合约代码,这样就可以得到每个合约操作信息对应的合约运行结果。共享虚拟机可以相应地将每个合约虚拟机对应的合约运行结果返回给每个合约虚拟机。
通过该方法,区块链节点可以创建智能合约的合约虚拟机和共享虚拟机,合约虚拟机可以将合约操作信息发送给共享虚拟机,共享虚拟机可以通过合约代码来处理该合约操作信息,这样,合约虚拟机就无需运行合约代码,而是由共享虚拟机基于合约操作信息运行合约代码,减少了区块链节点的合约虚拟机的负载,提高了区块链合约数据的处理效率。
在本申请的一个实施例中,提供了另一种区块链数据处理方法,该区块链数据处理方法可以由区块链节点来执行。如图5所示,该区块链数据处理方法可以包括S310至S320、S510至S530。也即,S510至S530是图3所示的S330的具体实现方法。
下面对S510至S530进行描述:
S510,在共享虚拟机中并发接收多个合约虚拟机分别发送的合约操作信息。
每个合约虚拟机可以基于接收到的调用请求生成对应的合约操作信息,并发送给共享虚拟机。其中,多个合约虚拟机可以在短时间内分别发送合约操作信息至共享虚拟机,因此,会出现高并发的数据传输。共享虚拟机就可以相应地并发接收多个合约虚拟机所发送的合约操作信息。
其中,该多个合约虚拟机都与该共享虚拟机相关联,且其中的每个合约虚拟机中都保存有同一合约代码的存储地址。因此,该多个合约虚拟机都可以将各自的合约操作信息发送给共享虚拟机。
S520,基于接收到的多个合约操作信息确定同一合约代码存储地址,并基于合约代码存储地址获取对应的合约代码。
在共享虚拟机接收到多个合约操作信息后,需要基于这些信息来确定同一合约代码的存储地址。共享虚拟机根据这些地址获取对应的合约代码。这样,共享虚拟机就能够准备好合约代码以进行并发运行。
可选地,共享虚拟机在接收到合约操作信息时,可以先验证该合约操作信息所指定的合约代码是否在系统中存在,并且是否与共享虚拟机所负责的合约代码相匹配。如果不匹配,则可以拒绝处理该操作信息。
可选地,共享虚拟机在接收到合约操作信息后,可以对其中的数据进行验证,确保数据的完整性和合法性。如果数据验证失败,可以拒绝处理该操作信息。
S530,基于多个合约操作信息并发运行合约代码,相应得到多个合约运行结果,并向多个合约虚拟机返回相应的合约运行结果。
区块链节点可以为每个共享虚拟机建立一个共享虚拟机的运行进程,以通过共享虚拟机的运行进程来基于多个合约操作信息并发运行合约代码。
具体地,区块链节点可以预先设定并发量等级,该并发量等级可以是根据并发接收到的合约操作信息的数量所确定的,反映了当前多个合约虚拟机发送合约操作信息的数量等级。
区块链节点可以根据当前的并发量等级动态对该共享虚拟机的运行进程中所包含的线程进行协程的分配。其中,该共享虚拟机中包含的线程的数量可以是预设线程数量,具体的数量可以由本领域技术人员设计,也可以是区块链节点根据当前的并发场景所动态确定出来的。
可选地,共享虚拟机可以将任务分配到不同的线程中执行,以便实现并发处理。可以通过限制线程数目(即使用预设线程数量)和使用线程池等技术,可以控制共享虚拟机可用的CPU时间、内存使用情况以及其他系统资源的占用。
每个共享虚拟机的运行进程之间是相互隔离的,一个共享虚拟机的运行进程只运行一个共享虚拟机,并且通过区块链节点中的操作系统提供的进程管理功能来实现资源的隔离和分配。也就是说,每个共享虚拟机的运行进程都有自己的内存空间和系统资源,可以有效避免不同共享虚拟机之间的资源争用和干扰。
在每个共享虚拟机的运行进程中,根据当前的并发量等级,区块链节点可以动态分配合适数量的协程给各个线程。其中,协程是一种轻量级的并发机制,允许在单个线程中实现多个执行流,并通过合理的调度来充分利用计算资源。通过使用协程,可以避免线程切换的开销,提高区块链数据处理的效率。共享虚拟机可以使用协程来执行一些轻量级任务,例如I/O操作、事件处理等。协程可以在单个线程中运行,从而减少了线程的创建和销毁开销,同时也可以避免线程上下文切换带来的性能损失。
在并发量等级较低的情况下,可以将较少的协程分配给各个线程,以充分利用线程的资源,避免不必要的协程创建和切换。而在并发量等级较高的情况下,可以动态增加协程的数量,以满足更多的并发需求,提高系统的响应能力。
通过动态调整协程数量,共享虚拟机的运行进程可以根据不同的并发场景灵活地适应系统的负载变化。这样,无论是在高并发时期还是低并发时期,都可以有效地利用计算资源,保证区块链数据处理的高效性。
因此,建立共享虚拟机的运行进程,并根据并发量等级动态调整每个线程中的协程数量,可以有效地管理并发场景下的资源分配,提高合约代码的并发运行效率。
在共享虚拟机的运行进程中,每个线程或协程可以被分配到处理一个合约操作信息的任务。当一个合约操作信息被分配给某个线程或协程时,该线程或协程会读取该合约操作信息中的已授权功能标识。该已授权功能标识代表了该合约操作信息具备了合约代码中哪些合约功能的使用权限。基于该标识,线程或协程会从合约代码中包含的多个合约功能中,确定对应的已授权功能,也就是合约操作信息中所需要调用的功能。
在确定了已授权功能后,线程或协程会对合约代码进行更新。具体地更新方法可以是对合约代码中已授权功能所对应的函数或变量进行使用开通,这样合约代码就包含了该合约操作信息要调用的合约功能。
接下来,该线程或协程就可以将合约操作信息输入到更新后的合约代码中,并运行合约代码来处理该合约操作信息。最终,该线程或协程会得到该合约操作信息对应的合约运行结果。
在共享虚拟机的运行进程并发运行合约代码后,会得到每个合约操作信息对应的合约运行结果。随后,共享虚拟机会将这些合约运行结果分别返回给相应的合约虚拟机。
通过该方法,一方面,通过共享虚拟机的并发处理,区块链节点能够同时处理多个调用请求,提高了并发处理能力。同时,共享虚拟机的结果返回机制确保了合约执行结果能够及时返回给相应的合约虚拟机,从而保证了区块链数据处理的实时性。
另一方面,共享虚拟机基于多个合约操作信息运行合约代码时,只需要加载一个合约代码,并分别将多个合约操作信息输入到合约代码中进行运行,无需在每个合约虚拟机中重复加载该合约代码,从而显著减少了节点的负载量。这样,提高了资源的利用率和节点的处理效率。
在本申请的一个实施例中,提供了另一种区块链数据处理方法,该区块链数据处理方法可以由区块链节点中的共享虚拟机来执行。如图6所示,该区块链数据处理方法可以包括S310至S320、S510至S520、S610至S620。也即,S610至S620是图5所示的S530的具体实现方法。
下面对S610至S620进行描述:
S610,基于合约虚拟机的数量和预设线程数量,在共享虚拟机的运行线程中对用于运行合约代码的多个线程进行协程的分配。
其中,S610具体可以包括S611至S612。
下面对S611至S612进行描述:
S611,基于多个合约虚拟机并发合约操作信息的数量确定出并发量等级。
共享虚拟机在一段时间内可能会接收到多个合约操作信息,区块链节点可以检测该共享虚拟机在预设时长内接收到的合约操作信息数量,然后,根据统计得到的合约操作信息数量,可以划分出不同的并发量等级。例如,可以将并发量等级划分为第一预设并发量等级、第二预设并发量等级、第三预设并发量等级,或者更多个等级,每个等级对应不同的预设时长内接收到合约操作信息的数量区间。共享虚拟机接收到的合约操作信息数量越多,对应的并发量等级越高。
例如,若在1s内接收到了1-999个合约操作信息,则可以判定为低并发量,对应第一预设并发量等级;若在1s内接收到了1000-9999个合约操作信息,则可以判定为中等并发量,对应第二预设并发量等级;若在1s内接收到了10000-99999个合约操作信息,则可以判定为高并发量,对应第三预设并发量等级。
根据实际情况的不同,本领域技术人员可以动态调整各个并发量等级所对应的在预设时长内的合约操作信息数量,或者增加或删除并发量等级,此处不做限定。
S612,基于并发量等级,在运行进程中对预设线程数量的线程进行协程的分配。
接下来,根据每个合约虚拟机的并发量等级,共享虚拟机可以动态在运行进程中对预设线程数量的线程进行协程的分配,以适应当前系统的负载情况。并发量等级高的合约虚拟机可能会分配更多的协程来处理合约操作信息,从而提高并发处理能力。
具体地,如图7所示为一种线程中协程的分配情况示意图。图7中,若并发量等级为第一预设并发量等级,则直接分配预设线程数量的线程用于合约代码的并发运行处理。也即,不对运行进程中的线程分配协程,使得该运行进程中仅包含线程。这种分配方式可以称为纯线程模式,用于应对并发量较小的场景。
可选地,如图8所示为另一种线程中协程的分配情况示意图。图8中,若并发量等级为第一预设并发量等级,也可以对每个线程分别仅分配一个协程,这样就相当于该运行进程中包含了预设线程数量的协程。这种分配方式可以称为纯协程模式,用于应对并发量较小的场景。
如图9所示为另一种线程中协程的分配情况示意图。图9中,若并发量等级表征为第二预设并发量等级,则对预设线程数量的线程中的部分线程分别分配第一数量的协程,该第一数量可以是一个或多个。其中,第二预设并发量等级所表征的并发量大于第一预设并发量等级所表征的并发量,并且,此处的部分线程的数量也可以由本领域技术人员所设定,此处不作限定。这种情况可以称为线程与协程的混合模式,用于应对并发量中等的场景。
如图10所示为另一种线程中协程的分配情况示意图。图10中,若并发量等级表征为第三预设并发量等级,则基于合约虚拟机的数量和预设线程数量确定在各个线程中配置的协程对应的第二数量(即为m)。该第二数量即为一个线程中所包含的协程的数量。接下来,可以在各个线程中分别分配第二数量的协程,以得到共享虚拟机的运行进程。这样的分配方式在线程的基础上采用协程的方式进行细粒度的并发,可以应对并发量较大的场景。协程相较于线程有更小的内存开销,能够同时支持更多的并发任务,从而避免了线程创建和销毁造成的开销。
对于并发量极大的场景,可以采用分层控制的方式,根据并发量等级,分层对系统进行资源调配和限制,使共享虚拟机能够更好地应对不同规模的并发请求。具体的实现方式可以根据应用场景以及硬件资源的限制等因素进行选择,本申请实施例不作限定。
S620,利用运行进程中包含的多个线程,基于多个合约操作信息对合约代码进行并发运行处理,得到各个合约操作信息所分别对应的合约运行结果,并向多个合约虚拟机返回相应的合约运行结果。
具体地,S620可以包括S621至S623。
下面对S621至S623进行描述:
S621,在各个线程中基于合约操作信息包含的已授权功能标识,从合约代码包含的多个合约功能中确定出已授权功能标识所对应的已授权功能。
在共享虚拟机的运行进程中,每个线程或协程可以被分配到处理一个合约操作信息的任务,该线程或协程会读取该合约操作信息中的已授权功能标识。基于该标识,线程或协程会从合约代码中包含的多个合约功能中,确定对应的已授权功能,也就是合约操作信息中所需要调用的功能。
S622,基于已授权功能对合约代码进行更新处理,得到更新后的合约代码。
更新方法可以是对合约代码中已授权功能所对应的函数或变量进行使用开通,这样合约代码就包含了该合约操作信息要调用的合约功能。
S623,将合约操作信息输入到更新后的合约代码中进行运行处理,得到相应的合约运行结果,并向多个合约虚拟机返回相应的合约运行结果。
共享虚拟机在运行合约代码的过程中会读取合约操作信息中的状态变量,生成合约运行结果,并向多个合约虚拟机返回相应的合约运行结果。
通过该方法,通过根据不同的并发量等级采用不同的运行进程来处理合约代码,可以有效地提高资源利用率,使得系统能够更好地应对高并发的情况。同时,在运行合约代码之前,根据已授权功能标识对合约代码进行更新,确保每个合约操作信息只执行其具备使用权限的合约功能,这样可以保证数据的安全性和合约的合规性。
在本申请的一个实施例中,提供了另一种区块链数据处理方法,该区块链数据处理方法可以由区块链节点中的共享虚拟机来执行。如图11所示,该区块链数据处理方法可以包括S310、S1110至S1120和S330。也即,S1110至S1120是图3所示的S320的具体实现方法。
下面对S1110至S1120进行描述:
S1110,在合约虚拟机中基于调用请求生成合约操作信息。
具体地,区块链节点需要先通过合约虚拟机接收客户端发送的调用请求。
在区块链节点中,合约虚拟机可以有两种不同的接收调用请求的方式:
随机分配:当区块链节点收到来自客户端的调用请求时,它可以随机选择一个合约虚拟机来接收并处理该调用请求。这种方式下,合约虚拟机之间是相互独立的,每个合约虚拟机负责处理不同的调用请求。
相关绑定:在某些情况下,区块链节点可能会将某个合约虚拟机与特定的客户端相绑定,使得该合约虚拟机成为该客户端的专属虚拟机。在这种情况下,当该客户端发送调用请求时,区块链节点会将该调用请求发送到与其绑定的合约虚拟机上进行处理。
本申请实施例中,为了保证共享虚拟机内部状态的安全和稳定,区块链节点可以提供一套完整的权限控制机制,对所有的账户、合约和操作进行细粒度的访问控制,避免不同合约之间的状态交叉污染。在这个机制中,可以定义客户端类型和权限,以及相应的操作规则和约束条件。例如,可以将客户端分为普通客户端(client)、合约拥有者(owner)和系统管理员(admin)等客户端类型,分别确定它们可以进行的操作范围和权限。同时,还需要对每个合约操作信息的可操作范围进行限制,确保其不能超出自己的访问范围和操作权限。
合约虚拟机可以检测客户端所属的客户端类型。基于调用请求中包含的申请合约功能和客户端类型确定客户端具备的合约功能使用权限。
具体地,合约虚拟机可以获取访问控制列表(ACL),如图12所示为一示例性的访问控制列表的示意图,多个合约虚拟机可以对应同一个访问控制列表。图12中,每个客户端类型都对应了一个或多个其所具备的权限。例如,合约拥有者可以使用转账的合约功能,普通客户端可以使用保存和显示的合约功能,系统管理员可以使用创建的合约功能。本领域技术人员可以根据实际需求对访问控制列表中包含的各个客户端类型的权限进行设计,本申请实施例不做限定。
可选地,访问控制列表还可以设置以下的内容:
不同级别的访问权限:在智能合约中,可以为每个函数或变量指定不同级别的访问权限,例如管理员权限和普通用户权限。这样可以确保只有具有相应权限的账户才能执行特定的操作或访问特定的变量。管理员权限可能用于更高级别的操作,而普通用户权限可能用于一般性的操作。
账户地址和权限:在访问控制列表中,可以将需要访问合约的账户地址添加到列表中,并为其指定相应的权限级别。例如,可以为特定账户授予管理员权限,以便其能够执行敏感操作,而将其他账户设置为普通用户权限,限制其操作范围。
有效期:通过设置访问控制列表的有效期,可以确保在指定时间后访问控制列表自动失效,防止过时的访问控制列表规则对智能合约造成危害。这样可以提高智能合约的安全性,并确保只有最新的访问控制列表规则才能生效。
进一步地,合约虚拟机基于访问控制列表和调用请求中包含的申请合约功能进行匹配,得到客户端类型所具备使用权限的合约功能。具体为,合约虚拟机从访问控制列表中确定出申请合约功能中哪些是具备使用权限的,可以对具备使用权限的申请合约功能进行标记。
通过以上方法,合约虚拟机就可以生成调用请求所对应的合约操作信息。
S1120,基于合约虚拟机中保存的共享虚拟机地址向共享虚拟机发送合约操作信息。
每个合约虚拟机中均包含了自己所绑定的共享虚拟机,也即,包含了对应的共享虚拟机的地址,合约虚拟机可以基于该共享虚拟机地址向共享虚拟机发送合约操作信息,以使共享虚拟机执行后续的操作,具体的操作内容已在前述实施例中详细描述,此处不做赘述。
共享虚拟机生成该合约操作信息的运行结果后,可以相应返回的合约运行结果,该合约虚拟机可以接收该合约运行结果。
接收到合约运行结果后,合约虚拟机对合约运行结果执行上链处理。具体地,合约虚拟机可以将该合约运行结果封装成交易回执,并写入区块链,执行上链处理。该交易回执是区块链上对每笔交易执行结果的确认和记录。
其中,交易回执通常包含以下信息:
交易执行状态:指示交易在虚拟机中的执行结果,例如成功执行、失败或异常等状态。
返回值:如果交易是合约调用的结果,交易回执可能包含合约的返回值。合约执行成功后,可能返回一些计算结果或数据。
消耗的Gas:在以太坊等区块链平台上,交易执行需要支付一定数量的Gas,Gas是计算和执行合约代码所需的资源单位。交易回执中会记录交易所消耗的Gas数量,这对于交易费用的计算和网络资源的管理非常重要。
其他元数据:交易回执中可能还包含其他的元数据,如交易的哈希值、区块高度、交易发起者的地址等信息,以便后续查询和验证交易的执行情况。
通过该方法,合约虚拟机可以通过对调用请求进行权限检测,生成合约操作信息,并将该合约操作信息发送至共享虚拟机处理,这样,只需要共享虚拟机加载一次合约代码就可以执行多个合约操作信息,无需每个合约虚拟机重复加载该合约代码,减小了区块链节点的虚拟机负载,提高了区块链数据处理的效率。
在本申请的一个实施例中,提供了另一种区块链数据处理方法,该区块链数据处理方法可以由区块链节点中的共享虚拟机和合约虚拟机来执行。如图13所示,该区块链数据处理方法可以包括S1301至S1308。
下面对S1301至S1308进行描述:
S1301,合约虚拟机接收客户端发送的调用请求。
S1302,合约虚拟机基于调用请求生成合约操作信息。
具体可以是合约虚拟机根据调用请求进行权限的检测和控制,从而生成合约操作信息。
S1303,合约虚拟机向共享虚拟机发送合约操作信息,共享虚拟机并发接收多个合约虚拟机分别发送的合约操作信息。
S1304,共享虚拟机基于接收到的多个合约操作信息确定同一合约代码存储地址。
S1305,共享虚拟机基于合约代码存储地址获取对应的合约代码。
S1306,共享虚拟机基于多个合约操作信息并发运行合约代码,相应得到多个合约运行结果。
在运行的过程中,可以对共享虚拟机的运行进程中的线程进行协程分配,以实现更加高效的并发处理。通过对共享虚拟机的运行进程中的线程进行协程分配,可以更好地利用多核处理器的计算资源,实现更细粒度的任务划分和并发执行。
S1307,共享虚拟机向多个合约虚拟机返回相应的合约运行结果,相应地,合约虚拟机接收共享虚拟机相应返回的合约运行结果。
S1308,合约虚拟机对合约运行结果执行上链处理。
需要说明的是,S1301至S1308已在前述实施例中详细描述,此处不做赘述。
通过该方法,实现了高效的智能合约处理和区块链数据处理流程。通过将合约虚拟机的调用请求发送给共享虚拟机,共享虚拟机可以并发接收多个合约虚拟机发送的合约操作信息,并根据这些信息确定出同一合约代码的存储地址,进而获取对应的合约代码。
一方面,共享虚拟机可以仅加载一次合约代码,就可以处理多个合约操作信息,而无需在每个合约虚拟机中重复加载合约代码,可以减少资源重复加载,从而减少了节点的负载量。
另一方面,并发接收多个合约操作信息,并且并发运行合约代码,使得合约的处理能力大大提高,可以在短时间内处理大量的合约请求,提高了区块链数据处理的效率。
图14是本申请的一个实施例示出的区块链数据处理装置的框图。如图14所示,该区块链数据处理装置可以应用于区块链节点中,该装置包括:
一种区块链数据处理设备,包括:
创建单元1410,用于创建智能合约对应的合约虚拟机;
创建单元1410,还用于若未检测到专用于执行智能合约的共享虚拟机,则进行共享虚拟机的创建;
收发单元1420,用于若检测到共享虚拟机,则当合约虚拟机接收到针对智能合约的调用请求时,向共享虚拟机发送合约操作信息;
处理单元1430,用于在共享虚拟机中响应于合约操作信息,对智能合约的合约代码执行运行处理,得到合约运行结果,并将合约运行结果返回至合约虚拟机。
在本申请的一个实施例中,基于前述方案,收发单元1420,还用于若检测到专用于执行智能合约的共享虚拟机,则当合约虚拟机接收到针对智能合约的调用请求时,向共享虚拟机发送合约操作信息;处理单元1430,还用于在共享虚拟机中响应于合约操作信息,对智能合约的合约代码执行运行处理,得到合约运行结果,并将合约运行结果返回至合约虚拟机。
在本申请的一个实施例中,基于前述方案,收发单元1420,还用于在共享虚拟机中并发接收多个合约虚拟机分别发送的合约操作信息;基于接收到的多个合约操作信息确定同一合约代码存储地址,并基于合约代码存储地址获取对应的合约代码;基于多个合约操作信息并发运行合约代码,得到多个合约运行结果,并向多个合约虚拟机返回相应的合约运行结果。
在本申请的一个实施例中,基于前述方案,处理单元1430,还用于基于合约虚拟机的数量和预设线程数量,在共享虚拟机的运行进程中对用于运行合约代码的多个线程进行协程的分配;利用运行进程中包含的多个线程,基于多个合约操作信息对合约代码进行并发运行处理,得到各个合约操作信息所分别对应的合约运行结果。
在本申请的一个实施例中,基于前述方案,处理单元1430,还用于基于多个合约虚拟机并发合约操作信息的数量确定出并发量等级;处理单元,用于基于并发量等级,在运行进程中对预设线程数量的线程进行协程的分配。
在本申请的一个实施例中,基于前述方案,处理单元1430,还用于若并发量等级为第一预设并发量等级,则直接分配预设线程数量的线程用于合约代码的并发运行处理。
在本申请的一个实施例中,基于前述方案,处理单元1430,还用于若并发量等级表征为第二预设并发量等级,则对预设线程数量的线程中的部分线程分别分配第一数量的协程;其中,第二预设并发量等级所表征的并发量大于第一预设并发量等级所表征的并发量。
在本申请的一个实施例中,基于前述方案,处理单元1430,还用于若并发量等级表征为第三预设并发量等级,则基于合约虚拟机的数量和预设线程数量确定在各个线程中配置的协程对应的第二数量;在各个线程中分别分配第二数量的协程。
在本申请的一个实施例中,基于前述方案,处理单元1430,还用于在各个线程中基于合约操作信息包含的已授权功能标识,从合约代码包含的多个合约功能中确定出已授权功能标识所对应的已授权功能;基于已授权功能对合约代码进行更新处理,得到更新后的合约代码;将合约操作信息输入到更新后的合约代码中进行运行处理,得到相应的合约运行结果。
在本申请的一个实施例中,基于前述方案,处理单元1430,还用于在合约虚拟机中基于调用请求生成合约操作信息;收发单元1420,还用于基于合约虚拟机中保存的共享虚拟机地址向共享虚拟机发送合约操作信息。
在本申请的一个实施例中,基于前述方案,处理单元1430,还用于检测发起调用请求的客户端所属的客户端类型;基于调用请求中包含的申请合约功能和客户端类型确定客户端具备的合约功能使用权限;基于客户端具备的合约功能使用权限生成相应的合约操作信息。
在本申请的一个实施例中,基于前述方案,获取单元1440,用于获取访问控制列表,访问控制列表中包含不同的客户端类型所具备使用权限的合约功能;处理单元1430,还用于基于访问控制列表和调用请求中包含的申请合约功能进行匹配,得到客户端类型所具备使用权限的合约功能。
该装置可以应用于一种区块链数据处理节点,即区块链节点,该节点配置有合约虚拟机和共享虚拟机,其中:
合约虚拟机接收客户端发送的调用请求,基于调用请求生成合约操作信息,并向共享虚拟机发送合约操作信息;
共享虚拟机并发接收多个合约虚拟机分别发送的合约操作信息,基于接收到的多个合约操作信息确定同一合约代码存储地址,并基于合约代码存储地址获取对应的合约代码;
共享虚拟机基于多个合约操作信息并发运行合约代码,相应得到多个合约运行结果,并向多个合约虚拟机返回相应的合约运行结果;
合约虚拟机接收共享虚拟机相应返回的合约运行结果,并对合约运行结果执行上链处理。
需要说明的是,前述实施例所提供的装置与前述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述。
本申请的实施例还提供了一种区块链数据处理设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现如前的区块链数据处理方法。
图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)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不相同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的区块链数据处理方法。该计算机可读介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读介质中。计算机设备的处理器从计算机可读介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的区块链数据处理方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (16)
1.一种区块链数据处理方法,其特征在于,包括:
创建智能合约对应的合约虚拟机以及共享虚拟机;
当所述合约虚拟机接收到针对所述智能合约的调用请求时,向所述共享虚拟机发送合约操作信息;
在所述共享虚拟机中响应于所述合约操作信息,对所述智能合约的合约代码执行运行处理,得到合约运行结果,并将所述合约运行结果返回至所述合约虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若检测到专用于执行所述智能合约的共享虚拟机,则当所述合约虚拟机接收到针对所述智能合约的调用请求时,向所述共享虚拟机发送合约操作信息;
在所述共享虚拟机中响应于所述合约操作信息,对所述智能合约的合约代码执行运行处理,得到合约运行结果,并将所述合约运行结果返回至所述合约虚拟机。
3.根据权利要求1或2所述的方法,其特征在于,所述在所述共享虚拟机中响应于所述合约操作信息,对所述智能合约的合约代码执行运行处理,得到合约运行结果,并将所述合约运行结果返回至所述合约虚拟机,包括:
在所述共享虚拟机中并发接收多个合约虚拟机分别发送的合约操作信息;
基于接收到的多个合约操作信息确定同一合约代码存储地址,并基于所述合约代码存储地址获取对应的合约代码;
基于所述多个合约操作信息并发运行所述合约代码,得到多个合约运行结果,并向所述多个合约虚拟机返回相应的合约运行结果。
4.根据权利要求3所述的方法,其特征在于,所述基于所述多个合约操作信息并发运行所述合约代码,得到多个合约运行结果,包括:
基于所述合约虚拟机的数量和预设线程数量,在共享虚拟机的运行进程中对用于运行所述合约代码的多个线程进行协程的分配;
利用所述运行进程中包含的多个线程,基于多个合约操作信息对所述合约代码进行并发运行处理,得到各个合约操作信息所分别对应的合约运行结果。
5.根据权利要求4所述的方法,其特征在于,所述基于所述合约虚拟机的数量和预设线程数量,在所述共享虚拟机的运行进程中对用于运行所述合约代码的多个线程进行协程的分配,包括:
基于所述多个合约虚拟机并发合约操作信息的数量确定出并发量等级;
基于所述并发量等级,在所述运行进程中对所述预设线程数量的线程进行协程的分配。
6.根据权利要求5所述的方法,其特征在于,所述基于所述并发量等级,在所述运行进程中对所述预设线程数量的线程进行协程的分配,包括:
若所述并发量等级为第一预设并发量等级,则直接分配所述预设线程数量的线程用于所述合约代码的并发运行处理。
7.根据权利要求6所述的方法,其特征在于,所述基于所述并发量等级,在所述运行进程中对所述预设线程数量的线程进行协程的分配,包括:
若所述并发量等级表征为第二预设并发量等级,则对所述预设线程数量的线程中的部分线程分别分配第一数量的协程;其中,所述第二预设并发量等级所表征的并发量大于所述第一预设并发量等级所表征的并发量。
8.根据权利要求7所述的方法,其特征在于,所述基于所述并发量等级,在所述运行进程中对所述预设线程数量的线程进行协程的分配,包括:
若所述并发量等级表征为第三预设并发量等级,则基于所述合约虚拟机的数量和所述预设线程数量确定在各个线程中配置的协程对应的第二数量;
在各个线程中分别分配所述第二数量的协程。
9.根据权利要求4所述的方法,其特征在于,所述利用所述运行进程中包含的多个线程,基于多个合约操作信息对所述合约代码进行并发处理,得到各个合约操作信息所对应的合约运行结果,包括:
在各个线程中基于合约操作信息包含的已授权功能标识,从所述合约代码包含的多个合约功能中确定出所述已授权功能标识所对应的已授权功能;
基于所述已授权功能对所述合约代码进行更新处理,得到更新后的合约代码;
将所述合约操作信息输入到所述更新后的合约代码中进行运行处理,得到相应的合约运行结果。
10.根据权利要求1或2所述的方法,其特征在于,所述当所述合约虚拟机接收到针对所述智能合约的调用请求时,向所述共享虚拟机发送合约操作信息,包括:
在所述合约虚拟机中基于所述调用请求生成所述合约操作信息;
基于所述合约虚拟机中保存的所述共享虚拟机地址向所述共享虚拟机发送所述合约操作信息。
11.根据权利要求10所述的方法,其特征在于,所述在所述合约虚拟机中基于所述调用请求生成合约操作信息,包括:
检测发起所述调用请求的客户端所属的客户端类型;
基于所述调用请求中包含的申请合约功能和所述客户端类型确定所述客户端具备的合约功能使用权限;
基于所述客户端具备的合约功能使用权限生成相应的合约操作信息。
12.根据权利要求11所述的方法,其特征在于,所述基于所述调用请求中包含的申请合约功能和所述客户端类型确定所述客户端具备的合约功能使用权限,包括:
获取访问控制列表,所述访问控制列表中包含不同的客户端类型所具备使用权限的合约功能;
基于所述访问控制列表和所述申请合约功能进行匹配,得到所述客户端类型所具备使用权限的合约功能。
13.一种区块链节点,其特征在于,所述节点配置有合约虚拟机和共享虚拟机,其中:
所述合约虚拟机接收客户端发送的调用请求,基于所述调用请求生成合约操作信息,并向共享虚拟机发送所述合约操作信息;
所述共享虚拟机并发接收多个合约虚拟机分别发送的合约操作信息,基于接收到的多个合约操作信息确定同一合约代码存储地址,并基于所述合约代码存储地址获取对应的合约代码;
所述共享虚拟机基于所述多个合约操作信息并发运行所述合约代码,相应得到多个合约运行结果,并向所述多个合约虚拟机返回相应的合约运行结果;
所述合约虚拟机接收所述共享虚拟机相应返回的合约运行结果,并对所述合约运行结果执行上链处理。
14.一种区块链数据处理装置,其特征在于,包括:
创建单元,用于创建智能合约对应的合约虚拟机;
所述创建单元,还用于若未检测到专用于执行所述智能合约的共享虚拟机,则进行所述共享虚拟机的创建;
收发单元,用于若检测到所述共享虚拟机,则当所述合约虚拟机接收到针对所述智能合约的调用请求时,向所述共享虚拟机发送合约操作信息;
处理单元,用于在所述共享虚拟机中响应于所述合约操作信息,对所述智能合约的合约代码执行运行处理,得到合约运行结果,并将所述合约运行结果返回至所述合约虚拟机。
15.一种区块链数据处理设备,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1至12中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311050909.3A CN116805947B (zh) | 2023-08-21 | 2023-08-21 | 区块链数据处理方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311050909.3A CN116805947B (zh) | 2023-08-21 | 2023-08-21 | 区块链数据处理方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116805947A true CN116805947A (zh) | 2023-09-26 |
CN116805947B CN116805947B (zh) | 2023-11-10 |
Family
ID=88079652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311050909.3A Active CN116805947B (zh) | 2023-08-21 | 2023-08-21 | 区块链数据处理方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116805947B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109636592A (zh) * | 2017-10-20 | 2019-04-16 | 北京航空航天大学 | 高性能智能合约设计 |
CN110599175A (zh) * | 2019-09-23 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块处理方法及相关设备 |
CN111562969A (zh) * | 2020-07-15 | 2020-08-21 | 百度在线网络技术(北京)有限公司 | 一种区块链的智能合约实现方法、装置、设备和介质 |
CN112070608A (zh) * | 2020-08-20 | 2020-12-11 | 财付通支付科技有限公司 | 信息处理方法、装置、介质及电子设备 |
CN115375303A (zh) * | 2021-05-18 | 2022-11-22 | 腾讯科技(深圳)有限公司 | 智能合约的调用方法、装置、计算机可读介质及电子设备 |
CN116342283A (zh) * | 2023-03-31 | 2023-06-27 | 武汉天喻信息产业股份有限公司 | 可信智能合约实现方法、装置、设备及可读存储介质 |
-
2023
- 2023-08-21 CN CN202311050909.3A patent/CN116805947B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109636592A (zh) * | 2017-10-20 | 2019-04-16 | 北京航空航天大学 | 高性能智能合约设计 |
CN110599175A (zh) * | 2019-09-23 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块处理方法及相关设备 |
CN111562969A (zh) * | 2020-07-15 | 2020-08-21 | 百度在线网络技术(北京)有限公司 | 一种区块链的智能合约实现方法、装置、设备和介质 |
CN112070608A (zh) * | 2020-08-20 | 2020-12-11 | 财付通支付科技有限公司 | 信息处理方法、装置、介质及电子设备 |
CN115375303A (zh) * | 2021-05-18 | 2022-11-22 | 腾讯科技(深圳)有限公司 | 智能合约的调用方法、装置、计算机可读介质及电子设备 |
CN116342283A (zh) * | 2023-03-31 | 2023-06-27 | 武汉天喻信息产业股份有限公司 | 可信智能合约实现方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116805947B (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11055136B2 (en) | Prioritization in a permissioned blockchain | |
JP7454616B2 (ja) | 分散型元帳におけるdagベースのトランザクション処理方法およびシステム | |
JP7434448B2 (ja) | ブロックチェーントランザクションの並列検証のためのシステム及び方法 | |
CN110915166B (zh) | 区块链 | |
US11451398B2 (en) | Management of interoperating machine learning algorithms | |
US10603584B2 (en) | Dynamic resource allocation for gaming applications | |
US11017388B2 (en) | Cryptographically assured zero-knowledge cloud service for composable atomic transactions | |
JP2023017844A (ja) | ハイパーレッジャファブリックブロックチェーンにおいてsqlベースのリッチクエリをサポートするためのシステムおよび方法 | |
JP6013594B2 (ja) | ローカル支援されるクラウドベースのストレージ | |
WO2018176998A1 (zh) | 数据存储方法及装置 | |
EP1583320A2 (en) | System and method for sharing objects between computers over a network | |
CN110770770A (zh) | 挖掘由验证者节点提供的区块链交易的方法和系统 | |
US11017387B2 (en) | Cryptographically assured zero-knowledge cloud services for elemental transactions | |
CN111932239B (zh) | 业务处理方法、装置、节点设备及存储介质 | |
CN111338641A (zh) | 一种应用发布方法及装置 | |
CN116805947B (zh) | 区块链数据处理方法、装置、设备及计算机可读存储介质 | |
Rahman et al. | Blockchain-enabled SLA compliance for crowdsourced edge-based network function virtualization | |
US20230016241A1 (en) | Highly flexible, scalable multi blockchain, hierarchical data sharing and data storing system and method thereof | |
CN114185642B (zh) | 一种基于容器管理平台的智慧校园开发方法及系统 | |
US20240004684A1 (en) | System and method for exchanging messages between cloud services and software-defined data centers | |
CN117592077A (zh) | 项目成员资源权限管理方法及系统 | |
CN115860953A (zh) | 一种信息获取方法、装置、设备及存储介质 | |
CN114462016A (zh) | 资源请求方法、装置及系统 | |
CN116974764A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN117931933A (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: 40093140 Country of ref document: HK |