CN110413304A - 基于区块链网络的智能合约热升级方法及装置 - Google Patents
基于区块链网络的智能合约热升级方法及装置 Download PDFInfo
- Publication number
- CN110413304A CN110413304A CN201910701069.XA CN201910701069A CN110413304A CN 110413304 A CN110413304 A CN 110413304A CN 201910701069 A CN201910701069 A CN 201910701069A CN 110413304 A CN110413304 A CN 110413304A
- Authority
- CN
- China
- Prior art keywords
- block chain
- intelligent contract
- new version
- chain node
- contract
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- 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/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于区块链网络的智能合约热升级方法及装置,该方法包括:区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本;当判断所有区块链节点上的智能合约新版本部署完毕时,将智能合约旧版本切换为所述智能合约新版本。本发明提供的基于区块链的智能合约热升级方法及,可以在不中断业务运行方式下,高效安全地升级智能合约。借助智能合约热升级技术,可以让智能合约升级时候无需停止服务,从而有效提高智能合约服务能力。
Description
技术领域
本发明涉及区块链技术领域,具体涉及区块链智能合约升级的相关技术领域,特别是涉及一种基于区块链网络的智能合约热升级方法及装置。
背景技术
智能合约是1990年代由尼克萨博提出的理念,几乎与互联网同龄。由于缺少可信的执行环境,智能合约并没有被应用到实际产业中。智能合约是编程在区块链上的汇编语言。通常人们不会自己编写字节码,但是会从更高级的语言来编译它。
现有技术中,升级一个区块链的智能合约,需要停止当前智能合约的运行,把智能合约从区块链网络上卸载下来,然后把最新版本的智能合约包上传到区块链网络上,等完成安装、启动后,才能再次继续业务执行流程。这种中断业务式的智能合约升级方式,不满足实时业务要求。
发明内容
针对现有技术中的问题,本发明提供的基于区块链网络的智能合约热升级方法及装置,可以在不中断业务运行方式下,高效安全地升级智能合约。借助智能合约热升级技术,可以让智能合约升级时候无需停止服务,从而有效提高智能合约服务能力。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种基于区块链网络的智能合约热升级方法,包括:
区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本;
当判断所有区块链节点上的智能合约新版本部署完毕时,将智能合约旧版本切换为所述智能合约新版本。
优选地,智能合约热升级方法还包括:
判断所有区块链节点上的的智能合约新版本是否部署完毕。
优选地,智能合约热升级方法还包括:
将所述交易请求广播至区块链网络中。
优选地,所述区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本,包括:
根据共识算法对所述升级请求进行共识处理,生成所述智能合约在各区块链节点的升级顺序;
按照所述升级顺序将所述智能合约新版本进行部署。
优选地,所述判断所有区块链节点上的的智能合约新版本是否部署完毕,包括:
判断所述区块链网络中的一区块链节点部署所述智能合约新版本是否完毕;
当判断结果为所述区块链节点部署所述智能合约新版本完毕时,向其他区块链节点广播部署完毕报文;
判断所述区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值的大小;
当判断结果为所述区块链节点接收到的所述部署完毕报文数目等于区块链节点总数目减去一的数值时,判断所述智能合约新版本在所述区块链节点上部署完毕;
当所有区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值均相等时,判断所述智能合约新版本在所有区块链节点上部署完毕。
优选地,智能合约热升级方法还包括:所述区块链节点将切换动作及所述智能合约新版本持久化。
优选地,智能合约热升级方法还包括:
判断所述终端对所述智能合约发起所述交易请求时所述智能合约新版是否已经在所有区块链节点上均部署完毕;
当判断结果为终端对所述智能合约发起交易请求时所述智能合约新版没有在所有区块链节点上部署完毕时,利用所述智能合约旧版本执行所述交易请求;
当判断结果为终端对所述智能合约发起交易请求时所述智能合约新版已经在所有区块链节点上部署完毕时,利用所述智能合约新版本执行所述交易请求。
第二方面,本发明提供一种基于区块链网络的智能合约热升级装置,该装置包括:
接收单元,用于区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本;
切换单元,用于当判断所有区块链节点上的智能合约新版本部署完毕时,将智能合约旧版本切换为所述智能合约新版本。
优选地,智能合约热升级装置还包括:
第一判断单元,用于判断所有区块链节点上的的智能合约新版本是否部署完毕。
优选地,智能合约热升级装置还包括:
广播单元,用于将所述交易请求广播至区块链网络中。
优选地,接收单元包括:
共识模块,用于根据共识算法对所述升级请求进行共识处理,生成所述智能合约在各区块链节点的升级顺序;
部署模块,用于按照所述升级顺序将所述智能合约新版本进行部署。
优选地,所述第一判断单元包括:
第一判断模块,用于判断所述区块链网络中的一区块链节点部署所述智能合约新版本是否完毕;
广播模块,用于当判断结果为所述区块链节点部署所述智能合约新版本完毕时,向其他区块链节点广播部署完毕报文;
第二判断模块,用于判断所述区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值的大小;
第三判断模块,用于当判断结果为所述区块链节点接收到的所述部署完毕报文数目等于区块链节点总数目减去一的数值时,判断所述智能合约新版本在所述区块链节点上部署完毕;
第四判断模块,用于当所有区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值均相等时,判断所述智能合约新版本在所有区块链节点上部署完毕。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现智能合约热升级方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现智能合约热升级方法的步骤。
从上述描述可知,本发明提供的基于区块链网络的智能合约热升级方法及装置,首先通过区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本,接着判断所有区块链节点上的智能合约新版本是否部署完毕,当判断结果为部署完毕时,才将智能合约旧版本切换为所述智能合约新版本。本发明所提供的基于区块链网络的智能合约热升级方法可以在不中断业务运行方式下,高效安全地升级智能合约。借助智能合约热升级技术,可以让智能合约升级时候无需停止服务,实现7×24提供服务,有效提高智能合约服务能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例中基于区块链网络的智能合约热升级方法流程示意图一;
图2为本发明的实施例中区块链网络网络结构示意图;
图3为本发明的实施例中基于区块链网络的智能合约热升级方法流程示意图二;
图4为本发明的实施例中基于区块链网络的智能合约热升级方法流程示意图三;
图5为本发明的实施例中智能合约热升级方法步骤100的流程示意图;
图6为本发明的实施例中智能合约热升级方法步骤3000的流程示意图;
图7为本发明的实施例中基于区块链网络的智能合约热升级方法流程示意图四;
图8为本发明的具体应用实例中基于区块链网络的智能合约热升级方法的流程示意图;
图9为本发明的具体应用实例中智能合约热升级的共识流程示意图;
图10为本发明的具体应用实例中基于区块链网络的智能合约热升级装置的结构示意图;
图11为本发明的实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例提供一种基于区块链网络的智能合约热升级方法的具体实施方式,参见图1该方法10具体包括如下内容:
步骤100:区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本。
在步骤100中的区块链网络包括多个区块链节点以及在区块链节点上部署的智能合约。其中多个区块链节点之间进行网络连接,每个区块链节点上都部署有功能等同的智能合约,智能合约和区块链节点之间通过网络连接来通讯。
一实施例中,参见图2,区块链网络还包括一个成员管理节点1和多个验证节点2(相当于步骤100中的区块链节点)以及在验证节点上部署的智能合约3。其中成员管理节点1与所有验证节点2之间、所有验证节点2相互之间进行网络连接,每个验证节点上都部署有功能等同的智能合约3,智能合约3和验证节点2之间通过网络连接来通讯。
所述“成员管理节点1”可以为一台服务器或多台相互备份的服务器,通过为验证节点2签发证书进行身份认证和准入校验,为整个区块链网络提供成员管理服务。
所述“验证节点2”是指区块链中对交易进行接收、广播、共识、执行和存储的网络节点,一般是各区块链成员的可信服务器、工作站等,负责把用户的请求封装成交易再广播到其他验证节点,或者根据区块链共识算法的规则对其他验证节点广播的交易进行共识,对于共识通过的交易会进行智能合约处理,最后根据处理的结果生成区块并进行持久化保存。同时,验证节点2负责部署、调用和终止智能合约3,负责管理智能合约3的全部生命周期活动。
所述智能合约3是指部署在区块链上的一段可以自动执行条款的计算机程序。智能合约能够根据外界输入信息自动执行预先定义好的协议并完成区块链内部相关状态的转移。为了安全目的,智能合约3作为沙箱被封装起来,其执行环境被隔离,智能合约3无法访问沙箱外的资源,无法访问操作系统网络、文件系统、进程线程等系统资源。
步骤200:当判断所有区块链节点上的智能合约新版本部署完毕时,将智能合约旧版本切换为所述智能合约新版本。
可以理解的是,采用如步骤200中的方法可以在不中断业务运行方式下,升级智能合约。具体地,判断所述终端对所述智能合约发起所述交易请求时所述智能合约新版是否已经在所有区块链节点上均部署完毕;当判断结果为终端对所述智能合约发起交易请求时所述智能合约新版没有在所有区块链节点上部署完毕时,利用所述智能合约旧版本执行所述交易请求;当判断结果为终端对所述智能合约发起交易请求时所述智能合约新版已经在所有区块链节点上部署完毕时,利用所述智能合约新版本执行所述交易请求。
从上述描述可知,本发明提供的基于区块链网络的智能合约热升级方法,首先通过区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本,接着判断所有区块链节点上的智能合约新版本是否部署完毕,当判断结果为部署完毕时,才将智能合约旧版本切换为所述智能合约新版本。本发明所提供的基于区块链网络的智能合约热升级方法可以在不中断业务运行方式下,高效安全地升级智能合约。借助智能合约热升级技术,可以让智能合约升级时候无需停止服务,实现7×24提供服务,有效提高智能合约服务能力。
一实施例中,参见图3,基于区块链网络的智能合约热升级方法还包括:
步骤300:判断所有区块链节点上的的智能合约新版本是否部署完毕。
一实施例中,参见图4,基于区块链网络的智能合约热升级方法还包括:
步骤400:将所述交易请求广播至区块链网络中。
一实施例中,参见图5,步骤100包括:
步骤101:根据共识算法对所述交易请求(升级请求)进行共识处理,生成所述智能合约在各区块链节点的升级顺序。
步骤101在实施时,具体为:根据业务规则对交易的合法性进行判断,在合法性验证通过后,与其他节点根据约定好的共识算法对交易进行共识处理,这里的共识算法可以是POW(Proof Of Work,工作量证明)、POS(Proof Of Stake,股权证明)、DPOS(DelegatedProof Of Stake,委托股权证明)、PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)等,最后根据共识的结果确定交易的执行顺序,把交易打包成区块,并执行该区块。
步骤102:按照所述升级顺序将所述智能合约新版本进行部署。
把区块中的交易按顺序执行。具体地,逐个执行区块中的每笔交易。对于每笔交易的执行,解析交易请求的交易参数等信息,获取智能合约的ID,根据智能合约的ID,判断是否已经部署和启动,然后把交易请求发到对应的智能合约上,并等待智能合约返回的结果。如果交易执行成功,把交易执行的结果做持久化处理。
一实施例中,参见图6,步骤300包括:
步骤301:判断所述区块链网络中的一区块链节点部署所述智能合约新版本是否完毕。
步骤302:当判断结果为所述区块链节点部署所述智能合约新版本完毕时,向其他区块链节点广播部署完毕报文。
步骤303:判断所述区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值的大小。
步骤304:当判断结果为所述区块链节点接收到的所述部署完毕报文数目等于区块链节点总数目减去一的数值时,判断所述智能合约新版本在所述区块链节点上部署完毕。
在步骤301至步骤304中,某节点向其他节点广播其智能合约部署就绪报文。区块链网络的每个节点都会广播智能合约就绪报文。每个节点收到节点数减一个智能合约共识就绪的报文后,即向其他节点广播智能合约切换报文。每个节点收到节点数减一个报文之后,可认为该区块链网络所有节点达成一致共识,具备智能合约升级的条件,马上切到新智能合约。
步骤305:当所有区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值均相等时,判断所述智能合约新版本在所有区块链节点上部署完毕。
一实施例中,参见图7,基于区块链网络的智能合约热升级方法还包括:
步骤500:所述区块链节点将切换动作及所述智能合约新版本持久化。
可以理解的是,持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。
在对于共识通过的交易会进行智能合约处理后,需要根据处理的结果生成区块并进行持久化保存。
从上述描述可知,本发明提供的基于区块链网络的智能合约热升级方法,首先通过区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本,接着判断所有区块链节点上的智能合约新版本是否部署完毕,当判断结果为部署完毕时,才将智能合约旧版本切换为所述智能合约新版本。本发明所提供的基于区块链网络的智能合约热升级方法可以在不中断业务运行方式下,高效安全地升级智能合约。借助智能合约热升级技术,可以让智能合约升级时候无需停止服务,实现7×24提供服务,有效提高智能合约服务能力。
为进一步地说明本方案,本发明以验证节点与智能合约之间的交互过程为例,提供智能合约热升级方法的具体应用实例,该具体应用实例具体包括如下内容20,参见图8。
步骤S401:验证节点2接收到来自客户端的交易请求。
可以理解的是,验证节点2与区块链客户端建立restful网络连接,验证节点2作为服务端,接收区块链客户端的交易请求,然后通过与其他验证节点2建立RPC网络连接,把交易广播到其他验证节点2,进行后续的区块链共识处理。验证节点2还负责与智能合约3建立grpc通讯,在交易期间,把交易请求发送到智能合约3去执行,并接受智能合约3的返回的执行结果,把执行结果返回给客户端。
步骤S402:验证节点2把交易广播到区块链网络中的其他验证节点2。
步骤S403:所有验证节点根据约定好的共识算法对交易进行共识处理。
这里的共识算法可以是POW、POS、DPOS、PBFT等,最后根据共识的结果确定交易的执行顺序,把交易打包成区块,并把区块交给执行模块23执行。
步骤S404:所有验证节点2开始部署新版本的智能合约。
可以理解的是,智能合约3可以实现远程数据访问和存储。
步骤S405:所有验证节点2的执行模块23,在切到新智能合约之前,仍然调度旧的智能合约。
步骤S406:所有验证节点2收到其他验证节点2部署智能合约3就绪报文后,发起智能合约升级共识,智能合约升级共识经过其他验证节点2达成一致后,切换到新智能合约3。
步骤S407:所有验证节点2把对智能合约的调度切到新版本的智能合约。
步骤S408:所有验证节点2后续都调度新版本的智能合约。
步骤S409:智能合约3在区块链网络上部署旧智能合约。
步骤S410:智能合约3运行旧的智能合约业务逻辑。
步骤S411:智能合约3的执行引旧智能合约终止执行、下线。
步骤S412:智能合约3在区块链网络上开始部署新版本的智能合约业务逻辑。
步骤S413:智能合约部署成功,智能合约3反馈给验证节点2。
验证节点2广播智能合约部署信息给其他所有的验证节点2。
步骤S414:智能合约3将新版本的智能合约业务逻辑上线。
需要说明的是,上述步骤并不是以时间为顺序执行的,而是多个步骤以交互形式进行操作,具体参见图8。
另外,本具体应用实例还提供一种智能合约热升级的共识流程图,参见图9,具体包括如下内容:
步骤S501:验证节点2在自身的智能合约部署完毕后,向其他验证节点2广播其智能合约部署就绪报文。区块链网络的每个验证节点都会广播智能合约就绪报文。
本具体应用实施例的共识算法基于拜占庭容错协议PBFT实现,但不完全跟PBFT相同,而是对PBFT做了改进。假设区块链网络内一共有n个节点,n>=3f+1,PBFT协议可以容忍f个节点失效,剩余2f+1个节点仍然可以保证系统正确性。
步骤S502:验证节点2收到智能合约就绪报文。每个验证节点收到2f+1个智能合约共识就绪的报文后(包括自身的智能合约部署就绪报文),即向其他验证节点2广播智能合约切换报文。
步骤S503:验证节点2收到智能合约切换报文。每个验证节点2收到2f+1个报文之后,可认为该区块链网络所有验证节点达成一致共识,具备智能合约3升级的条件,马上切到新智能合约3。
步骤S504:切换到新智能合约的验证节点2,把切换动作和新智能合约3存储到本节点的block数据,持久化到文件系统。另外的f个节点重新生效进入区块链网络后,从其他2f+1个节点同步该block数据,从block数据获取新智能合约3,部署并升级到新智能合约3。
从上述描述可知,本发明提供的基于区块链网络的智能合约热升级方法,首先通过区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本,接着判断所有区块链节点上的智能合约新版本是否部署完毕,当判断结果为部署完毕时,才将智能合约旧版本切换为所述智能合约新版本。本发明所提供的基于区块链网络的智能合约热升级方法可以在不中断业务运行方式下,高效安全地升级智能合约。借助智能合约热升级技术,可以让智能合约升级时候无需停止服务,实现7×24提供服务,有效提高智能合约服务能力。
基于同一发明构思,本申请实施例还提供了基于区块链网络的智能合约热升级装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于基于区块链网络的智能合约热升级装置解决问题的原理与智能合约热升级方法相似,因此基于区块链网络的智能合约热升级装置的实施可以参见智能合约热升级方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明的实施例提供一种能够实现智能合约热升级方法的基于区块链网络的智能合约热升级装置的具体实施方式,参见图10,基于区块链网络的智能合约热升级装置具体包括如下内容:
接收单元10,用于区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本;
切换单元20,用于当判断所有区块链节点上的智能合约新版本部署完毕时,将智能合约旧版本切换为所述智能合约新版本。
优选地,智能合约热升级装置还包括:
第一判断单元,用于判断所有区块链节点上的的智能合约新版本是否部署完毕。
优选地,智能合约热升级装置还包括:
广播单元,用于将所述交易请求广播至区块链网络中。
优选地,接收单元包括:
共识模块,用于根据共识算法对所述升级请求进行共识处理,生成所述智能合约在各区块链节点的升级顺序;
部署模块,用于按照所述升级顺序将所述智能合约新版本进行部署。
优选地,所述第一判断单元包括:
第一判断模块,用于判断所述区块链网络中的一区块链节点部署所述智能合约新版本是否完毕;
广播模块,用于当判断结果为所述区块链节点部署所述智能合约新版本完毕时,向其他区块链节点广播部署完毕报文;
第二判断模块,用于判断所述区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值的大小;
第三判断模块,用于当判断结果为所述区块链节点接收到的所述部署完毕报文数目等于区块链节点总数目减去一的数值时,判断所述智能合约新版本在所述区块链节点上部署完毕;
第四判断模块,用于当所有区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值均相等时,判断所述智能合约新版本在所有区块链节点上部署完毕。
从上述描述可知,本发明提供的基于区块链网络的智能合约热升级装置,首先通过区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本,接着判断所有区块链节点上的智能合约新版本是否部署完毕,当判断结果为部署完毕时,才将智能合约旧版本切换为所述智能合约新版本。本发明所提供的基于区块链网络的智能合约热升级方法可以在不中断业务运行方式下,高效安全地升级智能合约。借助智能合约热升级技术,可以让智能合约升级时候无需停止服务,实现7×24提供服务,有效提高智能合约服务能力。
本申请的实施例还提供能够实现上述实施例中的智能合约热升级方法中全部步骤的一种电子设备的具体实施方式,参见图11,电子设备具体包括如下内容:
处理器(processor)1201、存储器(memory)1202、通信接口(CommunicationsInterface)1203和总线1204;
其中,处理器1201、存储器1202、通信接口1203通过总线1204完成相互间的通信;通信接口1203用于实现服务器端设备、接收设备以及用户端设备等相关设备之间的信息传输。
处理器1201用于调用存储器1202中的计算机程序,处理器执行计算机程序时实现上述实施例中的智能合约热升级方法中的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本;
步骤200:当判断所有区块链节点上的智能合约新版本部署完毕时,将智能合约旧版本切换为所述智能合约新版本。
从上述描述可知,本申请实施例中的电子设备,首先通过区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本,接着判断所有区块链节点上的智能合约新版本是否部署完毕,当判断结果为部署完毕时,才将智能合约旧版本切换为所述智能合约新版本。本发明所提供的基于区块链网络的智能合约热升级方法可以在不中断业务运行方式下,高效安全地升级智能合约。借助智能合约热升级技术,可以让智能合约升级时候无需停止服务,实现7×24提供服务,有效提高智能合约服务能力。
本申请的实施例还提供能够实现上述实施例中的智能合约热升级方法中全部步骤的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的智能合约热升级方法的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本;
步骤200:当判断所有区块链节点上的智能合约新版本部署完毕时,将智能合约旧版本切换为所述智能合约新版本。
从上述描述可知,本申请实施例中的计算机可读存储介质,首先通过区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本,接着判断所有区块链节点上的智能合约新版本是否部署完毕,当判断结果为部署完毕时,才将智能合约旧版本切换为所述智能合约新版本。本发明所提供的基于区块链网络的智能合约热升级方法可以在不中断业务运行方式下,高效安全地升级智能合约。借助智能合约热升级技术,可以让智能合约升级时候无需停止服务,实现7×24提供服务,有效提高智能合约服务能力。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种基于区块链网络的智能合约热升级方法,其特征在于,包括:
区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本;
当判断所有区块链节点上的智能合约新版本部署完毕时,将智能合约旧版本切换为所述智能合约新版本。
2.根据权利要求1所述的智能合约热升级方法,其特征在于,还包括:
判断所有区块链节点上的的智能合约新版本是否部署完毕。
3.根据权利要求1所述的智能合约热升级方法,其特征在于,还包括:
将所述交易请求广播至区块链网络中。
4.根据权利要求1所述的智能合约热升级方法,其特征在于,所述区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本,包括:
根据共识算法对所述升级请求进行共识处理,生成所述智能合约在各区块链节点的升级顺序;
按照所述升级顺序将所述智能合约新版本进行部署。
5.根据权利要求2所述的智能合约热升级方法,其特征在于,所述判断所有区块链节点上的的智能合约新版本是否部署完毕,包括:
判断所述区块链网络中的一区块链节点部署所述智能合约新版本是否完毕;
当判断结果为所述区块链节点部署所述智能合约新版本完毕时,向其他区块链节点广播部署完毕报文;
判断所述区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值的大小;
当判断结果为所述区块链节点接收到的所述部署完毕报文数目等于区块链节点总数目减去一的数值时,判断所述智能合约新版本在所述区块链节点上部署完毕;
当所有区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值均相等时,判断所述智能合约新版本在所有区块链节点上部署完毕。
6.根据权利要求1所述的智能合约热升级方法,其特征在于,还包括:所述区块链节点将切换动作及所述智能合约新版本持久化。
7.根据权利要求5所述的智能合约热升级方法,其特征在于,还包括:
判断所述终端对所述智能合约发起所述交易请求时所述智能合约新版是否已经在所有区块链节点上均部署完毕;
当判断结果为终端对所述智能合约发起交易请求时所述智能合约新版没有在所有区块链节点上部署完毕时,利用所述智能合约旧版本执行所述交易请求;
当判断结果为终端对所述智能合约发起交易请求时所述智能合约新版已经在所有区块链节点上部署完毕时,利用所述智能合约新版本执行所述交易请求。
8.一种基于区块链网络的智能合约热升级装置,其特征在于,包括:
接收单元,用于区块链网络的区块链节点根据预先接收的终端发起的交易请求部署智能合约的新版本;
切换单元,用于当判断所有区块链节点上的智能合约新版本部署完毕时,将智能合约旧版本切换为所述智能合约新版本。
9.根据权利要求8所述的智能合约热升级装置,其特征在于,还包括:
第一判断单元,用于判断所有区块链节点上的的智能合约新版本是否部署完毕。
10.根据权利要求8所述的智能合约热升级装置,其特征在于,还包括:
广播单元,用于将所述交易请求广播至区块链网络中。
11.根据权利要求8所述的智能合约热升级装置,其特征在于,所述接收单元包括:
共识模块,用于根据共识算法对所述升级请求进行共识处理,生成所述智能合约在各区块链节点的升级顺序;
部署模块,用于按照所述升级顺序将所述智能合约新版本进行部署。
12.根据权利要求9所述的智能合约热升级装置,其特征在于,所述第一判断单元包括:
第一判断模块,用于判断所述区块链网络中的一区块链节点部署所述智能合约新版本是否完毕;
广播模块,用于当判断结果为所述区块链节点部署所述智能合约新版本完毕时,向其他区块链节点广播部署完毕报文;
第二判断模块,用于判断所述区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值的大小;
第三判断模块,用于当判断结果为所述区块链节点接收到的所述部署完毕报文数目等于区块链节点总数目减去一的数值时,判断所述智能合约新版本在所述区块链节点上部署完毕;
第四判断模块,用于当所有区块链节点接收到的所述部署完毕报文数目与区块链节点总数目减去一的数值均相等时,判断所述智能合约新版本在所有区块链节点上部署完毕。
13.根据权利要求8所述的智能合约热升级装置,其特征在于,还包括:
持久化单元,用于所述区块链节点将切换动作及所述智能合约新版本持久化。
14.根据权利要求12所述的智能合约热升级装置,其特征在于,还包括:
第二判断单元,用于判断所述终端对所述智能合约发起所述交易请求时所述智能合约新版是否已经在所有区块链节点上均部署完毕;
旧版本执行单元,用于当判断结果为终端对所述智能合约发起交易请求时所述智能合约新版没有在所有区块链节点上部署完毕时,利用所述智能合约旧版本执行所述交易请求;
新版本执行单元,用于当判断结果为终端对所述智能合约发起交易请求时所述智能合约新版已经在所有区块链节点上部署完毕时,利用所述智能合约新版本执行所述交易请求。
15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述智能合约热升级方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述智能合约热升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910701069.XA CN110413304B (zh) | 2019-07-31 | 2019-07-31 | 基于区块链网络的智能合约热升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910701069.XA CN110413304B (zh) | 2019-07-31 | 2019-07-31 | 基于区块链网络的智能合约热升级方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413304A true CN110413304A (zh) | 2019-11-05 |
CN110413304B CN110413304B (zh) | 2023-07-14 |
Family
ID=68364569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910701069.XA Active CN110413304B (zh) | 2019-07-31 | 2019-07-31 | 基于区块链网络的智能合约热升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413304B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111182527A (zh) * | 2019-12-27 | 2020-05-19 | 深圳市云伽智能技术有限公司 | Ota固件升级方法、装置、终端设备及其存储介质 |
CN111506327A (zh) * | 2020-04-15 | 2020-08-07 | 深圳市网心科技有限公司 | 区块链节点热升级方法及相关设备 |
CN111932260A (zh) * | 2020-09-18 | 2020-11-13 | 杭州趣链科技有限公司 | 一种智能合约版本的管理方法、设备及可读存储介质 |
CN112162768A (zh) * | 2020-10-14 | 2021-01-01 | 支付宝(杭州)信息技术有限公司 | 一种区块链升级方法和系统 |
CN112527781A (zh) * | 2020-12-23 | 2021-03-19 | 上海万向区块链股份公司 | 一种智能合约数据迁移方法及系统 |
CN112631642A (zh) * | 2020-12-29 | 2021-04-09 | 杭州趣链科技有限公司 | 智能合约的升级方法、装置、区块链节点及存储介质 |
CN113127025A (zh) * | 2019-12-31 | 2021-07-16 | 航天信息股份有限公司 | 一种会计合约更新方法、装置、设备及介质 |
CN113220326A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 智能合约升级方法及区块链系统 |
CN113220327A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 智能合约升级方法及区块链系统 |
WO2021229304A1 (zh) * | 2020-05-11 | 2021-11-18 | 支付宝实验室(新加坡)有限公司 | 智能合约的更新 |
CN113872923A (zh) * | 2020-06-30 | 2021-12-31 | 成都质数斯达克科技有限公司 | 基于区块链系统的交易方法、更新方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108769173A (zh) * | 2018-05-21 | 2018-11-06 | 阿里体育有限公司 | 运行智能合约的区块链实现方法及设备 |
CN108833398A (zh) * | 2018-06-08 | 2018-11-16 | 浙江超脑时空科技有限公司 | 一种区块链智能合约更新方法、装置及设备 |
CN109003187A (zh) * | 2018-07-25 | 2018-12-14 | 广东工业大学 | 一种区块链智能合约的更新升级方法 |
CN109814905A (zh) * | 2019-01-17 | 2019-05-28 | 上海边界智能科技有限公司 | 一种基于区块链的软件升级方法及装置 |
CN109885612A (zh) * | 2018-12-26 | 2019-06-14 | 联动优势科技有限公司 | 区块链智能合约的同步生效方法及装置 |
-
2019
- 2019-07-31 CN CN201910701069.XA patent/CN110413304B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108769173A (zh) * | 2018-05-21 | 2018-11-06 | 阿里体育有限公司 | 运行智能合约的区块链实现方法及设备 |
CN108833398A (zh) * | 2018-06-08 | 2018-11-16 | 浙江超脑时空科技有限公司 | 一种区块链智能合约更新方法、装置及设备 |
CN109003187A (zh) * | 2018-07-25 | 2018-12-14 | 广东工业大学 | 一种区块链智能合约的更新升级方法 |
CN109885612A (zh) * | 2018-12-26 | 2019-06-14 | 联动优势科技有限公司 | 区块链智能合约的同步生效方法及装置 |
CN109814905A (zh) * | 2019-01-17 | 2019-05-28 | 上海边界智能科技有限公司 | 一种基于区块链的软件升级方法及装置 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111182527B (zh) * | 2019-12-27 | 2022-07-26 | 深圳市云伽智能技术有限公司 | Ota固件升级方法、装置、终端设备及其存储介质 |
CN111182527A (zh) * | 2019-12-27 | 2020-05-19 | 深圳市云伽智能技术有限公司 | Ota固件升级方法、装置、终端设备及其存储介质 |
CN113127025A (zh) * | 2019-12-31 | 2021-07-16 | 航天信息股份有限公司 | 一种会计合约更新方法、装置、设备及介质 |
CN111506327A (zh) * | 2020-04-15 | 2020-08-07 | 深圳市网心科技有限公司 | 区块链节点热升级方法及相关设备 |
CN111506327B (zh) * | 2020-04-15 | 2023-04-21 | 深圳市迅雷网络技术有限公司 | 区块链节点热升级方法及相关设备 |
WO2021229304A1 (zh) * | 2020-05-11 | 2021-11-18 | 支付宝实验室(新加坡)有限公司 | 智能合约的更新 |
CN113872923A (zh) * | 2020-06-30 | 2021-12-31 | 成都质数斯达克科技有限公司 | 基于区块链系统的交易方法、更新方法、装置、设备及存储介质 |
CN113872923B (zh) * | 2020-06-30 | 2023-06-06 | 成都质数斯达克科技有限公司 | 基于区块链系统的交易方法、更新方法、装置、设备及存储介质 |
CN111932260A (zh) * | 2020-09-18 | 2020-11-13 | 杭州趣链科技有限公司 | 一种智能合约版本的管理方法、设备及可读存储介质 |
CN111932260B (zh) * | 2020-09-18 | 2021-01-26 | 杭州趣链科技有限公司 | 一种智能合约版本的管理方法、设备及可读存储介质 |
CN112162768A (zh) * | 2020-10-14 | 2021-01-01 | 支付宝(杭州)信息技术有限公司 | 一种区块链升级方法和系统 |
CN112527781B (zh) * | 2020-12-23 | 2022-07-15 | 上海万向区块链股份公司 | 一种智能合约数据迁移方法及系统 |
CN112527781A (zh) * | 2020-12-23 | 2021-03-19 | 上海万向区块链股份公司 | 一种智能合约数据迁移方法及系统 |
CN112631642A (zh) * | 2020-12-29 | 2021-04-09 | 杭州趣链科技有限公司 | 智能合约的升级方法、装置、区块链节点及存储介质 |
CN113220327A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 智能合约升级方法及区块链系统 |
CN113220326A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 智能合约升级方法及区块链系统 |
CN113220326B (zh) * | 2021-05-11 | 2022-09-16 | 支付宝(杭州)信息技术有限公司 | 智能合约升级方法及区块链系统 |
CN113220327B (zh) * | 2021-05-11 | 2022-09-16 | 支付宝(杭州)信息技术有限公司 | 智能合约升级方法及区块链系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110413304B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413304A (zh) | 基于区块链网络的智能合约热升级方法及装置 | |
US9723070B2 (en) | System to improve cluster machine processing and associated methods | |
Yasrab | Platform-as-a-service (paas): the next hype of cloud computing | |
CN103617066A (zh) | 一种工作流引擎及其实现方法 | |
CN110138876B (zh) | 任务部署方法、装置、设备及平台 | |
CN103678354A (zh) | 基于云计算平台的本地关系型数据库节点调度方法和装置 | |
CN107409436B (zh) | 一种云平台、运行应用的方法及接入网单元 | |
CN112019610B (zh) | 一种云边协同方法及系统 | |
CN103679401A (zh) | 一种流程控制方法、服务器、客户端及系统 | |
CN110046166B (zh) | 基于区块链的定时任务调度方法及装置 | |
CN112288423A (zh) | 一种分布式框架的聚合支付方法和系统 | |
CN110362318A (zh) | 应用部署方法、装置、设备和存储介质 | |
CN108833270A (zh) | 网关通信方法、网关和能源系统 | |
CN110262825A (zh) | 热更新方法、装置、电子设备及可读存储介质 | |
CN109885612A (zh) | 区块链智能合约的同步生效方法及装置 | |
CN105404530B (zh) | 一种实现简易部署和使用私有云的系统及方法 | |
CN114287124A (zh) | 针对计算环境的配置改变控制 | |
EP4187864A1 (en) | Landscape model verification system | |
CN116974716A (zh) | 调度任务的发布方法、装置、电子设备及存储介质 | |
CN114221971B (zh) | 数据同步方法、装置、服务器、存储介质及产品 | |
CN110519277B (zh) | 一种基于单点执行合约实现控制其它系统的方法 | |
CN112926981A (zh) | 用于区块链的交易信息处理方法、装置、介质及电子设备 | |
CN115701078A (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN109936672B (zh) | 一种在线计费方法及装置 | |
CN112398908A (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 |