CN109885612B - 区块链智能合约的同步生效方法及装置 - Google Patents
区块链智能合约的同步生效方法及装置 Download PDFInfo
- Publication number
- CN109885612B CN109885612B CN201811604786.2A CN201811604786A CN109885612B CN 109885612 B CN109885612 B CN 109885612B CN 201811604786 A CN201811604786 A CN 201811604786A CN 109885612 B CN109885612 B CN 109885612B
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- latest version
- contract
- intelligent
- address
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开区块链智能合约的同步生效方法及装置。其中,所述方法包括:接收最新版本的第一智能合约调用请求,最新版本的第一智能合约调用请求包括最新版本的第一智能合约的合约地址;根据最新版本的第一智能合约的合约地址获得版本的第一智能合约生效条件,若判断获知当前节点满足最新版本的第一智能合约生效条件,则确认最新版本的第一智能合约生效;其中,最新版本的第一智能合约生效条件是预设的,与最新版本的第一智能合约的合约地址对应;获取最新版本的第一智能合约并执行。所述装置用于执行上述方法。本发明实施例提供的区块链智能合约的同步生效方法及装置,保证了最新版本的第一智能合约在不同区块连节点分别执行的准确性。
Description
技术领域
本发明实施例涉及区块链技术领域,具体涉及区块链智能合约的同步生效方法及装置。
背景技术
区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据并维护其在节点间的一致性、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种分布式基础架构与计算范式。智能合约由区块链内的多个用户共同参与制定,可用于用户之间的任何交易行为。基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。
将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明、可跟踪和不可攥改。同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。智能合约一旦部署就无法进行修改,而在某些情况下需要对已经部署的智能合约进行修改,例如发现智能合约的漏洞或者业务逻辑变更,就需要部署新版本的智能合约,对原有的智能合约进行升级。现有技术中,能够在所有需要的节点部署新版本的智能合约,新版本的智能合约在部署完成之后是即时生效的,无法保证新版本的智能合约在部署完成后在各个节点生效的同步,会出现有的节点执行升级后的智能合约,有的节点执行升级前的智能合约,导致数据错乱。
因此,如何提出一种区块链智能合约的同步生效方法,使升级后的智能合约在所有节点同步生效,以保证智能合约在不同区块连节点分别执行的准确性成为业界亟待解决的重要课题。
发明内容
针对现有技术中的缺陷,本发明实施例提供区块链智能合约的同步生效方法及装置。
一方面,本发明实施例提出一种区块链智能合约的同步生效方法,包括:
接收最新版本的第一智能合约调用请求,所述最新版本的第一智能合约调用请求包括最新版本的第一智能合约的合约地址;
根据所述最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,若判断获知当前节点满足所述最新版本的第一智能合约生效条件,则确认最新版本的第一智能合约生效;其中,所述最新版本的第一智能合约生效条件是预设的,与所述最新版本的第一智能合约的合约地址对应;
获取所述最新版本的第一智能合约并执行。
另一方面,本发明实施例还提供一种区块链智能合约的同步生效方法,包括:
接收第二智能合约调用请求;
根据所述第二智能合约调用请求,获取第二智能合约的合约地址;
根据所述第二智能合约的合约地址获得最新版本的第二智能合约生效条件,若判断获知所述当前节点满足所述最新版本的第二智能合约生效条件,则确定最新版本的第二智能合约生效;其中,所述最新版本的第二智能合约生效条件是预设的,与第二智能合约的合约地址对应;
获取所述最新版本的第二智能合约并执行。
再一方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述的区块链智能合约的同步生效方法的步骤。
又一方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述的区块链智能合约的同步生效方法的步骤。
本发明实施例提供的区块链智能合约的同步生效方法及装置,由于能够接收包括最新版本的第一智能合约的合约地址的最新版本的第一智能合约调用请求,并根据最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,在判断获知当前节点满足最新版本的第一智能合约生效条件之后,确认最新版本的第一智能合约生效,然后获取最新版本的第一智能合约并执行,满足最新版本的第一智能合约生效条件的节点才会执行最新版本的第一智能合约,使最新版本的第一智能合约在各个节点能够同步生效,保证了最新版本的第一智能合约在不同区块连节点分别执行的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的区块链智能合约的同步生效方法的流程示意图;
图2为本发明另一实施例提供的区块链智能合约的同步生效方法的流程示意图;
图3为本发明再一实施例提供的区块链智能合约的同步生效方法的流程示意图;
图4为本发明又一实施例提供的区块链智能合约的同步生效方法的流程示意图;
图5为本发明一实施例提供的区块链智能合约的同步生效装置的结构示意图;
图6为本发明另一实施例提供的区块链智能合约的同步生效装置的结构示意图;
图7为本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的区块链智能合约的同步生效方法的流程示意图,如图1所示,本发明提供的区块链智能合约的同步生效方法,包括:
S101、接收最新版本的第一智能合约调用请求,所述最新版本的第一智能合约调用请求包括最新版本的第一智能合约的合约地址;
具体地,在对区块链的各个节点部署的第一智能合约进行升级,获得最新版本的第一智能合约之后,各个所述节点的区块链智能合约的同步生效装置(以下简称生效装置)会存储最新版本的第一智能合约。所述节点的客户端可以发送最新版本的第一智能合约调用请求给所述生效装置,所述生效装置会接收所述最新版本的第一智能合约调用请求。其中,所述最新版本的第一智能合约调用请求包括最新版本的第一智能合约的合约地址;所述节点是在区块链中进行交易和数据交换的网络节点,可以采用服务器实现。
S102、根据所述最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,若判断获知当前节点满足所述最新版本的第一智能合约生效条件,则确认最新版本的第一智能合约生效;其中,所述最新版本的第一智能合约生效条件是预设的,与所述最新版本的第一智能合约的合约地址对应;
具体地,所述生效装置在接收到所述最新版本的第一智能合约调用请求之后,可以根据所述最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,然后判断当前节点是否满足所述最新版本的第一智能合约生效条件,如果所述当前节点满足所述最新版本的第一智能合约生效条件,那么所述生效装置确定最新版本的第一智能合约生效,会调用所述最新版本的第一智能合约。其中,所述当前节点是指接收所述最新版本的第一智能合约调用请求的服务器所在的节点;所述最新版本的第一智能合约生效条件是预设的,可以与最新版本的第一智能合约的合约地址对应;所述最新版本的第一智能合约生效条件根据实际需要进行设置,本发明实施例不做限定。可理解的是,可以在部署最新版本的第一智能合约的时候将与最新版本的第一智能合约对应的最新版本的第一智能合约生效条件同时部署。
例如,所述最新版本的第一智能合约生效条件为:当所述当前节点的块高度大于50时,最新版本的第一智能合约生效。或者,部署最新版本第一智能合约的时间为2018年11月26日,所述最新版本的第一智能合约生效条件为:最新版本的第一智能合约在2018年12月1日生效。或者,所述最新版本的第一智能合约生效条件为:当所述当前节点的交易笔数超过500笔,最新版本的第一智能合约生效。其中,所述生效装置可以通过相应的应用程序编程接口(Application Programming Interface,简称API)获取到所述当前节点的块高度、时间和交易笔数。
S103、获取所述最新版本的第一智能合约并执行。
具体地,所述生效装置在确认所述最新版本的第一智能合约生效之后,可以根据所述最新版本的第一智能合约的合约地址,获取所述最新版本的第一智能合约,并执行所述最新版本的第一智能合约。
例如,区块链A包括N个部署第一智能合约a1的节点,由于发现第一智能合约a1的缺陷,对第一智能合约a1进行升级,在上述N个节点部署最新版本的第一智能合约a2,同时部署与最新版本的第一智能合约a2对应的最新版本的第一智能合约生效条件b:当前节点的块高度大于50时,最新版本的第一智能合约a2生效。并将最新版本的第一智能合约生效条件b与最新版本的第一智能合约a2的合约地址对应。上述N个节点中的节点n5的客户端发送最新版本的第一智能合约调用请求至节点n5的生效装置,所述最新版本的第一智能合约调用请求包括最新版本的第一智能合约a2的合约地址;节点n5的生效装置接收到所述最新版本的第一智能合约调用请求之后,根据最新版本的第一智能合约a2的合约地址查询获得最新版本的第一智能合约生效条件b,然后获取节点n5的块高度;节点n5的生效装置将节点n5的块高度与最新版本的第一智能合约生效条件b中的块高度50进行比较,如果节点n5的块高度大于50,那么节点n5的生效装置确认最新版本第一智能合约生效,即最新版本的第一智能合约a2生效;节点n5的生效装置根据最新版本的第一智能合约a2的合约地址查询获得最新版本的第一智能合约a2,然后执行最新版本的第一智能合约a2。如果节点n5的块高度小于或者等于50,那么节点n5的生效装置可以拒绝所述最新版本的第一智能合约调用请求,然后返回提示信息到n5的客户端提示节点n5不满足最新版本的第一智能合约生效条件b。如果节点n5的块高度小于或者等于50,节点n5的生效装置可以获取第一智能合约a1,并执行第一智能合约a1。
本发明实施例提供的区块链智能合约的同步生效方法,由于能够接收包括最新版本的第一智能合约的合约地址的最新版本的第一智能合约调用请求,并根据最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,在判断获知当前节点满足最新版本的第一智能合约生效条件之后,确认最新版本的第一智能合约生效,然后获取最新版本的第一智能合约并执行,满足最新版本的第一智能合约生效条件的节点才会执行最新版本的第一智能合约,使最新版本的第二智能合约在各个节点能够同步生效,保证了最新版本的第一智能合约在不同区块连节点分别执行的准确性。
在上述各实施例的基础上,进一步地,本发明实施例提供的区块链智能合约的同步生效方法还包括:
若判断获知所述当前节点不满足所述最新版本的第一智能合约生效条件,则拒绝所述最新版本的第一智能合约调用请求。
具体地,所述生效装置在接收到所述最新版本的第一智能合约调用请求之后,根据所述最新版本的第一智能合约调用请求可以获得最新版本的第一智能合约生效条件,然后判断所述当前节点是否满足所述最新版本的第一智能合约生效条件,如果所述当前节点不满足所述最新版本的第一智能合约生效条件,那么所述生效装置可以拒绝所述最新版本的第一智能合约调用请求。
图2为本发明另一实施例提供的区块链智能合约的同步生效方法的流程示意图,如图2所示,在上述各实施例的基础上,进一步地,本发明提供的区块链智能合约的同步生效方法还包括:
S204、若判断获知所述当前节点不满足所述最新版本的第一智能合约生效条件,则确认调用所述最新版本的第一智能合约升级前的第一智能合约;
具体地,所述生效装置在接收到所述最新版本的第一智能合约调用请求之后,可以根据所述最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,然后判断所述当前节点是否满足所述最新版本的第一智能合约生效条件,如果所述当前节点不满足所述最新版本的第一智能合约生效条件,那么所述生效装置可以确认调用所述最新版本的第一智能合约升级前的第一智能合约。
S205、获取所述升级前的第一智能合约并执行。
具体地,所述生效装置在确认调用所述最新版本的第一智能合约升级前的第一智能合约之后,可以根据升级前的第一智能合约的合约地址获得升级前的第一智能合约,并执行所述升级前的智能合约。其中,可以建立所述最新版本的第一智能合约的合约地址与升级前的第一智能合约的合约地址的对应关系,当所述当前节点不满足所述最新版本的第一智能合约生效条件时,可以通过所述最新版本的第一智能合约的合约地址获得升级前的第一智能合约的合约地址。
例如,在部署最新版本的第一智能合约a2时,将最新版本的第一智能合约a2的合约地址与第一智能合约a1的合约地址对应存储。如果节点n5的块高度小于或者等于50,节点n5的生效装置确定调用最新版本的第一智能合约a2升级前的第一智能合约a1,可根据最新版本的第一智能合约a2的合约地址获得第一智能合约a1的合约地址,然后根据第一智能合约a1的合约地址获得第一智能合约a1,并执行第一智能合约a1。
图3为本发明再一实施例提供的区块链智能合约的同步生效方法的流程示意图,如图3所示,本发明实施例提供的区块链智能合约的同步生效方法,包括:
S301、接收第二智能合约调用请求;
具体地,在对区块链的各个节点部署的第二智能合约进行升级,获得最新版本第二智能合约之后,各个所述节点的区块链智能合约的同步生效装置(以下简称生效装置)会存储最新版本的第二智能合约。所述节点的客户端可以发送第二智能合约调用请求给所述生效装置,所述生效装置会接收所述第二智能合约调用请求。
S302、根据所述第二智能合约调用请求,获取第二智能合约的合约地址;
具体地,所述生效装置在接收到所述第二智能合约调用请求之后,可以根据所述第二智能合约调用请求,获得第二智能合约的合约地址。其中,所述第二智能合约的合约地址可以是最新版本的第二智能合约的合约地址,也可以是旧版本的第二智能合约的合约地址,本发明实施例不做限定。当所述第二智能合约的合约地址为旧版本的第二智能合约的合约地址时,所述生效装置可以通过预先设置的路由关系获得最新版本的第二智能合约的合约地址。
例如,所述第二智能合约调用请求包括路由合约地址和最新版本的第二智能合约的地址标识,所述路由合约地址与所述第二智能合约的地址映射表对应,所述第二智能合约的地址映射表中包括至少一个第二智能合约的地址标识以及与所述第二智能合约的地址标识一一对应的最新版本的第二智能合约的合约地址。所述生效装置可以根据所述路由合约地址查询获得与所述路由合约地址对应的所述第二智能合约的地址映射表,然后根据所述第二智能合约的地址标识查询获得与所述第二智能合约的地址标识对应的最新版本的第二智能合约的合约地址。其中,所述第二智能合约的地址映射表是预设的。
S303、根据所述第二智能合约的合约地址获得最新版本的第二智能合约生效条件,若判断获知所述当前节点满足所述最新版本的第二智能合约生效条件,则确定最新版本的第二智能合约生效;其中,所述最新版本的第二智能合约生效条件是预设的,与第二智能合约的合约地址对应;
具体地,所述生效装置在接收到所述第二智能合约的合约地址之后,可以根据所述第二智能合约的合约地址获得最新版本的第二智能合约生效条件,然后判断当前节点是否满足所述最新版本的第二智能合约生效条件,如果所述当前节点满足所述最新版本的第二智能合约生效条件,那么所述生效装置确定最新版本的第二智能合约生效,会调用最新版本的所述第二智能合约。其中,所述当前节点是指接收所述第二智能合约调用请求的服务器所在的节点;所述最新版本的第二智能合约生效条件是预设的,与第二智能合约的合约地址对应;所述最新版本的第二智能合约生效条件根据实际需要进行设置,本发明实施例不做限定。可理解的是,可以在部署最新版本的第二智能合约的时候将与最新版本的第二智能合约对应的最新版本的第二智能合约生效条件同时部署。
例如,所述最新版本的第二智能合约生效条件为:当所述节点的块高度大于60时,最新版本第二智能合约生效。或者,部署最新版本第二智能合约的时间为2018年9月25日,所述最新版本的第二智能合约生效条件为:最新版本第二智能合约在2018年10月1日生效。或者,所述最新版本的第二智能合约生效条件为:当所述节点的交易笔数超过300笔,最新版本第二智能合约生效。
S304、获取所述最新版本的第二智能合约并执行。
具体地,所述生效装置在确认所述最新版本的第二智能合约生效之后,可以根据所述最新版本的第二智能合约的合约地址,获取所述最新版本的第二智能合约,并执行所述最新版本的第二智能合约。
例如,区块链B包括M个部署第二智能合约b1的节点,由于第二智能合约b1的业务逻辑发生变化,对第二智能合约b1进行升级,在上述M个节点部署最新版本的第二智能合约b2,同时部署与最新版本的第二智能合约b2对应的最新版本的第二智能合约生效条件c:当前节点的块高度大于60时,最新版本的第二智能合约b2生效。并将最新版本的第二智能合约生效条件c与最新版本的第二智能合约b2的合约地址对应。上述M个节点中的节点m6的客户端发送第二智能合约调用请求至节点m6的生效装置,所述第二智能合约调用请求包括所述路由合约地址和最新版本的第二智能合约b2的地址标识;节点m6的生效装置接收到所述第二智能合约调用请求之后,根据所述路由合约地址查询获得所述第二智能合约的地址映射表,并根据最新版本的第二智能合约b2的地址标识在所述第二智能合约的地址映射表中查询获得最新版本的第二智能合约b2的合约地址;所述生效装置根据最新版本的第二智能合约b2的合约地址查询获得最新版本的第二智能合约生效条件c,然后获取节点m6的块高度;节点m6的生效装置将节点m6的块高度与最新版本的第二智能合约生效条件c中的块高度60进行比较,如果节点m6的块高度大于60,那么节点m6的生效装置确认最新版本的第二智能合约生效b2;节点m6的生效装置根据最新版本的第二智能合约b2的合约地址查询获得最新版本的第二智能合约b2,然后执行最新版本的第二智能合约b2。如果节点m6的块高度小于或者等于60,那么节点m6的生效装置可以拒绝所述第二智能合约调用请求,然后返回提示信息到节点m6的客户端提示节点m6不满足最新版本的第二智能合约生效条件c。如果节点m6的块高度小于或者等于60,节点m6的生效装置还可以获取第二智能合约b1,并执行第二智能合约b1。
本发明实施例提供的区块链智能合约的同步生效方法,由于能够接收第二智能合约调用请求,根据第二智能合约调用请求,获取第二智能合约的合约地址,根据第二智能合约的合约地址获得最新版本的第二智能合约生效条件,在判断获知当前节点满足最新版本的第二智能合约生效条件之后,确定最新版本的第二智能合约生效,然后获取最新版本的第二智能合约并执行,满足最新版本的第二智能合约生效条件的节点才会执行最新版本的第二智能合约,使最新版本的第二智能合约在各个节点能够同步生效,保证了最新版本的第二智能合约在不同区块连节点分别执行的准确性。
在上述各实施例的基础上,进一步地,本发明实施例提供的区块链智能合约的同步生效方法还包括:
若判断获知所述当前节点不满足所述最新版本的第二智能合约生效条件,则拒绝所述最新版本的第二智能合约调用请求。
具体地,所述生效装置在接收到所述第二智能合约的合约地址之后,根据所述第二智能合约的合约地址可以获得最新版本的第二智能合约生效条件,然后判断所述当前节点是否满足所述最新版本的第二智能合约生效条件,如果所述节点不满足所述最新版本的第二智能合约生效条件,那么所述生效装置可以拒绝所述最新版本的第二智能合约调用请求。
图4为本发明又一实施例提供的区块链智能合约的同步生效方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,本发明实施例提供的区块链智能合约的同步生效方法还包括:
S305、若判断获知所述当前节点不满足所述最新版本的第二智能合约生效条件,则确认调用最新版本的第二智能合约升级前的第二智能合约;
具体地,所述生效装置在接收到所述第二智能合约的合约地址之后,可以根据所述第二智能合约的合约地址获得最新版本的第二智能合约生效条件,,然后判断所述当前节点是否满足所述最新版本的第二智能合约生效条件,如果所述当前节点不满足所述最新版本的第二智能合约生效条件,那么所述生效装置可以确认调用所述最新版本的第二智能合约升级前的第二智能合约。
S306、获取所述升级前的第二智能合约并执行。
具体地,所述生效装置在确认调用所述最新版本的第二智能合约升级前的第二智能合约之后,可以根据升级前的第二智能合约的合约地址获得升级前的第二智能合约,并执行所述升级前的智能合约。其中,可以建立所述最新版本第二智能合约的合约地址与升级前的第二智能合约的合约地址的对应关系,当所述当前节点不满足所述最新版本的第二智能合约生效条件时,可以通过所述最新版本第二智能合约的合约地址获得升级前的第二智能合约的合约地址。
例如,在部署最新版的第二智能合约b2时,将最新版的第二智能合约b2的合约地址与第二智能合约b1的合约地址对应存储。如果节点m6的块高度小于或者等于60,节点m6的生效装置确定调用第二智能合约b2升级前的第二智能合约b1,可以根据最新版的第二智能合约b2的合约地址获得第二智能合约b1的合约地址,然后根据第二智能合约b1的合约地址获得第二智能合约b1,并执行第二智能合约b1。
图5为本发明一实施例提供的区块链智能合约的同步生效装置的结构示意图,如图5所示,本发明实施例提供的区块链智能合约的同步生效装置包括第一接收模块501、第一生效管理模块502和第一合约模块503,其中:
第一接收模块501用于接收最新版本的第一智能合约调用请求,所述最新版本的第一智能合约调用请求包括最新版本的第一智能合约的合约地址;第一生效管理模块502用于根据所述最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,若判断获知当前节点满足所述最新版本的第一智能合约生效条件,则确认最新版本的第一智能合约生效;其中,所述最新版本的第一智能合约生效条件是预设的,与所述最新版本的第一智能合约的合约地址对应;第一合约模块503用于获取所述最新版本的第一智能合约并执行。
具体地,在对区块链的各个节点部署的第一智能合约进行升级,获得最新版本第一智能合约之后,所述节点的客户端可以发送最新版本的第一智能合约调用请求给第一接收模块501,第一接收模块501会接收所述最新版本的第一智能合约调用请求。其中,所述最新版本的第一智能合约调用请求包括最新版本的第一智能合约的合约地址;所述节点是在区块链中进行交易和数据交换的网络节点,可以采用服务器实现。
在接收到所述最新版本的第一智能合约调用请求之后,第一生效管理模块502可以根据所述最新版本的第一智能合约的合约地址获得最新版的第一智能合约生效条件,然后判断当前节点是否满足所述最新版本的第一智能合约生效条件,如果所述当前节点满足所述最新版本的第一智能合约生效条件,那么所述生效装置确定最新版本的第一智能合约生效,会调用所述最新版本的第一智能合约。其中,所述当前节点是指接收所述最新版本的第一智能合约调用请求的服务器所在的节点;所述最新版本的第一智能合约生效条件是预设的,可以与最新版本第一智能合约的合约地址对应;所述最新版本的第一智能合约生效条件根据实际需要进行设置,本发明实施例不做限定。可理解的是,可以在部署最新版本的第一智能合约的时候将与最新版本的第一智能合约对应的最新版本的第一智能合约生效条件同时部署。
在确认所述最新版本的第一智能合约生效之后,第一合约模块503可以根据所述最新版本的第一智能合约的合约地址,获取所述最新版本的第一智能合约,并执行所述最新版本的第一智能合约。
本发明实施例提供的区块链智能合约的同步生效装置,由于能够接收包括最新版本的第一智能合约的合约地址的最新版本的第一智能合约调用请求,并根据最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,在判断获知当前节点满足最新版本的第一智能合约生效条件之后,确认最新版本的第一智能合约生效,然后获取最新版本的第一智能合约并执行,满足最新版本的第一智能合约生效条件的节点才会执行最新版本的第一智能合约,使最新版本的第二智能合约在各个节点能够同步生效,保证了最新版本的第一智能合约在不同区块连节点分别执行的准确性。
图6为本发明另一实施例提供的区块链智能合约的同步生效装置的结构示意图,如图6所示,本发明实施例提供的区块链智能合约的同步生效装置包括第二接收模块601、路由模块602、第二生效管理模块603和第二合约模块604,其中:
第二接收模块601用于接收第二智能合约调用请求;路由模块602用于根据所述第二智能合约调用请求,获取第二智能合约地址;第二生效管理模块603用于根据所述第二智能合约的合约地址获得最新版本的第二智能合约生效条件,若判断获知所述当前节点满足所述最新版本的第二智能合约生效条件,则确定最新版本的第二智能合约生效;其中,所述最新版本的第二智能合约生效条件是预设的,与最新版本的第二智能合约的合约地址对应;第二合约模块604用于获取所述最新版本的第二智能合约并执行。
具体地,在对区块链的各个节点部署的第二智能合约进行升级,获得最新版本第二智能合约之后,所述节点的客户端可以发送第二智能合约调用请求给第二接收模块601,第二接收模块601会接收所述第二智能合约调用请求。
在接收到所述第二智能合约调用请求之后,路由模块602可以根据所述第二智能合约调用请求,获得第二智能合约的合约地址。其中,所述第二智能合约的合约地址可以是最新版本的第二智能合约的合约地址,也可以是旧版本的第二智能合约的合约地址,本发明实施例不做限定。当所述第二智能合约的合约地址为旧版本的第二智能合约的合约地址时,所述生效装置可以通过预先设置的路由关系获得最新版本的第二智能合约的合约地址。
在接收到所述第二智能合约的合约地址之后,第二生效管理模块603可以根据所述第二智能合约的合约地址获得最新版本的第二智能合约生效条件,然后判断当前节点是否满足所述最新版本的第二智能合约生效条件,如果所述当前节点满足所述最新版本的第二智能合约生效条件,那么第二生效管理模块603确定最新版本的第二智能合约生效,会调用最新版本的所述第二智能合约。其中,所述当前节点是指接收所述最新版本的第二智能合约调用请求的服务器所在的节点;所述最新版本的第二智能合约生效条件是预设的,与第二智能合约的合约地址对应;所述最新版本的第二智能合约生效条件根据实际需要进行设置,本发明实施例不做限定。可理解的是,可以在部署最新版本的第二智能合约的时候将与最新版本的第二智能合约对应的最新版本的第二智能合约生效条件同时部署。
在确认所述最新版本的第二智能合约生效之后,第二合约模块604可以根据所述最新版本的第二智能合约的合约地址,获取所述最新版本的第二智能合约,并执行所述最新版本的第二智能合约。
本发明实施例提供的区块链智能合约的同步生效装置,由于能够接收第二智能合约调用请求,根据第二智能合约调用请求,获取第二智能合约的合约地址,根据第二智能合约的合约地址获得最新版本的第二智能合约生效条件,在判断获知当前节点满足最新版本的第二智能合约生效条件之后,确定最新版本的第二智能合约生效,然后获取最新版本的第二智能合约并执行,满足最新版本的第二智能合约生效条件的节点才会执行最新版本的第二智能合约,使最新版本的第二智能合约在各个节点能够同步生效,保证了最新版本的第二智能合约在不同区块连节点分别执行的准确性。
本发明实施例提供的装置的实施例具体可以用于执行上述相应方法实施例的处理流程,其功能在此不再赘述,可以参照上述相应方法实施例的详细描述。
图7为本发明一实施例提供的电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行如下方法:接收最新版本的第一智能合约调用请求,所述最新版本的第一智能合约调用请求包括第一智能合约的合约地址;根据所述最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,若判断获知当前节点满足所述最新版本的第一智能合约生效条件,则确认最新版本的第一智能合约生效;其中,所述最新版本的第一智能合约生效条件是预设的,与所述最新版本的第一智能合约的合约地址对应;获取所述最新版本的第一智能合约并执行。
或者,接收第二智能合约调用请求;根据所述第二智能合约调用请求,获取第二智能合约的合约地址;根据所述第二智能合约的合约地址获得最新版本的第二智能合约生效条件,若判断获知所述当前节点满足所述最新版本的第二智能合约生效条件,则确定最新版本的第二智能合约生效;其中,所述最新版本的第二智能合约生效条件是预设的,与第二智能合约的合约地址对应;获取所述最新版本的第二智能合约并执行。
本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收最新版本的第一智能合约调用请求,所述最新版本的第一智能合约调用请求包括第一智能合约的合约地址;根据所述最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,若判断获知当前节点满足所述最新版本的第一智能合约生效条件,则确认最新版本的第一智能合约生效;其中,所述最新版本的第一智能合约生效条件是预设的,与所述最新版本的第一智能合约的合约地址对应;获取所述最新版本的第一智能合约并执行。
或者,接收第二智能合约调用请求;根据所述第二智能合约调用请求,获取第二智能合约的合约地址;根据所述第二智能合约的合约地址获得最新版本的第二智能合约生效条件,若判断获知所述当前节点满足所述最新版本的第二智能合约生效条件,则确定最新版本的第二智能合约生效;其中,所述最新版本的第二智能合约生效条件是预设的,与第二智能合约的合约地址对应;获取所述最新版本的第二智能合约并执行。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收最新版本的第一智能合约调用请求,所述最新版本的第一智能合约调用请求包括第一智能合约的合约地址;根据所述最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,若判断获知当前节点满足所述最新版本的第一智能合约生效条件,则确认最新版本的第一智能合约生效;其中,所述最新版本的第一智能合约生效条件是预设的,与所述最新版本的第一智能合约的合约地址对应;获取所述最新版本的第一智能合约并执行。
或者,接收第二智能合约调用请求;根据所述第二智能合约调用请求,获取第二智能合约的合约地址;根据所述第二智能合约的合约地址获得最新版本的第二智能合约生效条件,若判断获知所述当前节点满足所述最新版本的第二智能合约生效条件,则确定最新版本的第二智能合约生效;其中,所述最新版本的第二智能合约生效条件是预设的,与第二智能合约的合约地址对应;获取所述最新版本的第二智能合约并执行。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种区块链智能合约的同步生效方法,其特征在于,包括:
在区块链各个节点部署的第一智能合约升级并获得最新版本的第一智能合约之后接收最新版本的第一智能合约调用请求,所述最新版本的第一智能合约调用请求包括最新版本的第一智能合约的合约地址;
根据所述最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,若判断获知当前节点满足所述最新版本的第一智能合约生效条件,则确认最新版本的第一智能合约生效;其中,所述最新版本的第一智能合约生效条件是预设的,与所述最新版本的第一智能合约的合约地址对应;
在确认所述最新版本的第一智能合约生效之后获取所述最新版本的第一智能合约并执行。
2.根据权利要求1所述的方法,其特征在于,还包括:
若判断获知所述当前节点不满足所述最新版本的第一智能合约生效条件,则拒绝所述最新版本的第一智能合约调用请求。
3.根据权利要求1所述的方法,其特征在于,还包括:
若判断获知所述当前节点不满足所述最新版本的第一智能合约生效条件,则确认调用所述最新版本的第一智能合约升级前的第一智能合约;
获取所述升级前的第一智能合约并执行。
4.一种区块链智能合约的同步生效方法,其特征在于,包括:
在区块链各个节点部署的第二智能合约升级并获得最新版本的第二智能合约之后接收第二智能合约调用请求;
根据所述第二智能合约调用请求,获取第二智能合约的合约地址;其中,所述第二智能合约的合约地址,是最新版本的第二智能合约的合约地址,或,是旧版本的第二智能合约的合约地址;当所述第二智能合约的合约地址是旧版本的第二智能合约的合约地址时,还通过预先设置的路由关系获得最新版本的第二智能合约的合约地址;
根据所述最新版本的第二智能合约的合约地址获得最新版本的第二智能合约生效条件,若判断获知当前节点满足所述最新版本的第二智能合约生效条件,则确定最新版本的第二智能合约生效;其中,所述最新版本的第二智能合约生效条件是预设的,与所述最新版本的第二智能合约的合约地址对应;
在确认所述最新版本的第二智能合约生效之后获取所述最新版本的第二智能合约并执行。
5.根据权利要求4所述的方法,其特征在于,还包括:
若判断获知所述当前节点不满足所述最新版本的第二智能合约生效条件,则拒绝所述最新版本的第二智能合约调用请求。
6.根据权利要求4所述的方法,其特征在于,还包括:
若判断获知所述当前节点不满足所述最新版本的第二智能合约生效条件,则确认调用最新版本的第二智能合约升级前的第二智能合约;
获取所述升级前的第二智能合约并执行。
7.一种区块链智能合约的同步生效装置,其特征在于,包括:
第一接收模块,用于在区块链各个节点部署的第一智能合约升级并获得最新版本的第一智能合约之后接收最新版本的第一智能合约调用请求,所述最新版本的第一智能合约调用请求包括最新版本的第一智能合约的合约地址;
第一生效管理模块,用于根据所述最新版本的第一智能合约的合约地址获得最新版本的第一智能合约生效条件,若判断获知当前节点满足所述最新版本的第一智能合约生效条件,则确认最新版本的第一智能合约生效;其中,所述最新版本的第一智能合约生效条件是预设的,与所述最新版本的第一智能合约的合约地址对应;
第一合约模块,用于在确认所述最新版本的第一智能合约生效之后获取所述最新版本的第一智能合约并执行。
8.一种区块链智能合约的同步生效装置,其特征在于,包括:
第二接收模块,用于在区块链各个节点部署的第二智能合约升级并获得最新版本的第二智能合约之后接收第二智能合约调用请求;
路由模块,用于根据所述第二智能合约调用请求,获取第二智能合约地址;其中,所述第二智能合约的合约地址,是最新版本的第二智能合约的合约地址,或,是旧版本的第二智能合约的合约地址;当所述第二智能合约的合约地址是旧版本的第二智能合约的合约地址时,还用于通过预先设置的路由关系获得最新版本的第二智能合约的合约地址;
第二生效管理模块,用于根据所述最新版本的第二智能合约的合约地址获得最新版本的第二智能合约生效条件,若判断获知当前节点满足所述最新版本的第二智能合约生效条件,则确定最新版本的第二智能合约生效;其中,所述最新版本的第二智能合约生效条件是预设的,与所述最新版本的第二智能合约的合约地址对应;
第二合约模块,用于在确认所述最新版本的第二智能合约生效之后获取所述最新版本的第二智能合约并执行。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的区块链智能合约的同步生效方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述的区块链智能合约的同步生效方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811604786.2A CN109885612B (zh) | 2018-12-26 | 2018-12-26 | 区块链智能合约的同步生效方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811604786.2A CN109885612B (zh) | 2018-12-26 | 2018-12-26 | 区块链智能合约的同步生效方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109885612A CN109885612A (zh) | 2019-06-14 |
CN109885612B true CN109885612B (zh) | 2021-04-20 |
Family
ID=66925324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811604786.2A Active CN109885612B (zh) | 2018-12-26 | 2018-12-26 | 区块链智能合约的同步生效方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885612B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413304B (zh) * | 2019-07-31 | 2023-07-14 | 中国工商银行股份有限公司 | 基于区块链网络的智能合约热升级方法及装置 |
CN111639127B (zh) * | 2020-05-11 | 2022-05-13 | 支付宝实验室(新加坡)有限公司 | 一种智能合约的更新方法、系统、装置及设备 |
CN111932215B (zh) * | 2020-09-18 | 2023-09-29 | 杭州趣链科技有限公司 | 一种智能合约版本的管理方法、设备及可读存储介质 |
CN113438109B (zh) * | 2021-06-23 | 2022-06-07 | 预言机(重庆)科技有限公司 | 一种基于网络节点的区块链协议升级方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681943A (zh) * | 2018-05-18 | 2018-10-19 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的数据处理方法、装置、设备及存储介质 |
CN108694669A (zh) * | 2018-07-18 | 2018-10-23 | 矩阵元技术(深圳)有限公司 | 一种区块链智能合约实现方法及装置 |
CN108830606A (zh) * | 2018-05-30 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 智能合约的部署、调用、执行方法和装置 |
CN108833398A (zh) * | 2018-06-08 | 2018-11-16 | 浙江超脑时空科技有限公司 | 一种区块链智能合约更新方法、装置及设备 |
CN108881312A (zh) * | 2018-08-24 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 智能合约升级方法、系统和相关设备以及存储介质 |
CN109003078A (zh) * | 2018-06-27 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 基于区块链的智能合约调用方法及装置、电子设备 |
CN109003185A (zh) * | 2018-06-29 | 2018-12-14 | 中国银联股份有限公司 | 一种智能合约的建立方法、装置、计算设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102946559B (zh) * | 2012-10-29 | 2016-09-21 | 北京中传瑞智市场调查有限公司 | 一种数字电视终端的升级方法、终端、服务器及其系统 |
US10225076B2 (en) * | 2017-02-17 | 2019-03-05 | Tianqing Leng | Splitting digital promises recorded in a blockchain |
US20180260921A1 (en) * | 2017-03-08 | 2018-09-13 | Bsquare Corp. | Remote machine operation through distributed permissioning |
CN107423945B (zh) * | 2017-04-13 | 2020-12-29 | 葛武 | 基于区块链技术的智能能源交易管理系统及方法 |
CN107911373B (zh) * | 2017-11-24 | 2019-09-06 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种区块链权限管理方法及系统 |
CN107918666B (zh) * | 2017-11-24 | 2020-05-12 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种区块链上的数据同步方法和系统 |
CN108197913B (zh) * | 2017-12-18 | 2021-01-05 | 深圳前海微众银行股份有限公司 | 基于区块链的支付方法、系统以及计算机可读存储介质 |
CN108196872A (zh) * | 2017-12-27 | 2018-06-22 | 邵美 | 一种区块链系统中智能合约的升级方法 |
CN108510389B (zh) * | 2018-03-30 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 基于区块链的智能合约调用方法、设备及可读存储介质 |
-
2018
- 2018-12-26 CN CN201811604786.2A patent/CN109885612B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681943A (zh) * | 2018-05-18 | 2018-10-19 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的数据处理方法、装置、设备及存储介质 |
CN108830606A (zh) * | 2018-05-30 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 智能合约的部署、调用、执行方法和装置 |
CN108833398A (zh) * | 2018-06-08 | 2018-11-16 | 浙江超脑时空科技有限公司 | 一种区块链智能合约更新方法、装置及设备 |
CN109003078A (zh) * | 2018-06-27 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 基于区块链的智能合约调用方法及装置、电子设备 |
CN109003185A (zh) * | 2018-06-29 | 2018-12-14 | 中国银联股份有限公司 | 一种智能合约的建立方法、装置、计算设备及存储介质 |
CN108694669A (zh) * | 2018-07-18 | 2018-10-23 | 矩阵元技术(深圳)有限公司 | 一种区块链智能合约实现方法及装置 |
CN108881312A (zh) * | 2018-08-24 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 智能合约升级方法、系统和相关设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
智能合约的形式化验证方法;胡凯,等;《信息安全研究》;20161231;第2卷(第12期);第1080-1089页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109885612A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885612B (zh) | 区块链智能合约的同步生效方法及装置 | |
CN110544097A (zh) | 智能合约版本控制、调用和升级方法、设备及存储介质 | |
CN110046029A (zh) | 应用于集群内多级缓存的数据处理方法和装置 | |
CN110225078B (zh) | 一种应用服务更新方法、系统及终端设备 | |
CN111694638A (zh) | 规则包加载方法、规则包执行方法及终端设备 | |
US11301237B2 (en) | Upgrading method and apparatus | |
CN111654399B (zh) | 基于sd-wan的组网方法、装置、设备及存储介质 | |
CN110163572B (zh) | 一种链码函数处理方法、装置及设备 | |
CN111143023A (zh) | 一种资源变更的方法及装置、设备、存储介质 | |
CN112035344A (zh) | 多场景测试方法、装置、设备和计算机可读存储介质 | |
US20150006736A1 (en) | Method and System for Deploying and Modifying a Service-Oriented Architecture Deployment Environment | |
CN116257438A (zh) | 接口测试用例的更新方法及相关设备 | |
CN109859038B (zh) | 一种区块链智能合约的生效方法及装置 | |
CN108664343B (zh) | 一种微服务的有状态调用方法及装置 | |
CN110119429B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN109933407B (zh) | 区块链dapp虚拟机、数据处理方法和计算设备 | |
CN110489090B (zh) | 一种基于应用模型的应用软件开发方法及系统 | |
CN112395339A (zh) | 系统间数据准入校验方法、装置、计算机设备和存储介质 | |
CN107277108B (zh) | 一种区块链的节点处的消息处理方法、装置及系统 | |
CN115469833A (zh) | 动态规则引擎的实现方法和装置、电子设备和存储介质 | |
CN111651469B (zh) | 一种管理区块链系统合约的方法和装置 | |
CN114756227A (zh) | 一种资源发布的处理方法和装置 | |
CN114064678A (zh) | 事件数据处理方法、装置及终端设备 | |
CN112650627A (zh) | 智能合约的数据恢复方法、装置、终端设备及存储介质 | |
CN112565340A (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 |