CN111562969B - 一种区块链的智能合约实现方法、装置、设备和介质 - Google Patents
一种区块链的智能合约实现方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN111562969B CN111562969B CN202010677698.6A CN202010677698A CN111562969B CN 111562969 B CN111562969 B CN 111562969B CN 202010677698 A CN202010677698 A CN 202010677698A CN 111562969 B CN111562969 B CN 111562969B
- Authority
- CN
- China
- Prior art keywords
- resident
- intelligent contract
- data
- contract
- block
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Marketing (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种区块链的智能合约实现方法、装置、设备和介质,涉及区块链技术领域,可应用于云计算和云服务。具体实现方案为:在产生常驻智能合约的启动条件时,为所述常驻智能合约创建常驻进程,并通过所述常驻进程创建虚拟机;通过所述虚拟机将所述常驻智能合约的代码加载到内存中;通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求;通过所述虚拟机执行所述常驻智能合约以处理所述数据访问请求,将数据访问结果返回给所述正常智能合约;其中,所述常驻智能合约的常驻进程在内存中的存活周期大于一个区块生成周期。本申请通过设置常驻智能合约,提高了数据处理速度、减少了计算和读写资源的消耗。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及区块链技术。
背景技术
区块链系统中可包括智能合约系统,区块链系统的主程序通过调用智能合约来实现各种功能。区块链主程序调用智能合约的过程类似于WEB服务器调用外部程序所采用的公共网关接口(Common Gateway Interface,CGI)模型。具体的,在主程序调用智能合约的一次调用生命周期内,该智能合约有完整的数据流,从磁盘加载数据、执行数据计算、而后将计算结果写回磁盘。调用生命周期结束后,智能合约从内存中清空数据。
但是,上述的智能合约实现方式,已经不适用于区块链日益复杂的业务需求,导致数据处理效率低。
发明内容
本申请实施例提供了一种区块链的智能合约实现方法、装置、设备和介质。
根据本申请的一方面,提供了一种区块链的智能合约实现方法,应用于区块链节点,所述方法包括:
在产生常驻智能合约的启动条件时,为所述常驻智能合约创建常驻进程,并通过所述常驻进程创建虚拟机;
通过所述虚拟机将所述常驻智能合约的代码加载到内存中;
通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求;
通过所述虚拟机执行所述常驻智能合约以处理所述数据访问请求,将数据访问结果返回给所述正常智能合约;
其中,所述正常智能合约的进程在内存中的存活周期为一个区块生成周期,所述常驻智能合约的常驻进程在内存中的存活周期大于一个区块生成周期。
根据本申请的另一方面,提供了一种区块链的智能合约实现装置,配置于区块链节点中,所述装置包括:
进程创建模块,用于在产生常驻智能合约的启动条件时,为所述常驻智能合约创建常驻进程,并通过所述常驻进程创建虚拟机;
合约加载模块,用于通过所述虚拟机将所述常驻智能合约的代码加载到内存中;
合约调用模块,用于通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求;
结果返回模块,用于通过所述虚拟机执行所述常驻智能合约以处理所述数据访问请求,将数据访问结果返回给所述正常智能合约;
其中,所述正常智能合约的进程在内存中的存活周期为一个区块生成周期,所述常驻智能合约的常驻进程在内存中的存活周期大于一个区块生成周期。
根据本申请的再一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任意实施例所提供的区块链的智能合约实现方法。
根据本申请的又一方面,提供了存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本申请任意实施例所提供的区块链的智能合约实现方法。
根据本申请的技术解决了智能合约反复启动和退出导致资源消耗大的问题。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请实施例提供的一种区块链的智能合约实现方法的流程图;
图2为本申请实施例提供的另一种区块链的智能合约实现方法的流程图;
图3为本申请实施例提供的一种区块链的智能合约实现装置的结构框图;
图4是用来实现本申请实施例的区块链的智能合约实现方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1为本申请实施例提供的一种区块链的智能合约实现方法的流程图,该方法适用于在区块链系统的运行过程中调用智能合约来处理区块数据的情况。该方法可以由区块链的智能合约实现装置来执行,该装置可以采用软件和/或硬件的形式来实现,该装置可集成于能够作为区块链节点的电子设备中,即该方法可以应用于区块链节点,由区块链节点来执行。如图1所示,所述方法包括:
S110、在产生常驻智能合约的启动条件时,为所述常驻智能合约创建常驻进程,并通过所述常驻进程创建虚拟机;
S120、通过所述虚拟机将所述常驻智能合约的代码加载到内存中;
智能合约是可以基于虚拟机运行的代码,能够在代码运行的过程中完成一定的功能。当调用智能合约时,会为智能合约创建进程并为进程分配内存空间等可供运行的资源,在进程中构建虚拟机,基于虚拟机来加载智能合约的代码并执行。
常驻智能合约是相对于正常智能合约而言的一种特殊的智能合约。其中,所述正常智能合约的进程在内存中的存活周期为一个区块生成周期,所述常驻智能合约的常驻进程在内存中的存活周期大于一个区块生成周期。
区块链系统按照区块生成周期,顺序处理该区块的事务请求,事务请求是区块链系统中承载用户业务需求的请求内容。通常,事务请求可通过调用至少一个智能合约来实现。在当前区块生成周期开始时,区块链的主程序会根据事务请求来调用智能合约,正常智能合约通常是在当前区块生成周期内、进行当前区块中事务请求的处理过程中被调用的,从而完成事务请求中的某种功能。在当前区块处理完成后,则正常智能合约的功能也执行完毕,结束调用,主程序通知正常智能合约退出。所以,正常智能合约的进程的存活周期为一个区块生成周期。常驻智能合约的常驻进程在内存中的存活周期则大于一个区块生成周期,可选的是常驻智能合约的常驻进程能够持续地的驻留在内存中,不限于在产生一个区块的过程中被启用后退出,而是能够在跨越区块的过程被反复的调用。
本实施例中,具体是在产生常驻智能合约的启动条件时,为所述常驻智能合约创建常驻进程,并通过所述常驻进程创建虚拟机。产生常驻智能合约的启动条件可以有多种情况,可选的是在下述至少一种情况下都可以启动常驻智能合约:当区块链系统在本机区块链节点启动时,产生所述常驻智能合约的启动条件;当所述常驻智能合约第一次被调用时,产生所述常驻智能合约的启动条件。
即,当部署有区块链系统的本机区块链节点开始启动运行时,就首先启动常驻智能合约的运行,可以是一个或多个常驻智能合约,相当于是预加载常驻智能合约,做好后续调用常驻智能合约的准备,以便在真正需要调用时能够快速通过常驻智能合约进行数据访问和数据处理。
或者,还可以在第一次需要调用常驻智能合约的时候进行启动,即按需启动常驻智能合约,启动之后可以常驻内存,方便后续调用时能够迅速进行数据访问和数据处理。
S130、通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求;
常驻智能合约所实现的功能,一般是需要高频访问的数据,或者需要跨区块处理的数据。例如,区块计数值、事务请求计数值,需要连续的计数,如果每次产生区块都需要重新计数则需要耗费更多计算资源。所以可以通过常驻智能合约来进行计数,在当前区块的其他正常智能合约需要使用该计数值时,就能够直接通过跨合约调用接口来访问常驻智能合约,直接读取计数值的数据来使用。
当然,通过跨合约调用接口执行的数据访问请求的访问对象不限于是计数值,其可选的包括区块链账户信息、事务请求计数值、区块计数值、和跨区块数据等。区块链账户信息可以统一由一个常驻智能合约来进行维护更新,随时可供正常智能合约来访问查询。所谓跨区块数据,则是基于不同区块中的数据结合处理而产生的数据,如果在一个区块的生成周期内智能合约退出了运行,则跨区块数据无法连续被计算,需要重新记载历史数据再处理。而使用常驻智能合约则能够连续处理和记录跨区块的数据。
常驻智能合约所处理的数据和功能不限于上述所列,可以根据具体需求进行设置。
本实施例中的跨合约调用接口具体可以基于进程间通信协议实现。由此,能够方便地进行智能合约进程之间的交互。跨合约调用接口可以通过部署于区块链系统中的专用调用模型来实现。
S140、通过所述虚拟机执行所述常驻智能合约以处理所述数据访问请求,将数据访问结果返回给所述正常智能合约。
本申请实施例的技术方案,通过设置常驻智能合约,使得此类特殊的智能合约能够常驻内存维持运行,随时能够提供高频访问数据或跨区块数据的访问,不必从磁盘中加载代码和数据再重新计算,因此提高了数据处理速度、减少了计算和读写资源的消耗。
在上述实施例的基础上,该方法还可以包括:
在产生常驻智能合约的关闭条件时,将所述常驻智能合约在内存中存储的数据固化写入磁盘,关闭分配给所述常驻智能合约的虚拟机的进程和内存空间。
常驻智能合约的常驻进程可持续驻留内存,不用随着当前区块生成周期的结束而被主进程结束退出。常驻智能合约可以在产生关闭条件时,在将内存中数据进行持久化存储至磁盘,并关闭进程和内存空间。
具体的,产生常驻智能合约的关闭条件可以包括下述至少一项:
在区块链系统在本机区块链节点关闭时,产生所述常驻智能合约的关闭条件;
在本机区块链节点的运行资源产生降级需求时,产生所述常驻智能合约的关闭条件,其中,所述运行资源包括内存资源或计算资源。
即,在本机区块链节点关闭停止运行时,可退出常驻智能合约的常驻进程,这样相当于常驻智能合约在节点运行过程中始终存在,能够持续提供数据处理功能。或者,如果节点的运行资源有限,产生了降级需求,则也可以暂时退出常驻进程。运行资源的降级需求可能发生在事务请求的并发量突然增大或设备出现问题而导致资源不足的情况下。
在上述实施例的基础上,常驻智能合约还可以通过设置接口来实现挂起功能,即所述方法还可以包括:
在产生常驻智能合约的挂起条件时,为所述常驻进程保留进程句柄,将所述常驻智能合约在内存中存储的数据写入磁盘中的临时存储区,关闭分配给所述常驻智能合约的虚拟机的进程和内存空间。
挂起通常可在节点运行资源紧张时实施。当内存剩余空间较少,或CPU计算资源消耗较多时,可能不足以支持较多的常驻进程,则可以将部分或全部常驻进程挂起,当运行资源充足时再加载常驻进程到内存中。
具体的,可以在运行资源的剩余量或消耗量低于设定下限值等挂起条件产生时,按照预设策略,确定至少一个常驻进程进行挂起操作。预设策略可以是为常驻进程预设优先级,或者可以按照常驻进程的被调用频率等因素来进行筛选。可以将设定数量的常驻进程挂起,也可以顺序将常驻进程挂起,直至运行资源恢复至正常运行水平就停止挂起操作。常驻进程的挂起功能,能够有效控制对运行资源的占用情况,兼顾常驻进程对高频数据提供的访问服务和对运行资源的占用。
常驻进程的挂起,是将常驻进程在内存空间中的数据暂时存储到磁盘中临时分配的存储空间中,从而释放内存空间,也停止常驻进程的对外服务。当需要重启常驻进程时,则从临时存储区中加载数据恢复常驻进程。若在挂起阶段节点发生故障而关闭,则临时存储空间的数据也会被清除。
图2为本申请实施例提供的另一种区块链的智能合约实现方法的流程图,本实施例以前述实施例为基础,进一步介绍常驻智能合约的数据更新功能。如图2所示,该方法包括:
S210、在产生常驻智能合约的启动条件时,为所述常驻智能合约创建常驻进程,并通过所述常驻进程创建虚拟机;
S220、通过所述虚拟机将所述常驻智能合约的代码加载到内存中;
S230、在启动进行当前区块处理时,将所述当前区块的区块依赖数据传输给所述常驻进程,以更新所述常驻进程内存空间中的数据,与当前区块中的数据一致。
在常驻进程加载常驻智能合约之后,由于常驻内存,所以常驻进程无法与正常智能合约一样,在一个区块生成周期开始时启动去加载最新的区块数据,也不是在区块生成周期结束时退出,从而将处理的数据更新到磁盘中。所以常驻智能合约需要特殊的数据更新机制,以便时常驻智能合约运行时所基于的数据时当前区块链中最新区块的数据。
在本实施例中所实现的数据更新,可选的是在一个新的区块生成周期开始时实现对常驻进程内存数据的更新。当开始一个新的区块生成周期时,一般由区块链系统的主程序开始新区块的处理,根据当前获取到的事务请求,调用相应的正常智能合约和常驻智能合约来进行处理。当前区块中事务请求的处理,通常是基于此前已产生区块中的数据来执行的。例如,当前区块中事务请求是访问历史区块中已经记录的某个账户的数据,则需要对历史区块中的该账户数据进行读操作。当前区块中事务请求是要对历史区块中某个数据进行删除、新增或更改等写操作,那么实际上相当于在当前区块中要记录对历史数据的写操作。上述读操作和写操作所依赖的历史区块数据即为当前区块的区块依赖数据。当主程序启动加载正常智能合约时,对于区块依赖数据可以从磁盘中记录的历史区块数据中进行读取,加载到正常智能合约的内存空间中,供其处理。对于常驻智能合约的常驻进程,则主程序可以在刚开始启动当前区块处理时,将区块依赖数据传输给常驻智能合约的常驻进程。常驻智能合约所依赖的数据可以通过接口来预先设定。例如,用于进行区块计数的常驻智能合约,则主程序在调用常驻智能合约的时候,通过调用接口向常驻智能合约输入当前最新的区块信息,使常驻进程能够进行预处理。常驻进程可以根据常驻智能合约本身定义的功能和参数对块信息中的应处理数据进行处理,对其他数据忽略。
S240、通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求;
S250、通过所述虚拟机执行所述常驻智能合约以处理所述数据访问请求,将数据访问结果返回给所述正常智能合约;
其中,所述正常智能合约的进程在内存中的存活周期为一个区块生成周期,所述常驻智能合约的常驻进程在内存中的存活周期大于一个区块生成周期。
本实施例的技术方案,在当前区块开始启动处理时,则将区块依赖数据传输给常驻进程,使其能够保持数据与当前区块同步更新,由此实现正确的数据处理。
此外,还需要将常驻智能合约处理的数据及时更新到磁盘中,使磁盘中的区块数据保持最新状态。一方面,可以在当前区块处理结束时,常驻进程将内存空间中的数据向磁盘进行固化写入。具体是,主程序可以在当前区块处理结束时,调用常驻进程,控制常驻进程将当前区块生成周期内更新的数据写入到磁盘中。或者,另一方面,实际操作中,常驻智能合约作为函数调用,会把调用结果返回给处理进程(例如主程序或其他智能合约的进程),然后处理进程会与当前事务数据一起写入当前区块,即固化至磁盘空间中。若主程序调用常驻智能合约进行预处理时,如果预处理过程有返回值,则主程序可以将预处理结果固化写入当前区块。
在上述技术方案的基础上,为了维持常驻进程中的数据与区块数据一致,还可以在正常智能合约调用常驻智能合约时,主动通知常驻进程进行数据更新。即,通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求的同时,还包括:
通过所述跨合约调用接口获取正常智能合约传输的区块依赖数据并更新至所述常驻进程的内存空间中,以维持常驻智能合约内存空间中的数据与当前区块中的数据一致。
上述方案,在正常智能合约调用常驻智能合约时,主动将运行所依赖的数据传输给常驻进程,以便保持常驻进程内存空间中的数据与当前区块的数据一致。
以上述技术方案为基础,还可以进一步考虑区块回滚的情况,以保持常驻进程内存空间的数据与当前区块数据的一致。区块回滚,即由于各种原因导致在区块链节点中已经记录上链的最后一个或几个区块失效,应从区块链中去除。区块回滚并不是直接删除区块即可,而是需要从后向前逆向执行各个事务请求,从而将失效区块的事务请求所带来的数据变化给撤销,而后再执行新的有效区块的事务请求。
对于正常智能合约,若区块回滚,则正常智能合约退出即可,等着再次被主程序控制启动。常驻智能合约也可以通过退出常驻进程再重新创建常驻进程来基于磁盘中的区块数据完成回滚。但为了避免反复的退出和重建常驻进程,优选是采用下述方式完成常驻进程内存空间中的数据回滚,即,所述方法还包括:
在产生区块回滚事件时,通过区块链系统的主程序通知所述常驻进程,根据至少一个回滚区块的事务请求进行回滚操作,以更新所述常驻智能合约内存空间中的数据。
在上述方案中,保持常驻进程的存活状态,根据各事务请求的逆序回滚操作,由主程序将回滚操作所更新的数据通知常驻进程,以使常驻进程更新内存空间中的数据。
或者,该方法还可以包括:
在产生区块回滚事件时,通过区块链系统的主程序通知所述常驻进程关闭并重新启动,以从磁盘中重新加载回滚后的区块数据。这样对反复的数据复用带来很大的性能问题。
本申请实施例的技术方案,提供了一种常驻智能合约,其本质上可以是加载到内存中且不关闭的虚拟机来运行,常驻智能合约的虚拟机接口可主要包括如下几个:
启动接口,常驻进程的启动接口用于创建一个新的常驻进程,并启动虚拟机。该虚拟机可对外部提供IPC通讯能力。
加载(Load)进程,用于将常驻智能合约的字节码加载到启动的新常驻进程的虚拟机里面。
调用接口,用于接收跨合约调用,是主程序、正常智能合约及其他程序,访问常驻智能合约的接口。
关闭接口,用于关闭常驻进程,即回收资源,序列化数据到磁盘,关闭常驻进程。
挂起接口,用于挂起常驻进程,即保留进程句柄,通过系统调用将运行资源腾出,并停止常驻智能合约对外服务
块游走支持接口,用于接收最新的区块数据,并将内存空间中的数据更新到最新块。
上述接口可通过WASM来实现,独立保持WASM的进程。这样独立进程会始终保持数据的有效态,直到虚拟机销毁。
图3为本申请实施例提供的一种区块链的智能合约实现装置300的结构框图,该装置300配置于区块链节点中,所述装置包括:进程创建模块310、合约加载模块320、合约调用模块330和结果返回模块340。
其中,进程创建模块310,用于在产生常驻智能合约的启动条件时,为所述常驻智能合约创建常驻进程,并通过所述常驻进程创建虚拟机;合约加载模块320,用于通过所述虚拟机将所述常驻智能合约的代码加载到内存中;合约调用模块330,用于通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求;结果返回模块340,用于通过所述虚拟机执行所述常驻智能合约以处理所述数据访问请求,将数据访问结果返回给所述正常智能合约;其中,所述正常智能合约的进程在内存中的存活周期为一个区块生成周期,所述常驻智能合约的常驻进程在内存中的存活周期大于一个区块生成周期。
本申请实施例的技术方案,通过设置常驻智能合约,使得此类特殊的智能合约能够常驻内存维持运行,随时能够提供高频访问数据或跨区块数据的访问,不必从磁盘中加载代码和数据再重新计算,因此提高了数据处理速度、减少了计算和读写资源的消耗。
可选的,产生常驻智能合约的启动条件包括下述至少一项:
当区块链系统在本机区块链节点启动时,产生所述常驻智能合约的启动条件;
当所述常驻智能合约第一次被调用时,产生所述常驻智能合约的启动条件。
可选的是,所述装置还包括:
进程关闭模块,用于在产生常驻智能合约的关闭条件时,将所述常驻智能合约在内存中存储的数据固化写入磁盘,关闭分配给所述常驻智能合约的虚拟机的进程和内存空间。
可选的是,产生常驻智能合约的关闭条件包括下述至少一项:
在区块链系统在本机区块链节点关闭时,产生所述常驻智能合约的关闭条件;
在本机区块链节点的运行资源产生降级需求时,产生所述常驻智能合约的关闭条件,其中,所述运行资源包括内存资源或计算资源。
可选的是,所述装置还包括:
进程挂起模块,用于在产生常驻智能合约的挂起条件时,为所述常驻进程保留进程句柄,将所述常驻智能合约在内存中存储的数据写入磁盘中的临时存储区,关闭分配给所述常驻智能合约的虚拟机的进程和内存空间。
可选的是,所述跨合约调用接口基于进程间通信协议实现。
可选的是,该装置还包括:
第一数据更新模块,用于在启动进行当前区块处理时,将所述当前区块的区块依赖数据传输给所述常驻进程,以更新所述常驻进程内存空间中的数据,与当前区块中的数据一致。
可选的是,该装置还包括:
第二数据更新模块,用于通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求的同时,通过所述跨合约调用接口获取正常智能合约传输的区块依赖数据并更新至所述常驻进程的内存空间中,以维持常驻智能合约内存空间中的数据与当前区块中的数据一致。
可选的是,所述数据访问请求的访问对象包括区块链账户信息、事务请求计数值、区块计数值、和跨区块数据。
可选的是,该装置还包括:
第一回滚模块,用于在产生区块回滚事件时,通过区块链系统的主程序通知所述常驻进程,根据至少一个回滚区块的事务请求进行回滚操作,以更新所述常驻智能合约内存空间中的数据;或
第二数据更新模块,用于在产生区块回滚事件时,通过区块链系统的主程序通知所述常驻进程关闭并重新启动,以从磁盘中重新加载回滚后的区块数据。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图4所示,是根据本申请实施例的区块链的智能合约实现方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图4所示,该电子设备包括:一个或多个处理器401、存储器402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图4中以一个处理器401为例。
存储器402即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的区块链的智能合约实现方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的区块链的智能合约实现方法。
存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的区块链的智能合约实现方法对应的程序指令/模块(例如,附图3所示的进程创建模块310、合约加载模块320、合约调用模块330和结果返回模块340)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的区块链的智能合约实现方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据区块链的智能合约实现的电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至区块链的智能合约实现的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
区块链的智能合约实现的方法的电子设备还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。
输入装置403可接收输入的数字或字符信息,以及产生与区块链的智能合约实现的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置404可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过设置常驻智能合约,使得此类特殊的智能合约能够常驻内存维持运行,随时能够提供高频访问数据或跨区块数据的访问,不必从磁盘中加载代码和数据再重新计算,因此提高了数据处理速度、减少了计算和读写资源的消耗。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (22)
1.一种区块链的智能合约实现方法,应用于区块链节点,所述方法包括:
在产生常驻智能合约的启动条件时,为所述常驻智能合约创建常驻进程,并通过所述常驻进程创建虚拟机;
通过所述虚拟机将所述常驻智能合约的代码加载到内存中;
通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求;
通过所述虚拟机执行所述常驻智能合约以处理所述数据访问请求,将数据访问结果返回给所述正常智能合约;
其中,所述正常智能合约用于在当前区块生成周期内、进行当前区块中事务请求的处理过程中被调用,从而完成事务请求中的功能,所述正常智能合约的进程在内存中的存活周期为一个区块生成周期,所述常驻智能合约的常驻进程在内存中的存活周期大于一个区块生成周期。
2.根据权利要求1所述的方法,其中,产生常驻智能合约的启动条件包括下述至少一项:
当区块链系统在本机区块链节点启动时,产生所述常驻智能合约的启动条件;
当所述常驻智能合约第一次被调用时,产生所述常驻智能合约的启动条件。
3.根据权利要求1所述的方法,其中,所述方法还包括:
在产生常驻智能合约的关闭条件时,将所述常驻智能合约在内存中存储的数据固化写入磁盘,关闭分配给所述常驻智能合约的虚拟机的进程和内存空间。
4.根据权利要求3所述的方法,其中,产生常驻智能合约的关闭条件包括下述至少一项:
在区块链系统在本机区块链节点关闭时,产生所述常驻智能合约的关闭条件;
在本机区块链节点的运行资源产生降级需求时,产生所述常驻智能合约的关闭条件,其中,所述运行资源包括内存资源或计算资源。
5.根据权利要求1所述的方法,其中,所述方法还包括:
在产生常驻智能合约的挂起条件时,为所述常驻进程保留进程句柄,将所述常驻智能合约在内存中存储的数据写入磁盘中的临时存储区,关闭分配给所述常驻智能合约的虚拟机的进程和内存空间。
6.根据权利要求1所述的方法,其中,所述跨合约调用接口基于进程间通信协议实现。
7.根据权利要求1-6任一所述的方法,其中,还包括:
在启动进行当前区块处理时,将所述当前区块的区块依赖数据传输给所述常驻进程,以更新所述常驻进程内存空间中的数据,与当前区块中的数据一致。
8.根据权利要求1-6任一所述的方法,其中,通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求的同时,还包括:
通过所述跨合约调用接口获取正常智能合约传输的区块依赖数据并更新至所述常驻进程的内存空间中,以维持常驻智能合约内存空间中的数据与当前区块中的数据一致。
9.根据权利要求1-6任一所述的方法,其中,所述数据访问请求的访问对象包括区块链账户信息、事务请求计数值、区块计数值、和跨区块数据。
10.根据权利要求1-6任一所述的方法,其中,所述方法还包括:
在产生区块回滚事件时,通过区块链系统的主程序通知所述常驻进程,根据至少一个回滚区块的事务请求进行回滚操作,以更新所述常驻智能合约内存空间中的数据;或
在产生区块回滚事件时,通过区块链系统的主程序通知所述常驻进程关闭并重新启动,以从磁盘中重新加载回滚后的区块数据。
11.一种区块链的智能合约实现装置,配置于区块链节点中,所述装置包括:
进程创建模块,用于在产生常驻智能合约的启动条件时,为所述常驻智能合约创建常驻进程,并通过所述常驻进程创建虚拟机;
合约加载模块,用于通过所述虚拟机将所述常驻智能合约的代码加载到内存中;
合约调用模块,用于通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求;
结果返回模块,用于通过所述虚拟机执行所述常驻智能合约以处理所述数据访问请求,将数据访问结果返回给所述正常智能合约;
其中,所述正常智能合约用于在当前区块生成周期内、进行当前区块中事务请求的处理过程中被调用,从而完成事务请求中的功能,所述正常智能合约的进程在内存中的存活周期为一个区块生成周期,所述常驻智能合约的常驻进程在内存中的存活周期大于一个区块生成周期。
12.根据权利要求11所述的装置,其中,产生常驻智能合约的启动条件包括下述至少一项:
当区块链系统在本机区块链节点启动时,产生所述常驻智能合约的启动条件;
当所述常驻智能合约第一次被调用时,产生所述常驻智能合约的启动条件。
13.根据权利要求11所述的装置,其中,所述装置还包括:
进程关闭模块,用于在产生常驻智能合约的关闭条件时,将所述常驻智能合约在内存中存储的数据固化写入磁盘,关闭分配给所述常驻智能合约的虚拟机的进程和内存空间。
14.根据权利要求13所述的装置,其中,产生常驻智能合约的关闭条件包括下述至少一项:
在区块链系统在本机区块链节点关闭时,产生所述常驻智能合约的关闭条件;
在本机区块链节点的运行资源产生降级需求时,产生所述常驻智能合约的关闭条件,其中,所述运行资源包括内存资源或计算资源。
15.根据权利要求11所述的装置,其中,所述装置还包括:
进程挂起模块,用于在产生常驻智能合约的挂起条件时,为所述常驻进程保留进程句柄,将所述常驻智能合约在内存中存储的数据写入磁盘中的临时存储区,关闭分配给所述常驻智能合约的虚拟机的进程和内存空间。
16.根据权利要求11所述的装置,其中,所述跨合约调用接口基于进程间通信协议实现。
17.根据权利要求11-16任一所述的装置,其中,还包括:
第一数据更新模块,用于在启动进行当前区块处理时,将所述当前区块的区块依赖数据传输给所述常驻进程,以更新所述常驻进程内存空间中的数据,与当前区块中的数据一致。
18.根据权利要求11-16任一所述的装置,其中,还包括:
第二数据更新模块,用于通过所述虚拟机的跨合约调用接口,接收正常智能合约在区块生成周期内产生的数据访问请求的同时,通过所述跨合约调用接口获取正常智能合约传输的区块依赖数据并更新至所述常驻进程的内存空间中,以维持常驻智能合约内存空间中的数据与当前区块中的数据一致。
19.根据权利要求11-16任一所述的装置,其中,所述数据访问请求的访问对象包括区块链账户信息、事务请求计数值、区块计数值、和跨区块数据。
20.根据权利要求11-16任一所述的装置,其中,还包括:
第一回滚模块,用于在产生区块回滚事件时,通过区块链系统的主程序通知所述常驻进程,根据至少一个回滚区块的事务请求进行回滚操作,以更新所述常驻智能合约内存空间中的数据;或
第二数据更新模块,用于在产生区块回滚事件时,通过区块链系统的主程序通知所述常驻进程关闭并重新启动,以从磁盘中重新加载回滚后的区块数据。
21.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的区块链的智能合约实现方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-10中任一项所述的区块链的智能合约实现方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010677698.6A CN111562969B (zh) | 2020-07-15 | 2020-07-15 | 一种区块链的智能合约实现方法、装置、设备和介质 |
KR1020210045059A KR102485228B1 (ko) | 2020-07-15 | 2021-04-07 | 블록체인의 스마트 계약 구현 방법, 장치, 기기 및 매체 |
EP21179669.3A EP3860043A3 (en) | 2020-07-15 | 2021-06-16 | Method and apparatus for implementing smart contract based on blockchain |
US17/348,979 US20210311770A1 (en) | 2020-07-15 | 2021-06-16 | Method for implementing smart contract based on blockchain |
JP2021100850A JP7072103B2 (ja) | 2020-07-15 | 2021-06-17 | ブロックチェーンのスマートコントラクト実現方法、装置、機器及び媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010677698.6A CN111562969B (zh) | 2020-07-15 | 2020-07-15 | 一种区块链的智能合约实现方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111562969A CN111562969A (zh) | 2020-08-21 |
CN111562969B true CN111562969B (zh) | 2020-10-20 |
Family
ID=72072824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010677698.6A Active CN111562969B (zh) | 2020-07-15 | 2020-07-15 | 一种区块链的智能合约实现方法、装置、设备和介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210311770A1 (zh) |
EP (1) | EP3860043A3 (zh) |
JP (1) | JP7072103B2 (zh) |
KR (1) | KR102485228B1 (zh) |
CN (1) | CN111562969B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112906073A (zh) * | 2021-03-18 | 2021-06-04 | 上海能链众合科技有限公司 | 一种区块链机密计算通用模型的实现方法 |
CN113312429B (zh) * | 2021-06-22 | 2023-01-17 | 工银科技有限公司 | 区块链中的智能合约管理系统、方法、介质和产品 |
CN113626154A (zh) * | 2021-08-27 | 2021-11-09 | 鼎链数字科技(深圳)有限公司 | 区块链智能合约运行方法及系统 |
CN116805947B (zh) * | 2023-08-21 | 2023-11-10 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108734464A (zh) * | 2018-05-22 | 2018-11-02 | 上海璧碚符木数据科技有限公司 | 一种利用浏览器执行区块链计算任务的方法、装置和浏览器 |
CN109032706A (zh) * | 2018-07-16 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备和存储介质 |
US10425230B1 (en) * | 2019-03-01 | 2019-09-24 | Capital One Services, Llc | Identity and electronic signature verification in blockchain |
CN110309024A (zh) * | 2019-04-23 | 2019-10-08 | 网宿科技股份有限公司 | 数据处理系统及其执行数据处理任务的方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10447478B2 (en) * | 2016-06-06 | 2019-10-15 | Microsoft Technology Licensing, Llc | Cryptographic applications for a blockchain system |
US10402796B2 (en) * | 2016-08-29 | 2019-09-03 | Bank Of America Corporation | Application life-cycle transition record recreation system |
DE102017124735A1 (de) * | 2017-10-23 | 2019-04-25 | Volkswagen Aktiengesellschaft | Verfahren zur Reichweitenbestimmung eines Kraftfahrzeugs und Kraftfahrzeug |
JP7429015B2 (ja) * | 2018-03-29 | 2024-02-07 | ケーエヌエヌエックス コーポレーション | 更新可能なスマートコントラクト |
JP6684850B2 (ja) * | 2018-05-16 | 2020-04-22 | 株式会社日立製作所 | 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード |
US11323530B2 (en) * | 2018-06-06 | 2022-05-03 | International Business Machines Corporation | Proxy agents and proxy ledgers on a blockchain |
US10841213B2 (en) * | 2018-10-15 | 2020-11-17 | Moac Blockchain Tech Inc | Apparatus and method for communication between chains in a decentralized system |
CN111882745B (zh) * | 2018-10-26 | 2022-12-20 | 创新先进技术有限公司 | 对象选取方法及装置、电子设备 |
KR102237015B1 (ko) * | 2018-12-29 | 2021-04-07 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | 블록체인 상의 네이티브 계약을 구현하기 위한 시스템 및 방법 |
CN110096338B (zh) * | 2019-05-10 | 2021-12-14 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备及介质 |
-
2020
- 2020-07-15 CN CN202010677698.6A patent/CN111562969B/zh active Active
-
2021
- 2021-04-07 KR KR1020210045059A patent/KR102485228B1/ko active IP Right Grant
- 2021-06-16 EP EP21179669.3A patent/EP3860043A3/en active Pending
- 2021-06-16 US US17/348,979 patent/US20210311770A1/en active Pending
- 2021-06-17 JP JP2021100850A patent/JP7072103B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108734464A (zh) * | 2018-05-22 | 2018-11-02 | 上海璧碚符木数据科技有限公司 | 一种利用浏览器执行区块链计算任务的方法、装置和浏览器 |
CN109032706A (zh) * | 2018-07-16 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备和存储介质 |
US10425230B1 (en) * | 2019-03-01 | 2019-09-24 | Capital One Services, Llc | Identity and electronic signature verification in blockchain |
CN110309024A (zh) * | 2019-04-23 | 2019-10-08 | 网宿科技股份有限公司 | 数据处理系统及其执行数据处理任务的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3860043A2 (en) | 2021-08-04 |
US20210311770A1 (en) | 2021-10-07 |
EP3860043A3 (en) | 2021-12-29 |
KR102485228B1 (ko) | 2023-01-06 |
JP7072103B2 (ja) | 2022-05-19 |
KR20210046606A (ko) | 2021-04-28 |
JP2021153331A (ja) | 2021-09-30 |
CN111562969A (zh) | 2020-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111562969B (zh) | 一种区块链的智能合约实现方法、装置、设备和介质 | |
CN110780890B (zh) | 系统升级方法、装置、电子设备和介质 | |
EP3929825A1 (en) | Distributed training method and system, device and storage medium | |
EP3869336A1 (en) | Method and apparatus for processing development machine operation task, device and storage medium | |
CN111782365B (zh) | 定时任务处理方法、装置、设备及存储介质 | |
CN111290768B (zh) | 一种容器化应用系统的更新方法、装置、设备和介质 | |
CN110704162B (zh) | 物理机共享容器镜像的方法、装置、设备及存储介质 | |
CN112565356B (zh) | 数据存储方法、装置以及电子设备 | |
CN113364877B (zh) | 数据处理方法、装置、电子设备和介质 | |
CN111782147A (zh) | 用于集群扩缩容的方法和装置 | |
CN114327946A (zh) | 共享内存访问控制方法、装置、电子设备及自动驾驶车辆 | |
CN110737507B (zh) | 一种虚拟机迁移方法与装置 | |
CN111782341A (zh) | 用于管理集群的方法和装置 | |
CN113553216B (zh) | 数据恢复方法、装置、电子设备及存储介质 | |
CN111339187A (zh) | 基于智能合约的数据处理方法、装置、设备和存储介质 | |
CN111782357B (zh) | 标签控制方法及装置、电子设备和可读存储介质 | |
CN112527451B (zh) | 容器资源池的管理方法、装置、设备以及存储介质 | |
EP3859529A2 (en) | Backup management method and system, electronic device and medium | |
CN111858030B (zh) | 作业的资源处理方法、装置、电子设备及可读存储介质 | |
CN113608765A (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN112817992A (zh) | 执行更改任务的方法、装置、电子设备以及可读存储介质 | |
CN114168294B (zh) | 编译资源分配方法、装置、电子设备及存储介质 | |
CN113051122B (zh) | 性能数据获取方法、装置、电子设备和介质 | |
CN112527368B (zh) | 集群内核版本更新方法、装置、电子设备和存储介质 | |
CN111258954B (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 |