CN112596754A - 区块链智能合约部署方法及装置 - Google Patents
区块链智能合约部署方法及装置 Download PDFInfo
- Publication number
- CN112596754A CN112596754A CN202110223706.4A CN202110223706A CN112596754A CN 112596754 A CN112596754 A CN 112596754A CN 202110223706 A CN202110223706 A CN 202110223706A CN 112596754 A CN112596754 A CN 112596754A
- Authority
- CN
- China
- Prior art keywords
- contract
- target
- intelligent contract
- image
- target intelligent
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Abstract
本申请涉及一种区块链智能合约部署方法及装置,属于区块链技术领域,该方法包括:区块链服务平台接收合约配置请求后,向区块链网络标识对应目标区块链网络中的各个区块链节点下发目标智能合约的合约信息,以使区块链节点将合约信息存储至本地,合约信息至少包括镜像下载地址;区块链服务平台在接收合约部署请求后,向区块链节点发送安装运行指令,以使区块链节点基于本地所存储的镜像下载地址,从合约资源池获取得到目标合约镜像,并安装和运行目标合约镜像。本申请通过将智能合约的线下部署方式转换成线上部署,能够避免每个区块链节点独立编译合约镜像,防止智能合约被篡改,提升部署智能合约的效率和安全性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链智能合约部署方法及装置。
背景技术
区块链具有去中心化、不可篡改、集体维护以及高可靠性等特点,这些特点为区块链创造信任奠定了基础,从而使得基于区块链的智能合约能够高效地运行。在一些区块链网络中,若要在目标组织中部署智能合约,则需要将智能合约的合约代码线下传递给目标组织的各个组织成员。例如fabric网络,智能合约在fabric的实现称之为链码,链码的安装和运行大致分为安装合约代码、编译合约镜像以及运行合约容器三个阶段。在fabric网络中每个组织的各个区块链节点在安装和运行智能合约都必不可少的需要经过这三个阶段,因此合约代码需要共享给所有的组织成员,并由组织成员各自安装。
由此可见,合约代码存在线下传递的过程,并且每个区块链节点都需要独立编译合约镜像,智能合约的安装效率低;而且此种模式下,需要通过区块链网络中各组织成员的审计达成一致后方可发布,使得合约代码需要以开源的方式暴露给联盟链内的所有组织成员,除发布效率低外,智能合约在传输过程中也很容易被篡改,致使智能合约的安全性得不到保障。
发明内容
本申请提供一种区块链智能合约部署方法及装置,能够避免每个区块链节点独立编译合约镜像,防止智能合约被篡改,提升部署智能合约的效率和安全性。
一方面,本申请提供了一种区块链智能合约部署方法,所述方法包括:
接收合约配置请求,所述合约配置请求携带区块链网络标识和目标智能合约的配置信息,所述配置信息至少包括镜像下载地址;
基于所述区块链网络标识确定目标区块链网络;
向所述目标区块链网络中的各个区块链节点下发所述目标智能合约的合约信息,以使所述区块链节点将所述目标智能合约的合约信息存储至本地,所述合约信息至少包括所述镜像下载地址;
接收合约部署请求,所述合约部署请求用于指示将所述目标智能合约部署至所述目标区块链网络中的各个区块链节点;
向所述各个区块链节点发送针对所述目标智能合约的安装运行指令,以使所述各个区块链节点基于本地所存储的所述目标智能合约的镜像下载地址,从合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像,并安装和运行所述目标合约镜像;其中,所述目标智能合约对应的合约镜像是以二进制方式存储于所述合约资源池中的。
另一方面提供了一种区块链智能合约部署方法,所述方法包括:
接收区块链服务平台下发的目标智能合约的合约信息,将所述目标智能合约的合约信息存储至本地,所述合约信息至少包括镜像下载地址;
接收针对所述目标智能合约的安装运行指令,基于本地所存储的所述目标智能合约的镜像下载地址,从合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像;其中,所述目标智能合约对应的合约镜像是以二进制方式存储于所述合约资源池中的;
安装和运行所述目标合约镜像。
另一方面提供了一种区块链智能合约部署装置,所述装置包括:
第一请求接收模块,用于接收合约配置请求,所述合约配置请求携带区块链网络标识和目标智能合约的配置信息,所述配置信息至少包括镜像下载地址;
目标网络确定模块,用于基于所述区块链网络标识确定目标区块链网络;
配置下发模块,用于向所述目标区块链网络中的各个区块链节点下发所述目标智能合约的合约信息,以使所述区块链节点将所述目标智能合约的合约信息存储至本地,所述合约信息至少包括所述镜像下载地址;
第二请求接收模块,用于接收合约部署请求,所述合约部署请求用于指示将所述目标智能合约部署至所述目标区块链网络中的各个区块链节点;
指令下发模块,用于向所述各个区块链节点发送针对所述目标智能合约的安装运行指令,以使所述各个区块链节点基于本地所存储的所述目标智能合约的镜像下载地址,从合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像,并安装和运行所述目标合约镜像;其中,所述目标智能合约对应的合约镜像是以二进制方式存储于所述合约资源池中的。
另一方面提供了一种区块链智能合约部署装置,所述装置包括:
配置接收模块,用于接收区块链服务平台下发的目标智能合约的合约信息,将所述目标智能合约的合约信息存储至本地,所述合约信息至少包括镜像下载地址;
指令处理模块,用于接收针对所述目标智能合约的安装运行指令,基于本地所存储的所述目标智能合约的镜像下载地址,从合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像;其中,所述目标智能合约对应的合约镜像是以二进制方式存储于所述合约资源池中的;
镜像部署模块,用于安装和运行所述目标合约镜像。
本申请提供的区块链智能合约部署方法和装置,通过将智能合约发布在合约资源池,使得智能合约的线下部署方式转为线上部署,更有利于智能合约的共享和传播;在安装前将目标智能合约的合约信息下发至区块链节点,区块链节点在接收到安装运行指令后,可以直接从本地获取目标智能合约的合约信息,然后基于合约信息从合约资源池获取目标智能合约对应的合约镜像,而不需要每个区块链节点单独编译合约镜像,避免由于所有区块链节点重复编译合约镜像所引起的开销,提升部署智能合约的效率;由于合约镜像是以二进制方式存储于合约资源池中的,解决了智能合约在线下以源码方式直接传输所带来的安全性问题,可以防止智能合约被篡改,提升部署智能合约的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种区块链智能合约部署系统的结构示意图。
图2是本申请实施例提供的一种区块链智能合约部署系统的架构示意图。
图3是本申请实施例提供的一种区块链智能合约部署方法的时序图。
图4是本申请实施例提供的一种区块链智能合约部署方法的流程示意图。
图5是本申请实施例提供的另一种区块链智能合约部署方法的流程示意图。
图6是本申请实施例提供的用户认证的流程示意图。
图7是本申请实施例提供的另一种区块链智能合约部署方法的流程示意图。
图8是本申请实施例提供的另一种区块链智能合约部署方法的流程示意图。
图9是本申请实施例提供的获取目标合约镜像的流程示意图。
图10是本申请实施例提供的安装目标合约镜像的检测流程示意图。
图11是本申请实施例提供的运行目标合约镜像的检测流程示意图。
图12是本申请实施例提供的一种区块链智能合约部署装置的结构示意图。
图13是本申请实施例提供的另一种区块链智能合约部署装置的结构示意图。
图14是本申请实施例提供的一种用于实现本申请实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
本申请实施例的技术方案涉及区块链技术中的智能合约领域。智能合约是区块链技术中承载核心业务的关键代码实现,在区块链产业化过程中,智能合约将逐渐通用化、复杂化以及产业化,智能合约的数字资产价值将不断提升。
为了提高智能合约部署的便捷性和安全性,本申请实施例提供了一种区块链智能合约部署方法,以提高智能合约部署的便捷性和安全性。为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,其示出了本申请实施例提供的一种区块链智能合约部署系统的结构示意图。如图1所示,该系统可以至少包括区块链服务平台10、合约资源池20和多个区块链节点30(图中采用30a、30b,……,30n来示出)。其中,区块链服务平台10表征负责管理区块链网络和智能合约生命周期的服务平台,合约资源池20表征为智能合约提供发布、浏览和下载等服务的在线平台,区块链节点30表征负责区块链网络共识和维护账本数据的节点。
合约资源池20中存储有多个智能合约对应的合约镜像,且每个合约镜像都是以二进制方式存储的。用户可以在合约资源池20中选择所需要的智能合约对应的合约镜像,然后在区块链服务平台10配置下载合约镜像所需的配置信息。区块链服务平台10可以将配置信息提前下发至目标区块链网络中各个区块链节点30,以使各个区块链节点将配置信息存储至本地。当用户通过区块链服务平台10触发在目标区块链网络中各个区块链节点30中安装智能合约时,区块链节点30可以直接从本地获取预先存储的配置信息,然后从合约资源池20中获取得到智能合约对应的合约镜像,从而实现智能合约的安装和运行。
具体请参阅图2,其示出了区块链智能合约部署系统的架构示意图。如图2所示,区块链节点中设置有合约安装模块、合约客户端和合约容器,区块链服务平台中设置有合约管理模块和合约认证模块,合约资源池中设置有合约镜像仓库、合约浏览模块和用户管理模块。
用户可以通过合约资源池的用户管理模块注册用户账户并上传用户证书,然后通过合约资源池的合约浏览模块浏览并测试智能合约是否满足自身业务需求,在确定满足自身业务需求的情况下,将所确定的目标智能合约提交至合约浏览模块。合约浏览模块将目标智能合约以二进制的形式打包成唯一的合约镜像存储至合约镜像仓库,并使用预设哈希算法对合约镜像做哈希运算,生成目标镜像哈希值,使用该目标镜像哈希值对合约镜像进行唯一性标识。
其中,用户可以是区块链应用开发商或者智能合约开发者等需要使用智能合约的对象;用户证书通常可以采用SSL证书等对用户进行唯一性识别的标识;预设哈希算法可以是SHA(Secure Hash Algorithm,安全哈希算法)或者MD5(Message-Digest Algorithm 5,消息摘要算法第5版)等等,在此不做具体限定。当用户是智能合约开发者时,开发者能够在合约资源池对智能合约进行线上发布,并授权和收费,以发挥区块链智能合约的资产效应和推广价值。
为了体现智能合约资产的价值,合约资源池的所有合约镜像都可以要求用户缴纳相应的许可(license)费后方可使用。用户可以通过用户管理模块完成对目标智能合约对应的合约镜像的许可费的缴纳;在缴纳成功后,合约资源池将把用户证书和合约许可信息注册到合约镜像仓库,只有注册过用户证书和合约许可信息的用户才可以从合约镜像仓库下载合约镜像。
通过许可费的方式,强调智能合约的资产属性,保护智能合约开发者的知识产权,鼓励第三方开发者参与到智能合约的开发中去;而且智能合约开发者可以根据各行业的业务逻辑特征专注于开发通用型智能合约,并通过合约资源池发布,进而推动区块链技术的产业化发展。而对于区块链业务开发商而言,通过使用合约资源池中所存储的合约镜像,然后聚焦于其上层业务开发而减少智能合约开发成本;对于较复杂的业务逻辑,区块链业务开发商甚至可以通过合约资源池的多个合约镜像组装成其需要的业务逻辑。由此可见,将智能合约的线下发布转为线上发布,极大的促进智能合约的创造性、共享性以及流通性,可以提高区块链应用的开发效率。
用户在完成许可费的缴纳后,可以在区块链服务平台配置安装目标智能合约的目标区块链网络、目标智能合约的用户信息以及配置信息,例如用户账户信息、与用户证书对应的用户私钥、镜像下载地址、目标镜像哈希值等等。区块链服务平台在对目标智能合约的安装前,可以将目标智能合约的配置信息作为合约信息下发至目标区块链网络中的各个区块链节点,或者基于用户信息进行用户认证,将用户认证结果和配置信息共同作为合约信息下发至各个区块链节点,以使区块链节点将合约信息存储至本地。
当用户在区块链服务平台触发对目标智能合约的部署时,区块链服务平台可以向区块链节点发送安装运行指令;区块链节点接收到安装运行指令后,可以直接从本地获取目标智能合约的合约信息,然后从合约资源池中获取目标智能合约对应的合约镜像。
以下以上述系统为执行主体介绍本申请的一种区块链智能合约部署方法。请参阅图3,其为一种区块链智能合约部署方法的时序图。如图3所示,该方法可以包括:
S301,用户在合约资源池实施对目标智能合约的目标操作。
目标操作可以至少包括选择操作以及缴费操作等。具体地,对目标智能合约的选择操作可以包括:用户在合约资源池查找意向智能合约,然后使用合约资源池上的合约浏览器测试和检查该意向智能合约是否满足业务需求;若是,则将该意向智能合约作为目标智能合约提交至合约管理模块;合约管理模块将目标智能合约以二进制的形式编译成目标智能合约对应的合约镜像,并使用预设哈希算法对合约镜像做哈希运算,生成目标镜像哈希值,使用该目标镜像哈希值对合约镜像进行唯一性标识。而对目标智能合约的缴费操作是指缴纳目标智能合约对应的合约镜像的许可费。
S302,用户在完成目标操作后,在区块链服务平台配置目标智能合约的用户信息和配置信息,配置信息至少包括镜像下载地址。
S303,区块链服务平台基于目标智能合约的用户信息进行用户认证,得到目标智能合约的用户认证结果。
用户信息可以包括用户账户信息以及用户账户信息对应的用户私钥等等,用户私钥与用户在合约资源池中所上传的用户证书匹配,因而可以通过用户私钥与合约资源池中所存储的用户公钥进行非对称加密认证,从而得到用户认证结果。
S304,区块链服务平台下发目标智能合约的合约信息至目标区块链网络的各个区块链节点,该合约信息包括用户认证结果和镜像下载地址。
区块链服务平台从合约资源池中获取到用户认证结果后,可以将用户认证结果和配置信息一同封装在合约信息中下发给各个区块链节点,以使区块链节点将合约信息存储至本地。
S305,区块链节点将目标智能合约的合约信息存储至本地。
S306,区块链服务平台接收合约部署请求,发送针对目标智能合约的安装运行指令。
合约部署请求用于指示将目标智能合约部署至目标区块链网络中的各个区块链节点。
S307,区块链节点从本地所存储的目标智能合约的合约信息中获取用户认证结果和镜像下载地址。
S308,区块链节点基于用户认证结果和镜像下载地址,获取目标智能合约对应的合约镜像,得到目标合约镜像。
S309,区块链节点安装并运行目标合约镜像。
通过将智能合约发布在合约资源池,将智能合约的线下部署转为线上部署,有利于智能合约的共享和传播;在安装前将目标智能合约的合约信息下发至区块链节点,区块链节点在接收到安装运行指令后,可以直接从本地获取目标智能合约的合约信息,然后基于合约信息从合约资源池获取目标智能合约对应的合约镜像,而不需要每个区块链节点单独编译合约镜像,避免由于所有区块链节点重复编译合约镜像所引起的开销,提升部署智能合约的效率。而且由于合约镜像是以二进制方式存储于合约资源池中的,解决了智能合约在线下以源码方式直接传输所带来的安全性问题,可以防止智能合约被篡改,提升部署智能合约的安全性,以及更利于保护合约代码创作者的知识产权。
以下以如上所述的区块链服务平台为执行主体,介绍本申请的一种区块链智能合约部署方法。图4是本申请实施例提供的一种区块链智能合约部署方法的流程示意图,具体的如图4所示,该方法可以包括:
S401,接收合约配置请求,合约配置请求携带区块链网络标识和目标智能合约的配置信息,配置信息至少包括镜像下载地址。
区块链网络标识用于对区块链网络进行唯一性识别,镜像下载地址表征合约资源池中目标智能合约对应的合约镜像的存储地址。
S403,基于区块链网络标识确定目标区块链网络。
目标区块链网络是指与区块链网络标识匹配的区块链网络,如果区块链服务平台未获取到目标区块链网络,可以向用户进行异常提示并且不执行后续步骤。
S405,向目标区块链网络中的各个区块链节点下发目标智能合约的合约信息,以使区块链节点将目标智能合约的合约信息存储至本地。
其中,合约信息至少包括配置信息中的镜像下载地址。区块链服务平台负责对目标区块链网络中所有区块链节点的目标智能合约的安装进行统一驱动,由区块链服务平台进行批量处理,可以快速的实现目标智能合约的上线,特别是在目标区块链网络庞大时,上线效率会大幅度提升。而区块链服务平台预先将目标智能合约的合约信息下发至各个区块链节点,当区块链服务平台接收到来自用户的合约部署请求时,不需要再次发送合约信息,可以快速的进行智能合约的部署,进一步提升目标智能合约的上线效率。
S407,接收合约部署请求,合约部署请求用于指示将目标智能合约部署至目标区块链网络中的各个区块链节点。
合约部署请求也即用户实施安装实例化合约的操作。
S409,向各个区块链节点发送针对目标智能合约的安装运行指令,以使各个区块链节点基于本地所存储的目标智能合约的镜像下载地址,从合约资源池获取目标智能合约对应的合约镜像,得到目标合约镜像,并安装和运行所述目标合约镜像。
为了确保用户使用合约资源池中合约镜像的合法性,区块链服务平台在接收到接收合约配置请求之后,还可以进行用户认证,以对用户进行身份识别,然后将用户认证结果与配置信息一同封装在合约信息中下发至各个区块链节点。各个区块链节点在接收到用户认证结果之后,可再一次与合约资源池进行权限认证。这样一方面可以确保只有接收到由区块链服务平台统一下发的安装运行指令的区块链节点,才有权限进行合约镜像的下载,即确保区块链服务平台与区块链节点之间的安全性;另一方面,可以确保只有在用户认证通过后,合约资源池才允许区块链节点下载合约镜像,即确保区块链服务平台与合约资源池之间的安全性。
基于此,合约配置请求中还可以携带目标智能合约的用户信息,在一个可能的实施方式中,如图5所示,在步骤S403实施之前,该方法还可以包括:
S402,基于所述目标智能合约的用户信息进行用户认证,得到所述目标智能合约的用户认证结果。
相应的,合约信息还包括用户认证结果;
相应的,步骤S409在实施时还可以包括:
S4091,向各个区块链节点发送针对目标智能合约的安装运行指令,以使各个区块链节点基于本地所存储的目标智能合约的镜像下载地址和用户认证结果,从合约资源池获取目标智能合约对应的合约镜像,得到目标合约镜像,并安装和运行所述目标合约镜像。
本申请实施例中,用户信息可以包括用户账户信息和用户账户信息对应的用户私钥,用户账户信息用于指示用户账户的信息,该用户账户是用户预先在合约资源池中进行注册的,用户账户信息例如用户名称。合约资源池中存储有用户账户信息对应的用户公钥,用户公钥是用户在合约资源池中上传用户证书所确定的。
区块链服务平台可以直接根据用户账户信息进行用户认证,例如将用户账户信息发送至合约资源池,以使合约资源池确定用户账户信息是否已注册;若已注册,则合约资源池生成指示用户认证通过的用户认证结果;若未注册,则合约资源池生成指示用户认证未通过的用户认证结果;然后合约资源池将用户认证结果发送至区块链服务平台。
而为了防止用户账户信息存在暴露的问题,区块链服务平台也可以基于用户账户信息和用户私钥进行用户认证。如图6所示,在一个可能的实施方式中,步骤S402在实施时,可以包括:
S4021,向合约资源池发送携带有用户账户信息的用户认证请求,以使合约资源池生成与用户账户信息对应的校验数据。
用户认证请求用于对用户的身份进行合法性认证,区块链服务平台向合约资源池发送用户认证请求,合约资源池可以根据用户认证请求中的用户账户信息确定需要进行用户认证的用户,然后通过生成与用户账户信息对应的校验数据向区块链服务平台发起挑战。校验数据表征用于进行校验的数据,在具体实施时,校验数据可以是随机生成的固定长度或随机长度的字符串。
S4023,接收来自合约资源池的校验数据,使用用户账户信息对应的用户私钥对校验数据进行加密处理,得到加密数据。
S4025,将加密数据发送至合约资源池,以使合约资源池使用与用户账户信息对应的用户公钥对加密数据进行解密,得到解密数据,并将解密数据和校验数据进行对比,得到用户认证数据。
区块链服务平台使用用户私钥对校验数据进行加密,然后由合约资源池使用用户公钥对加密数据进行解密,将解密得到的解密数据与之前生成的校验数据进行对比处理,以确定解密数据是否与校验数据一致。若解密数据与校验数据一致,则生成的用户认证数据中包含有认证通过标识;若解密数据与校验数据不一致,则生成的用户认证数据中未包含有认证通过标识。通过使用非对称加密的方式,可以使得用户认证数据具有更好的可靠性保障。其中,认证通过标识具有唯一性,合约资源池中每个智能合约对应的合约镜像都存储有一个或多个不同的认证通过标识,当区块链节点进行下载权限认证时,可以直接根据认证通过标识进行确定。
S4027,接收来自资源池的用户认证数据,基于用户认证数据得到用户认证结果。
区块链服务平台可以从用户认证数据中获取认证通过标识,若未获取到认证通过标识,则将该认证通过标识作为用户认证标识;若获取到认证通过标识,则可以将用户认证标识设置为空;然后生成包含有用户认证标识的用户认证结果。合约资源池在得到用户认证数据后,会将用户认证数据进行缓存,以供后续区块链节点进行下载权限认证时使用。
在一些实施方式中,用户认证的操作也可以由区块链节点来完成,也即合约资源池中的合约镜像使用用户公钥进行加密,区块链服务平台可以将用户账户信息和用户私钥封装在合约信息中下发至区块链节点,区块链节点在下载先将合约镜像下载至本地,由于该合约镜像是由用户公钥进行加密过的,区块链节点再使用相应的用户私钥进行解密,从而得到目标合约镜像。
在实际应用中,通常用户需要在合约资源池中完成对目标智能合约的目标操作后,才会在区块链服务平台触发进行合约配置。因而合约配置请求是用户在合约资源池中完成对目标智能合约的目标操作后触发的,目标操作的具体实施方式可参见步骤S301所述,在此不再重复赘述。
通过上述方法实施例提供的技术方案可见,区块链服务平台提前将目标智能合约的合约信息下发至区块链节点,区块链节点在接收到安装运行指令后,可以直接从本地获取目标智能合约的合约信息,然后基于合约信息从合约资源池获取目标智能合约对应的合约镜像,而不需要每个区块链节点单独编译合约镜像,避免由于所有区块链节点重复编译合约镜像所引起的开销,提升智能合约部署的效率。而且由于合约镜像是以二进制方式存储于合约资源池中的,解决了智能合约在线下以源码方式直接传输所带来的安全性问题。
以下以如上所述的区块链节点为执行主体,介绍本申请的一种区块链智能合约部署方法。图7是本申请实施例提供的一种区块链智能合约部署方法的流程示意图,具体的如图7所示,该方法可以包括:
S701,接收区块链服务平台下发的目标智能合约的合约信息,将目标智能合约的合约信息存储至本地,合约信息至少包括镜像下载地址;
S703,接收针对目标智能合约的安装运行指令,基于本地所存储的目标智能合约的镜像下载地址,从合约资源池获取目标智能合约对应的合约镜像,得到目标合约镜像;
S705,安装和运行目标合约镜像。
区块链节点在接收到区块链服务平台下发的合约信息时,可以将合约信息存储至本地,合约安装模块接收到安装运行指令后,从本地获取目标智能合约的合约信息;然后基于合约信息通过合约客户端从合约资源池的合约镜像仓库下载目标智能合约的合约镜像,得到目标合约镜像,通过运行合约容器实现对合约镜像的安装和运行。由此可见,用户不需要在区块链节点中编译合约镜像,智能合约的源代码也无需线下发送给每个区块链节点。
为了确保区块链节点具有合约镜像下载的权限,在一个可能的实施方式中,如图8所示,合约信息还包括用户认证结果。相应的,步骤S703在实施时还可以包括:
S7031,接收针对目标智能合约的安装运行指令,基于本地所存储目标智能合约的用户认证结果和镜像下载地址,从合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像。
用户认证结果中携带有用户认证标识,如果用户认证通过,那么合约资源池中所存储的认证通过标识和用户认证标识是一致的。因而,在一个可能的实施方式中,如图9所示,步骤S7031在实施时可以包括:
S70311,接收针对目标智能合约的安装运行指令,从目标智能合约的用户认证结果中获取用户认证标识。
S70313,向合约资源池发送针对目标智能合约的下载权限认证请求,下载权限认证请求携带用户认证标识,以使合约资源池基于用户认证标识对目标智能合约对应的合约镜像进行下载权限认证,得到权限认证结果。
合约资源池接收到下载权限认证请求后,可以获取目标智能合约对应合约镜像的所有认证通过标识,然后将下载权限认证请求中的用户认证标识与所有认证通过标识进行匹配;若匹配上,则生成指示下载权限认证通过的权限认证结果;若未匹配上,则生成指示下载权限认证未通过的权限认证结果。
S70315,接收合约资源池发送的权限认证结果。
S70317,若权限认证结果指示下载权限认证通过,则根据镜像下载地址,从合约资源池获取目标智能合约对应的合约镜像,得到目标合约镜像。
若权限认证结果指示下载权限认证未通过,则停止获取目标智能合约对应的合约镜像。区块链节点获取到目标合约镜像后,可以直接进行目标合约镜像的安装和运行。但为了确保区块链节点所获取到的目标合约镜像,与区块链服务平台所要求安装和运行的目标智能合约对应的合约镜像是一致的,区块链节点还可以在启动安装时,对目标智能合约进行校验。
而由于合约资源池中每个合约镜像都用唯一的目标镜像哈希值进行锁定,那么用户在区块链服务平台中目标智能合约的配置信息时,可以将目标镜像哈希值也写入在配置信息中,由区块链服务平台将目标镜像哈希值封装在合约信息中下发至各个区块链节点,从而使得各个区块链节点可以基于目标镜像哈希值进行目标合约镜像的校验。
具体如图10所示,在安装目标合约镜像的过程中,该方法还可以包括:
S7051,采用预设哈希算法对目标合约镜像做哈希运算,得到实际镜像哈希值;
S7053,比较目标镜像哈希值与实际镜像哈希值是否一致;
若目标镜像哈希值与实际镜像哈希值一致,则执行步骤S7055;若目标镜像哈希值与实际镜像哈希值不一致,则执行步骤S7057;
S7055,继续安装所述目标合约镜像;
S7057,放弃安装所述目标合约镜像。
本申请实施例中,预设哈希算法与生成目标镜像哈希值所采用的算法一致。在具体实施时,预设哈希算法可以是SHA或者MD等等,本申请对此不做具体限定。
用户在合约资源池中确定目标智能合约后,会缴纳目标智能合约对应的合约镜像的许可费,而且合约池中的每个合约镜像都使用镜像哈希值进行唯一锁定,也就是说,只有成功缴纳该许可费的用户以及该合约镜像还在许可的有效期内,区块链节点才可以运行该智能合约。
鉴于此,在一个可能的实施方式中,如图11所示,在运行目标合约镜像的过程中,该方法还可以包括:
S7059,获取目标合约镜像的合约许可信息,合约许可信息指示目标合约镜像的合约使用时长;
S70511,根据合约使用时长检测目标合约镜像是否在有效期内;
S70513,若目标合约镜像在有效期内,则继续运行目标合约镜像;
S70515,若目标合约镜像不在有效期内,则放弃运行目标合约镜像。
本申请实施例中,区块链节点与合约资源池建立Https协议通道,合约资源池中存储有每个目标合约镜像的合约许可信息,合约容器在运行目标合约镜像时,可以实时从合约资源池中获取目标合约镜像的合约许可信息。可以理解的,在一些实施方式中,用户也可以提前将合约信息通过区块链服务平台下发至区块链节点,由区块链节点将合约许可信息存储至本地,然后从本地直接获取目标合约镜像的合约许可信息。但是一旦合约资源池中目标合约镜像的合约使用时长已发生变更,比如合约使用时长变短,若不实时获取合约使用时长,将会出现合约使用时长已到期,目标合约镜像仍然在使用的情况。
在一些实施方式中,有效期的校验也可以由合约资源池完成。具体地,区块链节点向合约资源池发送针对目标合约镜像的运行请求,以使合约资源池检测目标合约镜像是否在有效期内,得到有效期验证数据;区块链节点接收来自合约资源池的有效期验证数据;若有效期验证数据指示目标合约镜像在有效期内,则区块链节点继续运行目标合约镜像;若有效期验证数据指示目标合约镜像不在有效期内,则区块链节点放弃运行目标合约镜像。
合约资源池在检测目标合约镜像是否在有效期内时,获取该目标合约镜像的合约许可信息,合约许可信息中包括合约使用时长;如果合约使用时长已到期,则生成指示目标合约镜像不在有效期内的有效期验证数据;如果合约使用时长未到期,则生成指示目标合约镜像在有效期内的有效期验证数据。
在一个可行的实施方式中,合约资源池也可以根据用户账户信息对应的用户公钥对合约镜像进行加密,然后由区块链节点将下载得到的合约镜像进行解密后得到目标合约镜像。也即合约信息中还可以包括用户账户信息和用户账户信息对应的用户私钥,相应的,步骤S703在具体实施时还可以包括:接收针对目标智能合约的安装运行指令,基于本地所存储的目标智能合约的镜像下载地址,从合约资源池获取目标智能合约对应的合约镜像;使用目标智能合约对应的用户私钥对目标智能合约对应的合约镜像进行解密,得到目标合约镜像。
通过预先在合约资源池对每个目标智能合约对应的合约镜像进行加密,然后由各个区块链节点下载后再进行解密的方式,可以更进一步确保合约镜像在传输过程中的安全性。
由上述区块链节点侧的方法实施例可见,通过用户认证标识可以确保下载目标智能合约对应的合约镜像的合法性;通过使用目标镜像哈希值,可以确保区块链节点能够从正确的合约资源池中下载到目标合约镜像;同时通过检测目标合约镜像是否在有效期内,可以确保只有通过在合约资源池中合约计费授权认证才可下载合约镜像,从而实现合约镜像的双向认证过程,进而提升目标智能合约部署的安全性和合法性。
需要说明的是,本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
基于与以区块链服务平台为执行主体的方法实施例相同地发明构思,本申请实施例还提供了一种区块链智能合约部署装置,如图12所示,该装置1200可以包括:
第一请求接收模块1210,用于接收合约配置请求,合约配置请求携带区块链网络标识和目标智能合约的配置信息,配置信息至少包括镜像下载地址;
目标网络确定模块1220,用于基于区块链网络标识确定目标区块链网络;
配置下发模块1230,用于向目标区块链网络中的各个区块链节点下发目标智能合约的合约信息,以使区块链节点将目标智能合约的合约信息存储至本地,合约信息至少包括镜像下载地址;
第二请求接收模块1240,用于接收合约部署请求,合约部署请求用于指示将目标智能合约部署至目标区块链网络中的各个区块链节点;
指令下发模块1250,用于向各个区块链节点发送针对目标智能合约的安装运行指令,以使各个区块链节点基于本地所存储的目标智能合约的镜像下载地址,从合约资源池获取目标智能合约对应的合约镜像,得到目标合约镜像,并安装和运行目标合约镜像;其中,目标智能合约对应的合约镜像是以二进制方式存储于合约资源池中的。
在一个可能的实施方式中,合约配置请求还携带目标智能合约的用户信息,该装置1200还可以包括:
用户认证模块,用于基于目标智能合约的用户信息进行用户认证,得到目标智能合约的用户认证结果;
相应的,合约信息还包括用户认证结果;
相应的,指令下发模块1250还用于向各个区块链节点发送针对目标智能合约的安装运行指令,以使各个区块链节点基于本地所存储的目标智能合约的镜像下载地址和用户认证结果,从合约资源池获取目标智能合约对应的合约镜像,得到目标合约镜像。
在一个可能的实施方式中,用户信息可以包括用户账户信息和用户账户信息对应的用户私钥,用户认证模块可以包括:
用户认证请求单元,用于向合约资源池发送携带有用户账户信息的用户认证请求,以使合约资源池生成与用户账户信息对应的校验数据;
校验数据接收单元,用于接收来自合约资源池的校验数据,使用用户账户信息对应的用户私钥对校验数据进行加密处理,得到加密数据;
加密数据发送单元,用于将加密数据发送至合约资源池,以使合约资源池使用与用户账户信息对应的用户公钥对加密数据进行解密,得到解密数据,并将解密数据和校验数据进行对比,得到用户认证数据;
用户认证结果处理单元,用于接收来自资源池的用户认证数据,基于用户认证数据得到目标智能合约的用户认证结果。
基于与以区块链节点为执行主体的方法实施例相同地发明构思,本申请实施例还提供了一种区块链智能合约部署装置,如图13所示,该装置1300可以包括:
配置接收模块1310,用于接收区块链服务平台下发的目标智能合约的合约信息,将目标智能合约的合约信息存储至本地,合约信息至少包括镜像下载地址;
指令处理模块1320,用于接收针对目标智能合约的安装运行指令,基于本地所存储的目标智能合约的镜像下载地址,从合约资源池获取目标智能合约对应的合约镜像,得到目标合约镜像;其中,目标智能合约对应的合约镜像是以二进制方式存储于合约资源池中的;
镜像部署模块1330,用于安装和运行目标合约镜像。
在一个可能的实施方式中,合约信息还包括用户认证结果,指令处理模块1320还用于接收针对目标智能合约的安装运行指令,基于本地所存储目标智能合约的用户认证结果和镜像下载地址,从合约资源池获取目标智能合约对应的合约镜像,得到目标合约镜像。
在一个可能的实施方式中,指令处理模块1320可以包括:
认证标识获取单元,用于接收针对目标智能合约的安装运行指令,从目标智能合约的用户认证结果中获取用户认证标识;
权限认证请求单元,用于向合约资源池发送针对目标智能合约的下载权限认证请求,下载权限认证请求携带用户认证标识,以使合约资源池基于用户认证标识对目标智能合约对应的合约镜像进行下载权限认证,得到权限认证结果;
权限认证结果接收单元,用于接收合约资源池发送的权限认证结果;
镜像下载单元,用于在权限认证结果指示下载权限认证通过的情况下,根据镜像下载地址,从合约资源池获取目标智能合约对应的合约镜像,得到目标合约镜像。
在一个可能的实施方式中,合约信息还包括目标镜像哈希值,镜像部署模块1230可以包括:
哈希运算单元,用于采用预设哈希算法对目标合约镜像做哈希运算,得到实际镜像哈希值,预设哈希算法与生成目标镜像哈希值所采用的算法一致;
哈希比较单元,用于比较目标镜像哈希值与实际镜像哈希值是否一致;
镜像安装单元,用于在目标镜像哈希值与实际镜像哈希值一致的情况下,继续安装目标合约镜像;
放弃安装单元,用于在目标镜像哈希值与实际镜像哈希值不一致的情况下,放弃安装目标合约镜像。
在一个可能的实施方式中,镜像部署模块1330还可以包括:
许可信息获取单元,用于获取目标合约镜像的合约许可信息,合约许可信息指示目标合约镜像的合约使用时长;
有效期验证单元,用于根据合约使用时长检测目标合约镜像是否在有效期内;
镜像运行单元,用于在目标合约镜像在有效期内的情况下,继续运行目标合约镜像;
放弃运行单元,用于在目标合约镜像不在有效期内的情况下,放弃运行目标合约镜像。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或至少一段程序由该处理器加载并执行上述方法实施例提供的区块链智能合约部署方法。
进一步地,图14示出了一种用于实现本申请实施例所提供的方法的设备的硬件结构示意图,所述设备可以参与构成或包含本申请实施例所提供的装置或系统。如图14所示,设备14可以包括一个或多个(图中采用1402a、1402b,……,1402n来示出)处理器1402(处理器1402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1404、以及用于通信功能的传输装置1406。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图14所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备14还可包括比图14中所示更多或者更少的组件,或者具有与图14所示不同的配置。
应当注意到的是上述一个或多个处理器1402和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备14(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1404可用于存储应用软件的软件程序以及模块,如本申请实施例中所述的方法对应的程序指令/数据存储装置,处理器1402通过运行存储在存储器1404内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种区块链智能合约部署方法。存储器1404可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1404可进一步包括相对于处理器1402远程设置的存储器,这些远程存储器可以通过网络连接至设备14。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备14的通信供应商提供的无线网络。在一个实例中,传输装置1406包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置1406可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备14(或移动设备)的用户界面进行交互。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令或至少一段程序,该至少一条指令或至少一段程序由处理器加载并执行以实现上述方法实施例提供的区块链智能合约部署方法。
可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述的方法实施例提供的区块链智能合约部署方法。
需要说明的是,上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述说明已经充分揭露了本申请的具体实施方式。需要指出的是,熟悉该领域的技术人员对本申请的具体实施方式所做的任何改动均不脱离本申请的权利要求书的范围。相应地,本申请的权利要求的范围也并不仅仅局限于前述具体实施方式。
Claims (10)
1.一种区块链智能合约部署方法,其特征在于,所述方法包括:
接收合约配置请求,所述合约配置请求携带区块链网络标识和目标智能合约的配置信息,所述配置信息至少包括镜像下载地址;
基于所述区块链网络标识确定目标区块链网络;
向所述目标区块链网络中的各个区块链节点下发所述目标智能合约的合约信息,以使所述区块链节点将所述目标智能合约的合约信息存储至本地,所述合约信息至少包括所述镜像下载地址;
接收合约部署请求,所述合约部署请求用于指示将所述目标智能合约部署至所述目标区块链网络中的各个区块链节点;
向所述各个区块链节点发送针对所述目标智能合约的安装运行指令,以使所述各个区块链节点基于本地所存储的所述目标智能合约的镜像下载地址,从合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像,并安装和运行所述目标合约镜像;其中,所述目标智能合约对应的合约镜像是以二进制方式存储于所述合约资源池中的。
2.根据权利要求1所述的方法,其特征在于,所述合约配置请求还携带所述目标智能合约的用户信息;
在所述向所述目标区块链网络中的各个区块链节点下发所述目标智能合约的合约信息之前,所述方法还包括:
基于所述目标智能合约的用户信息进行用户认证,得到所述目标智能合约的用户认证结果;
相应的,所述合约信息还包括所述用户认证结果;
相应的,向所述各个区块链节点发送针对所述目标智能合约的安装运行指令,以使所述各个区块链节点基于本地所存储的所述目标智能合约的镜像下载地址,从合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像,包括:
向所述各个区块链节点发送针对所述目标智能合约的安装运行指令,以使所述各个区块链节点基于本地所存储的所述目标智能合约的镜像下载地址和用户认证结果,从所述合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像。
3.根据权利要求2所述的方法,其特征在于,所述用户信息包括用户账户信息和所述用户账户信息对应的用户私钥;
所述基于所述目标智能合约的用户信息进行用户认证,得到所述目标智能合约的用户认证结果,包括:
向所述合约资源池发送携带有所述用户账户信息的用户认证请求,以使所述合约资源池生成与所述用户账户信息对应的校验数据;
接收来自所述合约资源池的所述校验数据,使用所述用户账户信息对应的用户私钥对所述校验数据进行加密处理,得到加密数据;
将所述加密数据发送至所述合约资源池,以使所述合约资源池使用与所述用户账户信息对应的用户公钥对所述加密数据进行解密,得到解密数据,并将所述解密数据和所述校验数据进行对比,得到用户认证数据;
接收来自所述合约资源池的所述用户认证数据,基于所述用户认证数据得到所述目标智能合约的用户认证结果。
4.一种区块链智能合约部署方法,其特征在于,所述方法包括:
接收区块链服务平台下发的目标智能合约的合约信息,将所述目标智能合约的合约信息存储至本地,所述合约信息至少包括镜像下载地址;
接收针对所述目标智能合约的安装运行指令,基于本地所存储的所述目标智能合约的镜像下载地址,从合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像;其中,所述目标智能合约对应的合约镜像是以二进制方式存储于所述合约资源池中的;
安装和运行所述目标合约镜像。
5.根据权利要求4所述的方法,其特征在于,所述合约信息还包括用户认证结果;
相应的,所述接收针对所述目标智能合约的安装运行指令,基于本地所存储的所述目标智能合约的镜像下载地址,从合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像,包括:
接收针对所述目标智能合约的安装运行指令,基于本地所存储所述目标智能合约的用户认证结果和镜像下载地址,从所述合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像。
6.根据权利要求5所述的方法,其特征在于,所述接收针对所述目标智能合约的安装运行指令,基于本地所存储所述目标智能合约的用户认证结果和镜像下载地址,从所述合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像,包括:
接收针对所述目标智能合约的安装运行指令,从所述目标智能合约的用户认证结果中获取用户认证标识;
向所述合约资源池发送针对所述目标智能合约的下载权限认证请求,所述下载权限认证请求携带所述用户认证标识,以使所述合约资源池基于所述用户认证标识对所述目标智能合约对应的合约镜像进行下载权限认证,得到权限认证结果;
接收所述合约资源池发送的所述权限认证结果;
若所述权限认证结果指示下载权限认证通过,则根据所述镜像下载地址,从所述合约资源池获取所述目标智能合约对应的合约镜像,得到所述目标合约镜像。
7.根据权利要求4所述的方法,其特征在于,所述合约信息还包括目标镜像哈希值,在安装所述目标合约镜像的过程中,所述方法还包括:
采用预设哈希算法对所述目标合约镜像做哈希运算,得到实际镜像哈希值,所述预设哈希算法与生成所述目标镜像哈希值所采用的算法一致;
比较所述目标镜像哈希值与所述实际镜像哈希值是否一致;
若一致,则继续安装所述目标合约镜像;
若不一致,则放弃安装所述目标合约镜像。
8.根据权利要求4所述的方法,其特征在于,在运行所述目标合约镜像的过程中,所述方法还包括:
获取所述目标合约镜像的合约许可信息,所述合约许可信息指示所述目标合约镜像的合约使用时长;
根据所述合约使用时长检测所述目标合约镜像是否在有效期内;
若所述目标合约镜像在所述有效期内,则继续运行所述目标合约镜像;
若所述目标合约镜像不在所述有效期内,则放弃运行所述目标合约镜像。
9.一种区块链智能合约部署装置,其特征在于,所述装置包括:
第一请求接收模块,用于接收合约配置请求,所述合约配置请求携带区块链网络标识和目标智能合约的配置信息,所述配置信息至少包括镜像下载地址;
目标网络确定模块,用于基于所述区块链网络标识确定目标区块链网络;
配置下发模块,用于向所述目标区块链网络中的各个区块链节点下发所述目标智能合约的合约信息,以使所述区块链节点将所述目标智能合约的合约信息存储至本地,所述合约信息至少包括所述镜像下载地址;
第二请求接收模块,用于接收合约部署请求,所述合约部署请求用于指示将所述目标智能合约部署至所述目标区块链网络中的各个区块链节点;
指令下发模块,用于向所述各个区块链节点发送针对所述目标智能合约的安装运行指令,以使所述各个区块链节点基于本地所存储的所述目标智能合约的镜像下载地址,从合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像,并安装和运行所述目标合约镜像;其中,所述目标智能合约对应的合约镜像是以二进制方式存储于所述合约资源池中的。
10.一种区块链智能合约部署装置,其特征在于,所述装置包括:
配置接收模块,用于接收区块链服务平台下发的目标智能合约的合约信息,将所述目标智能合约的合约信息存储至本地,所述合约信息至少包括镜像下载地址;
指令处理模块,用于接收针对所述目标智能合约的安装运行指令,基于本地所存储的所述目标智能合约的镜像下载地址,从合约资源池获取所述目标智能合约对应的合约镜像,得到目标合约镜像;其中,所述目标智能合约对应的合约镜像是以二进制方式存储于所述合约资源池中的;
镜像部署模块,用于安装和运行所述目标合约镜像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110223706.4A CN112596754B (zh) | 2021-03-01 | 2021-03-01 | 区块链智能合约部署方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110223706.4A CN112596754B (zh) | 2021-03-01 | 2021-03-01 | 区块链智能合约部署方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112596754A true CN112596754A (zh) | 2021-04-02 |
CN112596754B CN112596754B (zh) | 2021-07-02 |
Family
ID=75207645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110223706.4A Active CN112596754B (zh) | 2021-03-01 | 2021-03-01 | 区块链智能合约部署方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112596754B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190285A (zh) * | 2021-04-23 | 2021-07-30 | 神荼科技(山东)有限公司 | 基于区块链的虚拟环境安全检测方法、装置以及存储介质 |
CN113407188A (zh) * | 2021-06-03 | 2021-09-17 | 广东辰宜信息科技有限公司 | 智能合约的构建方法、装置、计算机设备及存储介质 |
CN114362960A (zh) * | 2021-12-31 | 2022-04-15 | 杭州趣链科技有限公司 | 资源账户的数据监管方法、装置、计算机设备及介质 |
CN115203330A (zh) * | 2022-07-21 | 2022-10-18 | 深圳前海环融联易信息科技服务有限公司 | 智能合约部署方法及其装置、设备、介质、产品 |
WO2022237590A1 (zh) * | 2021-05-11 | 2022-11-17 | 支付宝(杭州)信息技术有限公司 | 智能合约升级方法及区块链系统 |
CN117349867A (zh) * | 2023-12-04 | 2024-01-05 | 成都峰潮信息技术有限公司 | 智能合约部署方法、系统、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943469A (zh) * | 2017-11-17 | 2018-04-20 | 深圳圣马歌科技有限公司 | 一种智能合约的发布方法及装置 |
CN109033823A (zh) * | 2018-07-23 | 2018-12-18 | 上海点融信息科技有限责任公司 | 用于在区块链网络中验证和运行智能合约的方法和装置 |
CN109542421A (zh) * | 2018-11-12 | 2019-03-29 | 夸克链科技(深圳)有限公司 | 一种模块化区块链智能合约 |
CN110390213A (zh) * | 2019-07-31 | 2019-10-29 | 中国工商银行股份有限公司 | 区块链网络环境下智能合约的安全部署方法及系统 |
US10740492B2 (en) * | 2018-04-11 | 2020-08-11 | American Express Travel Related Services Company, Inc. | Data enrichment environment using blockchain |
CN111770206A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
CN112199096A (zh) * | 2020-09-30 | 2021-01-08 | 深圳壹账通智能科技有限公司 | 智能合约的部署检测方法、装置、节点设备及存储介质 |
-
2021
- 2021-03-01 CN CN202110223706.4A patent/CN112596754B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943469A (zh) * | 2017-11-17 | 2018-04-20 | 深圳圣马歌科技有限公司 | 一种智能合约的发布方法及装置 |
US10740492B2 (en) * | 2018-04-11 | 2020-08-11 | American Express Travel Related Services Company, Inc. | Data enrichment environment using blockchain |
CN109033823A (zh) * | 2018-07-23 | 2018-12-18 | 上海点融信息科技有限责任公司 | 用于在区块链网络中验证和运行智能合约的方法和装置 |
CN109542421A (zh) * | 2018-11-12 | 2019-03-29 | 夸克链科技(深圳)有限公司 | 一种模块化区块链智能合约 |
CN110390213A (zh) * | 2019-07-31 | 2019-10-29 | 中国工商银行股份有限公司 | 区块链网络环境下智能合约的安全部署方法及系统 |
CN111770206A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
CN112199096A (zh) * | 2020-09-30 | 2021-01-08 | 深圳壹账通智能科技有限公司 | 智能合约的部署检测方法、装置、节点设备及存储介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190285A (zh) * | 2021-04-23 | 2021-07-30 | 神荼科技(山东)有限公司 | 基于区块链的虚拟环境安全检测方法、装置以及存储介质 |
WO2022237590A1 (zh) * | 2021-05-11 | 2022-11-17 | 支付宝(杭州)信息技术有限公司 | 智能合约升级方法及区块链系统 |
CN113407188A (zh) * | 2021-06-03 | 2021-09-17 | 广东辰宜信息科技有限公司 | 智能合约的构建方法、装置、计算机设备及存储介质 |
CN113407188B (zh) * | 2021-06-03 | 2024-02-09 | 广东辰宜信息科技有限公司 | 智能合约的构建方法、装置、计算机设备及存储介质 |
CN114362960A (zh) * | 2021-12-31 | 2022-04-15 | 杭州趣链科技有限公司 | 资源账户的数据监管方法、装置、计算机设备及介质 |
CN115203330A (zh) * | 2022-07-21 | 2022-10-18 | 深圳前海环融联易信息科技服务有限公司 | 智能合约部署方法及其装置、设备、介质、产品 |
CN115203330B (zh) * | 2022-07-21 | 2024-01-19 | 深圳前海环融联易信息科技服务有限公司 | 智能合约部署方法及其装置、设备、介质、产品 |
CN117349867A (zh) * | 2023-12-04 | 2024-01-05 | 成都峰潮信息技术有限公司 | 智能合约部署方法、系统、设备及介质 |
CN117349867B (zh) * | 2023-12-04 | 2024-02-09 | 成都峰潮信息技术有限公司 | 智能合约部署方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112596754B (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112596754B (zh) | 区块链智能合约部署方法及装置 | |
EP3178198B1 (en) | Secure cloud based multi-tier provisioning | |
US9307405B2 (en) | Method for assigning an agent device from a first device registry to a second device registry | |
TW201820132A (zh) | 用於可程式化設備的統一程式設計環境 | |
CN104363264A (zh) | 移动终端软件的多渠道sdk接入系统及方法 | |
US20190349346A1 (en) | Registry apparatus, agent device, application providing apparatus and corresponding methods | |
CN108668277B (zh) | 用于分享信息、获取信息的方法和设备 | |
CN110443075A (zh) | 一种区块链智能合约验证部署的方法及装置 | |
WO2015056008A1 (en) | Method for assigning an agent device from a first device registry to a second device registry | |
CN103677892A (zh) | 在安全电子控制单元中启用特殊优先模式的授权方案 | |
CN103248495B (zh) | 一种应用内付费的方法、服务器、客户端和系统 | |
CN112861191B (zh) | 一种应用程序监控方法及装置 | |
CN103679005A (zh) | 启用安全电子控制单元的开发模式的方法 | |
CN111492355B (zh) | 用于控制和/或监控装置的方法和控制系统 | |
CN107682376B (zh) | 风控数据交互方法及装置 | |
TW201530444A (zh) | 威脅事件監控系統及相關方法 | |
CN112818414B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111460400A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN113261253A (zh) | 用于控制资源的释放的方法和系统 | |
EP3048553B1 (en) | Method for distributing applets, and entities for distributing applets | |
CN110708310A (zh) | 租户级权限管理方法、装置及设备 | |
JP2023525576A (ja) | ソフトウェア更新のための認証キーの制御範囲 | |
CN107145342B (zh) | 应用的渠道信息的处理方法和装置 | |
CN111352835B (zh) | 一种智能合约的测试方法、装置、设备及存储介质 | |
Garrigues et al. | Protecting mobile agents from external replay attacks |
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: 40042040 Country of ref document: HK |