CN110995825B - 一种智能合约的发布方法、智能节点设备及存储介质 - Google Patents
一种智能合约的发布方法、智能节点设备及存储介质 Download PDFInfo
- Publication number
- CN110995825B CN110995825B CN201911201827.8A CN201911201827A CN110995825B CN 110995825 B CN110995825 B CN 110995825B CN 201911201827 A CN201911201827 A CN 201911201827A CN 110995825 B CN110995825 B CN 110995825B
- Authority
- CN
- China
- Prior art keywords
- contract
- intelligent contract
- intelligent
- node device
- node
- 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
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/3247—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 involving digital signatures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种智能合约的发布方法、智能节点设备及存储装置。其中,智能合约发布方法包括:接收第一用户终端发送的合约发布请求,合约发布请求携带智能合约,合约发布请求用于请求第一节点设备发布智能合约,智能合约是第一用户终端使用go语言编写得到的;将智能合约发送至各个第二节点设备,以使各个第二节点设备对智能合约进行共识,第二节点设备为区块链网络中除第一节点设备以外的其他节点设备;判断智能合约是否共识通过;若智能合约共识通过,则响应合约发布请求,通过第一节点设备的发布接口,将智能合约发布至区块链网络。该智能合约发布方法可提高发布的智能合约的编写语言的通用性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种智能合约的发布方法、智能节点设备及存储介质。
背景技术
目前,solodity是智能合约编程领域相对热门的编程语言,但其缺少相应的通用类库,且当前已经发现有不少语言级别的安全缺陷,容易带来一些安全风险,同时新的编程语言要得到广大开发人员的支持需要一定的时间,提高了学习智能合约的门槛。
为使智能合约的生态得到较好的发展,急需研究一种通用性高且发展成熟的开发语言来开发智能合约。
发明内容
本发明实施例提供了一种智能合约的发布方法、智能节点设备及存储介质,可以提高智能合约的编写语言的通用性。
第一方面,本发明实施例提供了一种智能合约发布方法,方法应用于第一节点设备,该方法包括:接收第一用户终端发送的合约发布请求,合约发布请求携带智能合约,合约发布请求用于请求第一节点设备发布所述智能合约,智能合约是第一用户终端使用go语言编写得到的;将智能合约发送至各个第二节点设备,以使各个第二节点设备对智能合约进行共识,第二节点设备为区块链网络中除第一节点设备以外的其他节点设备;判断智能合约是否共识通过;若智能合约共识通过,则响应合约发布请求,通过第一节点设备的发布接口,将智能合约发布至区块链网络。
在该技术方案中,第一节点设备在确定接收到的合约发布请求中携带的智能合约共识通过后,将智能合约发布至区块链网络中,所述智能合约是基于是第一用户终端使用go语言编写得到的,由于go语言对开发人员而言具有较高的通用性,因此该方法可提高智能合约的编写语言的通用性。
第二方面,本发明提供了一种智能合约发布装置,所述智能合约发布装置应用于第一节点设备,所述第一节点设备为区块链网络中的任一节点设备,所述装置包括:
接收模块,用于接收第一用户终端发送的合约发布请求,合约发布请求携带智能合约,合约发布请求用于请求第一节点设备发布智能合约,智能合约是第一用户终端使用go语言编写得到的;
发送模块,用于将智能合约发送至各个第二节点设备,以使各个第二节点设备对智能合约进行共识,第二节点设备为区块链网络中除第一节点设备以外的其他节点设备;
处理模块,用于判断智能合约是否共识通过;
处理模块,用于若智能合约共识通过,则响应合约发布请求,通过第一节点设备的发布接口,将智能合约发布至区块链网络。
第三方面,本发明实施例提供了一种智能节点设备,该设备包括存储器、处理器及通信接口,存储器存储一组程序代码,处理器调用存储器中存储的程序代码,用于执行第一方面所涉及到的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,用于储存为所述智能节点设备所用的计算机程序指令,其包含用于执行上述第一方面所涉及的程序。
通过实施本发明例,第一节点设备接收来自第一用户终端的合约发布请求,在确定合约发布请求中携带的智能合约共识通过后,将智能合约发布至区块链网络,所述智能合约是基于是第一用户终端使用go语言编写得到的。该智能合约发布方法发布了一种基于go语言的智能合约,由于go语言对开发人员而言具有较高的通用性,因此该方法可提高智能合约的编写语言的通用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种智能合约发布系统的架构示意图;
图2为本发明实施例提供的一种智能合约的发布方法的流程示意图;
图3为本发明实施例提供的另一种智能合约的发布方法的流程示意图;
图4为本发明实施例提供的一种智能合约的调用方法的流程示意图;
图5为本发明实施例提供的一种智能合约发布装置的结构示意图;
图6为本方面实施例提供的一种智能节点设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提出了一种智能合约的发布方法、智能节点设备及存储介质。该方法中,第一节点设备接收第一用户终端发送的合约发布请求,合约发布请求携带智能合约,合约发布请求用于请求第一节点设备发布智能合约,智能合约是第一用户终端使用go语言编写得到的;将智能合约发送至各个第二节点设备,以使各个第二节点设备对智能合约进行共识,第二节点设备为区块链网络中除第一节点设备以外的其他节点设备;判断智能合约是否共识通过;若智能合约共识通过,则响应合约发布请求,通过第一节点设备的发布接口,将智能合约发布至区块链网络。第一节点设备通过发布接口发布的智能合约是使用go语言编写得到的,该智能合约使得开发人员可以直接使用通用性较高的go语言进行编写,可提高智能合约的编写语言的通用性。
为了更好的理解本发明实施例公开的一种智能合约发布方法、智能节点设备及存储介质,下面首先对本发明实施例适用的系统的架构进行描述。
请参见图1,图1是本发明实施例提供的一种智能合约发布系统的架构示意图。如图1所示,该系统由区块链网络101、第一用户终端102、审核终端103、第二用户终端104组成,审核终端103的数量为多个,区块链网络101包括第一节点设备1011和第二节点设备1012,第二节点设备1012的数量为多个。第一节点设备1011、第二节点设备1012为区块链网络中的任一节点设备,第二节点设备1012为区块链网络中除第一节点设备1011以外的节点设备。第一节点设备可以接收第一用户终端发送的合约发布请求、将所述智能合约发送至各个第二节点设备等。第二节点设备可以根据审核通过请求对数字签名进行验签,得到验签结果。审核终端可以对智能合约进行审核,生成审核通过请求,并对审核通过请求进行处理,得到数字签名。第一用户终端可以使用go语言编写智能合约。第二用户终端可以向第一节点设备发送目标合约地址,请求第一用户终端调用插件。图1所示的系统架构仅用于示例,并不构成对本发明实施例的限定。
第一用户终端或第二用户终端可以包括但不限于:平板电脑、便携式个人计算机、移动互联网设备(Mobile Internet Devices,简称MID)等设备,这些终端设备具备网络通信等功能。本发明实施例不做限定。
审核终端是各个用户终端和各个节点设备共同认可的终端,审核终端具有对智能合约进行审核的资格。
区块链是一种分布式数据存储、共识机制和加密算法等计算机技术的新型应用模式,其本质上是一个去中心化的数据库;区块链可由多个借由密码学串接并保护内容的串连交易记录(又称区块)构成,用区块链所串接的分布式账本能让多方有效记录交易,且可永久查验此交易(不可篡改)。
基于上述描述,本发明实施例提出一种如图2所示的智能合约的发布方法的流程示意图,该智能合约的发布方法可以包括S201-S204:
S201:第一节点设备接收第一用户终端发送的合约发布请求,合约发布请求携带智能合约。
第一用户终端为区块链网络外的用户终端,当第一用户终端有发布新的智能合约需求时,调用第一节点设备的管理合约,通过管理合约部署的合约方法请求发布需要发布的智能合约,管理合约是部署在区块链中的所有节点设备上的,管理合约为bios。当第一用户终端调用管理合约时,第一节点设备会接收第一用户终端发送的合约发布请求,合约发布请求携带智能合约,合约发布请求用于请求第一节点设备发布智能合约,智能合约是第一用户终端使用go语言编写得到的,go语言对于开发人员而言,具有更高的通用性。
在一种实现方式中,第一节点设备接收到智能合约后,将智能合约编译成插件,插件的形式为动态链接文件,比如linux动态链接文件。
S202:第一节点设备将智能合约发送至各个第二节点设备。
第二节点设备为区块链网络中除所述第一节点设备以外的节点设备,第一节点设备接收到合约发布请求中的智能合约后,将智能合约发送给各个第二节点设备,以使各个第二节点设备对智能合约进行共识。
S203:第一节点设备判断智能合约是否共识通过。
第一节点设备将智能合约发送至各个第二节点设备后,各个第二节点设备对智能合约进行共识,因此第一节点设备根据各个第二节点设备的共识结果确定智能合约是否共识通过。
S204:若智能合约共识通过,则响应合约发布请求,通过第一节点设备的发布接口,将智能合约发布至区块链网络。
第一节点设备的发布接口位于第一节点设备中,第一节点设备确定智能合约共识通过后,通过发布接口将智能合约发布至区块链网络,以使区块链网络中的各个节点设备都可以调用该智能合约。
可见,在本发明实施例中,第一节点设备根据来自第一用户终端的合约发布请求,发布了所述合约发布请求中携带的智能合约,所述智能合约通过了区块链网络的共识,且智能合约是第一用户终端使用go语言编写得到的。该智能合约发布方法发布了一种基于go语言的智能合约,由于go语言对开发人员而言具有较高的通用性,因此该方法可提高智能合约的编写语言的通用性。
请参见图3,图3是本发明实施例提供的另一种智能合约的发布方法的流程示意图,该方法包括但不限于S301-S314。
S301:第一节点设备接收第一用户终端发送的合约发布请求,合约发布请求携带智能合约。
本申请实施例中的步骤S301具体可参见上述实施例中步骤S201的执行过程,本发明实施例不再赘述。
S302:第一节点设备将智能合约发送至各个第二节点设备。
第二节点设备为区块链网络中除所述第一节点设备以外的节点设备,第一节点设备接收到合约发布请求中的智能合约后,将智能合约发送给各个第二节点设备,以使各个第二节点设备对智能合约进行上链处理。但此时各个第二节点设备对智能合约进行上链处理后,不能直接调用此智能合约。
S303:多个审核终端调用第一节点设备中的管理合约,查询是否存在智能合约发布请求。
第一节点设备响应合约发布请求,发布合约之前,需要确定智能合约通过区块链网络的共识。审核终端为区块链网络外的用户终端,审核终端可以对智能合约进行审核,审核终端的数量为多个。当第一用户终端有发布智能合约需求时,会调用管理合约bios请求第一节点设备发布智能合约,因此在管理合约bios中有关于新的智能合约发布请求,审核终端可以每隔预设时间通过调用第一节点设备中的管理合约bios,查询管理合约bios中是否存在新的智能合约发布请求,预设时间是所有审核终端提前共同设定的。比如,预设时间可以设为五个小时,两天,十天,等等,在此不做限定。
多个审核终端每隔预设时间,通过调用第一节点设备中的管理合约bios,查询是否存在新的智能合约发布请求的方式可以确保各个审核终端会定时对新的智能合约发布请求中的智能合约进行审核,可提高第一节点设备发布智能合约的效率。
S304:若查询出存在新的智能合约发布请求,则审核终端下载智能合约,并对智能合约进行审核。
若审核终端每隔预设时间,通过调用第一节点设备的管理合约bios查询到存在智能合约发布请求,则在管理合约bios中下载智能合约,并对智能合约发布请求中的智能合约进行审核。
各个审核终端对智能合约的审核可以包括审核智能合约的语法正确性,通过检查智能合约是否存在漏洞或缺陷来检查智能合约的正确性。若智能合约的语法不存在漏洞或缺陷,则表明智能合约为正确的合约,审核终端对智能合约审核通过。通过这种方式,可以确保智能合约的正确性。
S305:针对任一审核终端,该审核终端对智能合约审核之后,生成审核通过请求。
针对所有审核终端中的任一审核终端,该审核终端对智能合约审核之后,生成审核通过请求,审核通过请求包括审核结果和本审核终端的账户地址,审核结果可以指示为审核通过或审核未通过,审核终端的账户地址是根据本审核终端的公钥得到的,审核终端的账户地址可以唯一标识此审核终端。
S306:审核终端对本审核终端生成的审核通过请求进行处理,得到数字签名。
审核终端生成审核通过请求之后,则使用本审核终端的私钥对本审核终端生成的审核通过请求进行处理,得到数字签名。审核终端的私钥是通过非对称加密算法得到的,其中,非对称加密算法可以包括但不限于:Elgamal算法(一种非对称加密算法)、Rabin算法(一种非对称加密算法)、Diddie-Hellman算法(一种非对称加密算法)、ECC算法(椭圆曲线加密算法)。各个审核终端使用自己的私钥对自己生成的审核通过请求进行处理,得到多个数字签名,数字签名与审核通过请求一一对应。
S307:第一节点设备接收审核终端发送的数字签名和审核通过请求。
审核终端得到数字签名后,将该数字签名和该审核终端生成的审核通过请求发送给第一节点设备。因此,第一节点设备接收审核终端发送的数字签名和审核通过请求。
S308:第一节点设备将数字签名和审核通过请求发送至各个第二节点设备。
第一节点设备接收到审核终端发送的数字签名和审核通过请求之后,将数字签名和审核通过请求发送至各个第二节点设备,以使各个第二节点设备根据审核通过请求对数字签名进行验签。
在一种实现方式中,第一节点设备将数字签名和审核通过请求发送至各个第二节点设备之前或之后,第一节点设备可以根据该数字签名对应的审核通过请求对数字签名进行校验。第一节点设备根据该数字签名对应的审核通过请求对数字签名的校验可提高数字签名的可信度。
第一节点设备根据该数字签名对应的审核通过请求对数字签名进行校验可以包括对该数字签名进行校验。区块链网络中的所有节点设备提前存储有每个审核终端的公钥,第一节点设备使用审核终端的公钥对数字签名进行处理,得到目标审核通过请求,将第一节点设备接收到的审核通过请求与所述目标审核通过请求进行对比,若第一节点设备接收到的审核通过请求与所述目标审核通过请求相同,表明第一节点设备接收到的审核通过请求未被篡改,则第一节点设备对数字签名校验通过。通过根据该校验,可以确定审核通过请求是否被篡改。
第一节点设备根据该数字签名对应的审核通过请求对数字签名进行校验还可以包括校验各个数字签名的发送方的身份信息,即校验各个审核终端的身份信息。第一节点设备使用审核终端的公钥对数字签名进行处理,得到目标审核通过请求,目标审核通过请求包括审核终端的目标账户地址,将第一节点设备本地存储的本审核终端的账户地址和所述目标账户地址进行对比,若第一节点设备存储的本审核终端的账户地址和所述目标账户地址相同,表明第一节点设备接收到的数字签名为所述审核终端发送的,则第一节点设备对数字签名校验通过。通过对数字签名发送方身份的校验,可使得第一节点设备知道具体为哪个审核终端对智能合约进行了审核,可提高审核终端对智能合约审核的可靠性。
S309:各个第二节点设备根据审核通过请求对数字签名进行验签,并生成验签结果。
为确保第一节点设备接收到的审核通过请求未被篡改且由对应的审核终端发送的,区块链网络中的各个第二节点设备需要根据审核通过请求对数字签名进行验签,并生成针对数字签名验签的验签结果。
各个第二节点设备根据审核通过请求对数字签名进行验签的过程和S308中第一节点设备根据审核通过请求对与之对应的数字签名进行校验的方法相同,在此不再赘述。各个第二节点设备对数字签名进行验签之后,不论验签通过还是验签未通过,都生成一个针对该数字签名的验签结果,验签结果可以指示为验签通过或验签未通过。
S310:第一节点设备接收各个第二节点设备发送的验签结果。
各个第二节点设备对数字签名进行验签之后,都生成一个针对该数字签名的验签结果,并将自己生成的验签结果发送至第一节点设备,因此第一节点设备接收各个第二节点设备发送的验签结果。
S311:当验签结果为验签通过的验签结果的数量等于第二节点设备的数量时,第一节点设备确定数字签名验签通过。
第一节点设备在接收到来自各个第二节点设备的验签结果为验签通过的验签结果的数量等于第二节点设备的数量时,表明各个第二节点设备都对数字签名验签通过,因此第一节点设备确定所述数字签名验签通过。该方式可确保第一节点设备确定的数字签名的验签结果可靠。
第一节点设备接收到另一审核终端发送的数字签名和审核通过请求时,处理过程如前,在此不再赘述。
S312:第一节点设备获取验签通过的数字签名对应的审核通过请求,并根据获取到的审核通过请求确定智能合约是否审核通过。
第一节点设备确定数字签名是否验签过后,获取验签通过的数字签名对应的审核通过请求,根据获取到的审核通过请求确定智能合约是否审核通过。具体的,第一节点设备获取到验签通过的数字签名对应的审核通过请求之后,确定这些审核通过请求中的审核结果指示的审核结果,若在这些审核通过请求中审核结果指示为审核通过的数量大于或等于第一预设阈值时,则确定智能合约审核通过。具体的,第一预设阈值为区块链网络中的各个节点设备共同预先设置的,比如,第一预设阈值可以为所有审核终端的总数量的二分之一,或者第一预设阈值可以为所有审核终端的总数量的三分之二,等等,在此不做限定。比如,审核终端的总数量为64个,各个节点设备共同设定的第一预设阈值为32,获取到的验签通过的数字签名对应的审核通过请求中审核结果指示为审核通过的数量为41个,审核结果指示为审核通过的数量大于第一预设阈值,则第一节点设备确定智能合约审核通过。
可选的,第一节点设备获取到验签通过的数字签名对应的审核通过请求之后,确定这些审核通过请求中的审核结果指示的审核结果,若审核结果指示为审核通过的数量大于审核未通过的数量,则确定智能合约审核通过。比如,所有审核终端的数量为124个,若第一节点设备获取到的审核通过请求中确定出审核结果指示为审核通过的数量为78个,审核结果指示为审核未通过的数量为46个,审核结果指示为审核通过的数量大于审核未通过的数量,则第一节点设备确定智能合约审核通过。
S313:若确定智能合约审核通过,则第一节点设备存储智能合约。
若第一节点设备确定智能合约审核通过,表明审核终端对智能合约审核通过,则第一节点设备在所述第一节点设备的本地存储智能合约,将智能合约以可执行的二进制文件的方式存在第一节点设备的文件系统中,可执行的二进制文件方式可以为.so文件方式。
S314:任一节点设备确定智能合约通过区块链网络的共识后,通过发布接口,将智能合约发布至区块链网络。
第一节点设备确定智能合约审核通过后,在本地存储该智能合约,并将针对智能合约的审核通过消息广播至区块链网络,以使各个节点设备都接收到关于第一节点设备对该智能合约审核通过消息。任一第二节点设备在接收到合约发布请求携带的智能合约后,对智能合约执行如第一节点设备执行的相同操作,包括审核终端通过调用节点设备的管理合约bios下载智能合约并对智能合约进行审核、除本第二节点设备外的节点设备根据审核终端生成的审核通过请求对数字签名进行验签等。任一第二节点设备对智能合约审核通过后,也将针对智能合约的审核通过消息广播至区块链网络。因此,对于区块链网络中的任一节点设备都会接收除本节点设备以外的多个节点设备发送的审核通过消息。
当区块链网络中的任一节点设备接收到的针对该智能合约的审核通过消息的数量大于或等于第二预设阈值时,该节点设备确定智能合约通过区块链网络的共识,然后通过发布接口,将智能合约发布至区块链网络中,发布接口位于该节点设备中。节点设备对智能合约的发布表明智能合约成功部署在了区块链网络中,任一节点设备可以在后续阶段对该智能合约进行调用。其中,第二预设阈值为区块链网络中的各个节点设备共同设定的,比如第二预设阈值可以为节点设备总数量的二分之一、节点设备总数量的三分之二等等。
在本发明实施例中,节点设备确定合约发布请求中携带的智能合约通过区块链网络的共识后,将智能合约发布在了区块链网络中,所述智能合约是基于是第一用户终端使用go语言编写得到的,该智能合约发布方法提高了智能合约的编写语言的通用性。同时,第一节点设备在发布智能合约之前,确定智能合约通过了区块链网络的共识,通过这种方式,可提高智能合约的可靠性。
图4为在S314之后还可以执行的步骤,可以包括:S401-S409。
S401:第一节点设备获取智能合约的合约信息,并对合约信息进行哈希运算,得到合约信息的合约地址。
智能合约的合约信息可以包括智能合约识别码和智能合约被调用的次数,智能合约识别码用于唯一识别智能合约。第一节点设备发布智能合约时,会根据预设规则生成一个智能合约识别码,预设规则是各个节点设备预先规定好的发布智能合约的规则,预设规则一旦设定,各个节点设备发布智能合约时都使用此预设规则。第一节点设备发布智能合约之后,智能合约会被其他节点设备或者用户终端进行调用,因此会产生智能合约被调用的次数。
因此,第一节点设备发布智能合约后,获取智能合约的合约信息,并对合约信息进行哈希运算,得到合约信息的合约地址,合约地址为第一节点设备对合约信息进行哈希运算得到的哈希值,合约地址用于唯一标识智能合约。
在一种实现方式中,第一节点设备对合约信息进行哈希运算,得到合约信息的合约地址后,第一节点设备还可以对智能合约进行哈希运算,得到智能合约的第一哈希值,其中,哈希算法可以包括但不限于SHA512算法、SHA224算法、SHA384算法等。然后第一节点设备建立合约地址和第一哈希值的对应关系,并将合约地址及其对应的第一哈希值存储在第一节点设备中。第一哈希值也可以用于唯一标识智能合约,将合约地址及其对应的第一哈希值存储在第一节点设备中,为后续第一节点设备调用智能合约时,根据第一哈希值对调用的智能合约进行校验提供了可能性。
S402:第一节点设备建立合约地址和合约文件路径的对应关系。
合约文件路径为智能合约在文件系统中的存储路径,智能合约与合约地址一一对应,第一节点设备建立合约地址与合约文件路径的对应关系,使得每个合约地址都有及其对应的合约文件路径。
S403:第一节点设备将合约地址及其对应的合约文件路径存储在所述第一节点设备。
由于S402中已经建立了合约地址和合约文件路径的对应关系,因此合约地址有其对应的合约文件路径,第一节点设备将合约地址及其对应的合约文件路径存储在所述第一节点设备,使得在后续查找智能合约时,可通过智能合约的合约地址找到对应的合约文件路径,进而找到合约地址标识的智能合约,该方法可以使得第一节点设备有目标地、高效地查找到合约标识对应的智能合约。
S404:第一节点设备通过虚拟机服务模块接收第二用户终端发送的目标合约地址。
虚拟机服务模块是运行在go语言环境中的,且虚拟机服务模块位于第一节点设备中。第二用户终端想要请求第一节点设备运行智能合约时,将目标合约地址发送至第一节点设备,第一节点设备通过虚拟机服务模块接收此目标合约地址。
S405:第一节点设备根据合约地址与合约文件路径的对应关系,查找目标合约地址对应的目标合约文件路径。
第一节点设备在接收到目标合约地址之后,调用插件之前,需要使用golangplugin提供的方法查找插件,再调用插件,golang plugin为提前集成在第一节点设备的插件,golang plugin用于加载和调用基于智能合约编译得到的插件。由于在S403中,第一节点设备将合约地址及其对应的合约文件路径存储在了第一节点设备,因此第一节点设备可以根据合约地址与合约文件路径的对应关系,快速的查找到目标合约地址对应的合约文件路径。
S406:第一节点设备根据合约文件路径在文件系统中查找目标智能合约。
第一节点设备根据上述步骤查找的合约文件路径在文件系统中查找目标智能合约,即确定出目标合约地址对应的目标智能合约。
S407:第一节点设备通过第一节点设备的调用接口调用插件,并通过运行插件以实现与第二用户终端之间的交互。
调用接口为第一节点设备中的接口,调用接口与发布智能合约时的发布接口可以为同一接口,也可以不为同一接口,在此不做限定。插件是第一节点设备对目标智能合约进行编写得到的,调用插件可以运行插件中的智能合约。第一节点设备使用golang plugin插件提供的方法通过第一节点设备的调用接口调用插件,并通过运行插件以实现与第二用户终端之间的交互,第一节点设备与第二用户终端之间的交互为通过运行智能合约,实现智能合约对应的方法。智能合约对应的方法与智能合约中的go语言决定,比如,所述方法可以为第二用户终端访问一个数据库,或者第一节点设备对第二用户终端进行扣费操作,等等,在此不做限定。
在一种实现方式中,第一节点设备使用golang plugin插件提供的方法通过调用接口调用插件之前,第一节点设备还可以对目标智能合约进行哈希运算,得到所述目标智能合约的第二哈希值,对目标智能合约进行哈希运算使用的哈希算法和S401中第一节点设备对智能合约进行哈希运算得到第一哈希值的哈希算法相同。然后,第一节点根据合约地址与第一哈希值的对应关系,查找目标合约地址对应的目标第一哈希值,并将第二哈希值与目标第一哈希值进行对比。若第二哈希值与目标第一哈希值相同,则第一节点设备通过第一节点设备的调用接口调用插件。该方式在调用插件之前,根据存储的目标第一哈希值对目标智能合约进行校验,校验存储在文件系统中的目标智能合约是否被篡改,可提高在第一节点设备中确定出的目标智能合约的可靠性。
S408:第一节点设备监测调用接口的资源消耗量。
其中,资源消耗量为智能合约在执行过程中消耗能量的一种表征方式,资源消耗量为gas,gas是按照调用接口的每个操作码和操作数的执行进行计费。第一节点设备的调用接口会消耗指定的资源消耗量,因此第一节点设备可以在智能合约执行过程中监测调用接口的资源消耗量,即gas。
S409:若监测到资源消耗量被消耗完,则第一节点设备控制虚拟机服务模块终止目标智能合约的执行。
智能合约在被执行过程中会消耗资源消耗量,资源消耗量gas是按照第一节点设备调用智能合约时的调用接口来进行计费,若第一节点设备在调用合约时指定的gas在执行过程中被消耗完毕,则控制虚拟机服务模块终止目标智能合约的执行。通过这种方式,可以避免出现第一节点设备瘫痪的情况。
在该实施例中,第一节点设备通过来自第二用户终端的目标合约地址查找到与目标合约地址对应的目标智能合约,并使用golang plugin插件提供的方法通过调用接口调用插件,运行智能合约。同时,在插件被运行时,第一节点设备获取调用接口的资源消耗量gas,若第一节点设备在调用合约时指定的gas在执行过程中被消耗完毕,则控制虚拟机服务模块终止目标智能合约的执行。该方式可确保插件中的智能合约不会被无限执行。
参见图5,图5是本发明实施例提供的一种智能合约发布装置的结构示意图,所述智能合约发布装置可以用于图2、图3和图4所示实施例中第一节点设备所执行的步骤,所述智能合约发布装置50可以包括:
接收模块501,用于接收第一用户终端发送的合约发布请求,合约发布请求携带智能合约,合约发布请求用于请求第一节点设备发布智能合约,智能合约是第一用户终端使用go语言编写得到的;
发送模块502,用于将智能合约发送至各个第二节点设备,以使各个第二节点设备对智能合约进行共识,第二节点设备为区块链网络中除第一节点设备以外的其他节点设备;
处理模块503,用于判断智能合约是否共识通过;
处理模块503,用于若智能合约共识通过,则响应合约发布请求,通过第一节点设备的发布接口,将智能合约发布至区块链网络。
在一种实现方式中,处理模块503,还用于判断智能合约是否审核通过;若智能合约审核通过,则存储智能合约,并触发执行判断智能合约是否共识通过。
在一种实现方式中,接收模块501,还用于接收任一审核终端发送的数字签名和审核通过请求,审核通过请求是审核终端对智能合约进行审核后生成的,智能合约是审核终端通过调用第一节点设备中的管理合约下载得到的,数字签名是审核终端对审核通过请求进行处理得到的;
发送模块502,还用于将数字签名和审核通过请求发送至各个第二节点设备,以使各个第二节点设备根据审核通过请求对数字签名进行验签,得到验签结果,验签结果用于指示验签通过或验签不通过;
接收模块501,还用于接收各个第二节点设备发送的验签结果,当验签结果为验签通过的验签结果的数量等于第二节点设备的数量时,确定数字签名验签通过;
处理模块503,还用于获取各个验签通过的数字签名对应的审核通过请求,并根据获取到的审核通过请求,确定智能合约是否审核通过。
在一种实现方式中,接收模块501,还用于接收多个第二节点设备发送的针对智能合约的审核通过消息,审核通过消息是第二节点设备确定智能合约审核通过后生成的;
处理模块503,还用于根据审核通过消息,判断智能合约是否共识通过。
在一种实现方式中,处理模块503,还用于获取智能合约的合约信息,不同智能合约对应不同合约信息;
处理模块503,还用于对合约信息进行哈希运算,得到合约信息的合约地址,合约地址用于标识所述智能合约;
处理模块503,还用于建立合约地址与合约文件路径的对应关系,合约文件路径为智能合约在文件系统中的存储路径,智能合约存储在文件系统中;
处理模块503,还用于将合约地址及其对应的合约文件路径存储在第一节点设备。
在一种实现方式中,接收模块501,还用于通过虚拟机服务模块接收第二用户终端发送的目标合约地址,虚拟机服务模块是运行在go语言环境中的,虚拟机服务模块位于第一节点设备中;
处理模块503,还用于根据合约地址与合约文件路径的对应关系,查找目标合约地址对应的目标合约文件路径;
处理模块503,还用于根据目标合约文件路径在文件系统中查找目标智能合约;
处理模块503,还用于通过第一节点设备的调用接口调用插件,并通过运行插件以实现与第二用户终端之间的交互,插件是第一节点设备对目标智能合约进行编译得到的。
在一种实现方式中,处理模块503,还用于对智能合约进行哈希运算,得到智能合约的第一哈希值;
处理模块503,还用于建立合约地址和第一哈希值的对应关系;
处理模块503,还用于将合约地址及其对应的第一哈希值存储在第一节点设备。
在一种实现方式中,处理模块503,还用于对目标智能合约进行哈希运算,得到目标智能合约的第二哈希值;
处理模块503,还用于根据合约地址与第一哈希值的对应关系,查找目标合约地址对应的目标第一哈希值,并将第二哈希值与目标第一哈希值进行对比;
处理模块503,还用于若第二哈希值与目标第一哈希值相同,则触发执行通过第一节点设备的调用接口调用插件。
在一种实现方式中,处理模块503,还用于监测所述调用接口的资源消耗量;
处理模块503,还用于若监测到所述资源消耗量被消耗完,则控制所述虚拟机服务模块终止所述目标智能合约的执行。
根据本申请的实施例,图5所示的智能合约的发布装置中的各个模块可以分别或全部合并为一个或若干个另外的模块来构成,或者其中的某个(些)模块还可以再拆分为功能上更小的多个模块来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个模块来实现,或者多个模块的功能由一个模块实现。在本申请的其它实施例中,也可以包括其它模块,在实际应用中,这些功能也可以由其它模块协助实现,并且可以由多个模块协作实现,本申请不做限定。
请参见图6,图6是本发明实施例提供的一种智能节点设备的结构示意图,该智能节点设备60包括处理器601、存储器602、通信接口603,所述处理器601、所述存储器602、所述通信接口603通过一条或多条通信总线连接。
处理器601被配置为支持智能节点设备执行图2、图3和图4所示实施例中第一节点设备相应的功能。该处理器601可以是中央处理器(central processingunit,CPU),网络处理器(network processor,NP),硬件芯片或者其任意组合。
所述处理器601可以是中央处理器(central processing unit,CPU)。所述处理器601还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)等。上述PLD可以是现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)等。
存储器602用于存储程序代码等。存储器602可以包括易失性存储器(volatilememory),例如随机存取存储器(random access memory,RAM);存储器602也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器602还可以包括上述种类的存储器的组合。
在本发明实施例中,该智能节点设备60包括多个通信接口,其中,用于发送数据的通信接口和用于接收数据的通信接口可以不为同一个通信接口。
处理器601可以调用存储器602中存储的程序代码以执行以下操作:
通信接口603接收第一用户终端发送的合约发布请求,合约发布请求携带智能合约,合约发布请求用于请求第一节点设备发布智能合约,智能合约是第一用户终端使用go语言编写得到的;
通信接口603将智能合约发送至各个第二节点设备,以使各个第二节点设备对智能合约进行共识,第二节点设备为区块链网络中除第一节点设备以外的其他节点设备;
处理器601判断智能合约是否共识通过;
若智能合约共识通过,则处理器601响应合约发布请求,通过第一节点设备的发布接口,将智能合约发布至区块链网络。
在一种实现方式中,处理器601具体执行以下步骤:
判断智能合约是否审核通过;
若智能合约审核通过,则存储智能合约,并触发执行判断智能合约是否共识通过。
在一种实现方式中,处理器601具体执行以下步骤:
通过通信接口603接收任一审核终端发送的数字签名和审核通过请求,审核通过请求是审核终端对智能合约进行审核后生成的,智能合约是审核终端通过调用第一节点设备中的管理合约下载得到的,数字签名是审核终端对审核通过请求进行处理得到的;
通过通信接口603将数字签名和审核通过请求发送至各个第二节点设备,以使各个第二节点设备根据审核通过请求对数字签名进行验签,得到验签结果,验签结果用于指示验签通过或验签不通过;
通过通信接口603接收各个第二节点设备发送的验签结果,当所述验签结果为验签通过的验签结果的数量等于所述第二节点设备的数量时,确定所述数字签名验签通过;
获取各个验签通过的数字签名对应的审核通过请求,并根据获取到的审核通过请求,确定智能合约是否审核通过。
在一种实现方式中,处理器601具体执行以下步骤:
通过通信接口603接收多个第二节点设备发送的针对智能合约的审核通过消息,审核通过消息是第二节点设备确定智能合约审核通过后生成的;
根据审核通过消息,判断智能合约是否共识通过。
在一种实现方式中,处理器601具体执行以下步骤:
通信接口603获取智能合约的合约信息,不同智能合约对应不同合约信息;
对合约信息进行哈希运算,得到合约信息的合约地址,合约地址用于标识智能合约;
建立合约地址与合约文件路径的对应关系,合约文件路径为智能合约在文件系统中的存储路径,智能合约存储在文件系统中;
将合约地址及其对应的合约文件路径存储在第一节点设备。
在一种实现方式中,处理器601具体执行以下步骤:
通过通信接口603虚拟机服务模块接收第二用户终端发送的目标合约地址,虚拟机服务模块是运行在go语言环境中的,虚拟机服务模块位于第一节点设备中;
根据合约地址与合约文件路径的对应关系,查找目标合约地址对应的目标合约文件路径;
根据目标合约文件路径在文件系统中查找目标智能合约;
通过第一节点设备的调用接口调用插件,并通过运行插件以实现与第二用户终端之间的交互,插件是第一节点设备对目标智能合约进行编译得到的。
在一种实现方式中,处理器601具体执行以下步骤:
对智能合约进行哈希运算,得到智能合约的第一哈希值;
建立合约地址和第一哈希值的对应关系;
将合约地址及其对应的第一哈希值存储在第一节点设备。
在一种实现方式中,处理器601具体执行以下步骤:
对目标智能合约进行哈希运算,得到目标智能合约的第二哈希值;
根据合约地址与第一哈希值的对应关系,查找目标合约地址对应的目标第一哈希值,并将第二哈希值与目标第一哈希值进行对比;
若第二哈希值与目标第一哈希值相同,则触发执行通过第一节点设备的调用接口调用插件。
在一种实现方式中,处理器601具体执行以下步骤:
监测调用接口的资源消耗量;
若监测到资源消耗量被消耗完,则控制虚拟机服务模块终止目标智能合约的执行。
本发明实施例还提供一种计算机可读存储介质,可以用于存储图2、图3和图4所示实施例中第一节点设备所用的计算机软件指令,其包含用于执行上述实施例中为第一节点设备所设计的程序。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明的部分实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (11)
1.一种智能合约的发布方法,其特征在于,所述方法应用于第一节点设备,所述第一节点设备为区块链网络中的任一节点设备,所述方法包括:
接收第一用户终端发送的合约发布请求,所述合约发布请求携带智能合约,所述合约发布请求用于请求所述第一节点设备发布所述智能合约,所述智能合约是所述第一用户终端使用go语言编写得到的;
将所述智能合约发送至各个第二节点设备,以使各个所述第二节点设备对所述智能合约进行共识,所述第二节点设备为所述区块链网络中除所述第一节点设备以外的其他节点设备;
判断所述智能合约是否共识通过;
若所述智能合约共识通过,则响应所述合约发布请求,通过所述第一节点设备的发布接口,将所述智能合约发布至所述区块链网络;
获取所述智能合约的合约信息,不同智能合约对应不同合约信息;
对所述合约信息进行哈希运算,得到所述合约信息的合约地址,所述合约地址用于标识所述智能合约;
建立所述合约地址与合约文件路径的对应关系,所述合约文件路径为所述智能合约在文件系统中的存储路径,所述智能合约存储在所述文件系统中;
将所述合约地址及其对应的合约文件路径存储在所述第一节点设备。
2.根据权利要求1所述的方法,其特征在于,所述判断所述智能合约是否共识通过之前,还包括:
判断所述智能合约是否审核通过;
若所述智能合约审核通过,则存储所述智能合约,并触发执行判断所述智能合约是否共识通过。
3.根据权利要求2所述的方法,其特征在于,所述判断所述智能合约是否审核通过,包括:
接收任一审核终端发送的数字签名和审核通过请求,所述审核通过请求是所述审核终端对所述智能合约进行审核后生成的,所述智能合约是所述审核终端通过调用所述第一节点设备中的管理合约下载得到的,所述数字签名是所述审核终端对所述审核通过请求进行处理得到的;
将所述数字签名和所述审核通过请求发送至各个所述第二节点设备,以使各个所述第二节点设备根据所述审核通过请求对所述数字签名进行验签,得到验签结果,所述验签结果用于指示验签通过或验签不通过;
接收各个所述第二节点设备发送的所述验签结果,当所述验签结果为验签通过的验签结果的数量等于所述第二节点设备的数量时,确定所述数字签名验签通过;
获取各个验签通过的数字签名对应的审核通过请求,并根据所述获取到的审核通过请求,确定所述智能合约是否审核通过。
4.根据权利要求1所述的方法,其特征在于,所述判断所述智能合约是否共识通过,包括:
接收多个所述第二节点设备发送的针对所述智能合约的审核通过消息,所述审核通过消息是所述第二节点设备确定所述智能合约审核通过后生成的;
根据所述审核通过消息,判断所述智能合约是否共识通过。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过虚拟机服务模块接收第二用户终端发送的目标合约地址,所述虚拟机服务模块是运行在go语言环境中的,所述虚拟机服务模块位于所述第一节点设备中;
根据所述合约地址与所述合约文件路径的对应关系,查找所述目标合约地址对应的目标合约文件路径;
根据所述目标合约文件路径在文件系统中查找目标智能合约;
通过所述第一节点设备的调用接口调用插件,并通过运行所述插件以实现与所述第二用户终端之间的交互,所述插件是所述第一节点设备对所述目标智能合约进行编译得到的。
6.根据权利要求5所述的方法,其特征在于,所述对所述合约信息进行哈希运算,得到所述合约信息的合约地址之后,还包括:
对所述智能合约进行哈希运算,得到所述智能合约的第一哈希值;
建立所述合约地址和所述第一哈希值的对应关系;
将所述合约地址及其对应的第一哈希值存储在所述第一节点设备。
7.根据权利要求6所述的方法,其特征在于,所述通过所述第一节点设备的调用接口调用插件之前,还包括:
对所述目标智能合约进行哈希运算,得到所述目标智能合约的第二哈希值;
根据所述合约地址与所述第一哈希值的对应关系,查找所述目标合约地址对应的目标第一哈希值,并将所述第二哈希值与所述目标第一哈希值进行对比;
若所述第二哈希值与所述目标第一哈希值相同,则触发执行通过所述第一节点设备的调用接口调用插件。
8.根据权利要求5-7任一所述的方法,其特征在于,所述方法还包括:
监测所述调用接口的资源消耗量;
若监测到所述资源消耗量被消耗完,则控制所述虚拟机服务模块终止所述目标智能合约的执行。
9.一种智能节点设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-8任一项所述的方法。
10.一种智能合约发布装置,其特征在于,所述装置包括用于执行如权利要求1-8任一项所述的方法的模块。
11.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被智能节点设备执行时使所述智能节点设备执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911201827.8A CN110995825B (zh) | 2019-11-29 | 2019-11-29 | 一种智能合约的发布方法、智能节点设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911201827.8A CN110995825B (zh) | 2019-11-29 | 2019-11-29 | 一种智能合约的发布方法、智能节点设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110995825A CN110995825A (zh) | 2020-04-10 |
CN110995825B true CN110995825B (zh) | 2022-08-26 |
Family
ID=70088468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911201827.8A Active CN110995825B (zh) | 2019-11-29 | 2019-11-29 | 一种智能合约的发布方法、智能节点设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110995825B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112215706B (zh) * | 2020-09-17 | 2023-06-30 | 中国科学院计算技术研究所数字经济产业研究院 | 分布式智能合约系统及实现方法 |
CN112417514B (zh) * | 2020-10-30 | 2024-04-05 | 迅鳐成都科技有限公司 | 基于电子合约的多方数据协作方法、系统及存储介质 |
CN112583608B (zh) * | 2021-02-24 | 2021-05-28 | 浙江口碑网络技术有限公司 | 协作处理方法、装置及设备 |
CN114117553B (zh) * | 2022-01-28 | 2022-04-15 | 北京豪尔赛智慧城域科技有限公司 | 基于区块链的物联网终端的控制方法和系统 |
CN117690569B (zh) * | 2024-02-04 | 2024-05-28 | 中国人民解放军总医院第六医学中心 | 耗材供应链透明化管理方法和耗材供应链透明化平台 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559211A (zh) * | 2016-11-22 | 2017-04-05 | 中国电子科技集团公司第三十研究所 | 一种区块链中隐私保护智能合约方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341702B (zh) * | 2017-03-08 | 2020-06-23 | 创新先进技术有限公司 | 一种业务处理的方法及装置 |
CN108062671A (zh) * | 2017-11-03 | 2018-05-22 | 深圳市轱辘车联数据技术有限公司 | 数据交易方法、区块链节点服务器及数据提交终端 |
CN109032706B (zh) * | 2018-07-16 | 2022-10-11 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备和存储介质 |
CN110233823A (zh) * | 2019-05-06 | 2019-09-13 | 深圳壹账通智能科技有限公司 | 区块链实现方法、系统及存储介质 |
-
2019
- 2019-11-29 CN CN201911201827.8A patent/CN110995825B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559211A (zh) * | 2016-11-22 | 2017-04-05 | 中国电子科技集团公司第三十研究所 | 一种区块链中隐私保护智能合约方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110995825A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110995825B (zh) | 一种智能合约的发布方法、智能节点设备及存储介质 | |
KR20190111037A (ko) | 컨소시엄 블록체인에 의한 스마트 계약 업그레이드 방법 및 시스템 | |
US11221838B2 (en) | Hot update method, operating system, terminal device, system, and computer-readable storage medium for a system process | |
CN109800160B (zh) | 机器学习系统中的集群服务器故障测试方法和相关装置 | |
CN108628743B (zh) | 应用程序测试方法、装置、设备及存储介质 | |
CN103164523A (zh) | 数据一致性检查方法、装置及系统 | |
CN104199654A (zh) | 开放平台的调用方法及装置 | |
CN110795128B (zh) | 一种程序漏洞修复方法、装置、存储介质及服务器 | |
CN109995523B (zh) | 激活码管理方法及装置、激活码生成方法及装置 | |
CN109508295B (zh) | 区块链共识算法测试方法、装置、计算装置和存储介质 | |
CN111880826A (zh) | 云业务应用升级方法、装置、电子设备和存储介质 | |
CN112558946A (zh) | 一种生成代码的方法、装置、设备和计算机可读存储介质 | |
CN108460273B (zh) | 一种终端的应用管理方法、应用服务器及终端 | |
CN113177001A (zh) | 一种开源组件的漏洞检测方法及装置 | |
CN112714158A (zh) | 事务处理方法、中继网络、跨链网关、系统、介质和设备 | |
CN111598575A (zh) | 业务流程控制方法、装置、电子设备和可读存储介质 | |
CN104050054A (zh) | 安装包安装失败的处理方法及原因确定方法及装置 | |
CN103885798A (zh) | 一种数据处理方法及电子设备 | |
CN113961199A (zh) | 一种模型部署系统、方法、装置及存储介质 | |
WO2020233044A1 (zh) | 一种插件校验方法、设备、服务器及计算机可读存储介质 | |
CN115964721A (zh) | 一种程序验证方法及电子设备 | |
CN112732676B (zh) | 基于区块链的数据迁移方法、装置、设备及存储介质 | |
US20220200807A1 (en) | Device attestation | |
CN114237687A (zh) | 软件版本的获取方法、系统、电子设备和存储介质 | |
CN113592645A (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 |