一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

智能合约生命周期管理方法、装置和计算机设备与流程

2022-11-23 09:38:21 来源:中国专利 TAG:


1.本技术涉及区块链技术领域,特别是涉及一种智能合约生命周期管理方法、装置、计算机设备和存储介质。


背景技术:

2.智能合约是运行于区块链上的应用程序,fabric的智能合约称为链码,分为系统链码和用户链码,系统链码用来实现系统层面的功能,包括系统的配置,用户链码的部署、升级,用户交易的签名和验证策略等。用户链码实现用户的应用功能。
3.然而,联盟链hyperledger fabric中的合约全生命周期管理目前只有安装、实例化、升级操作,导致智能合约生命周期管理不完善。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够完善智能合约的生命周期管理的智能合约生命周期管理方法、装置、计算机设备和存储介质。
5.一种智能合约生命周期管理方法,所述方法包括:
6.在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;
7.当检测所述智能合约运行异常时,触发管理节点调用所述管理链码;
8.根据所述管理链码对所述智能合约进行冻结操作,将所述智能合约的状态值更新为第一状态值,并对所述智能合约进行更新;所述第一状态值用于表征所述智能合约只能被具有调用所述智能合约所需权限的节点调用。
9.在其中一个实施例中,所述方法还包括:
10.当检测到所述智能合约更新完成时,根据所述管理链码对更新后的智能合约进行解冻操作,将所述智能合约的状态值由所述第一状态值更新为第二状态值;所述第二状态值用于表征所述智能合约可以被所述联盟链上的所有节点调用。
11.在其中一个实施例中,在所述触发管理节点从所述联盟链第二通道上调用管理链码之前,所述方法还包括:
12.获取所述管理节点的第一调用权限;
13.当所述第一调用权限满足调用所述管理链码所需的权限时,执行所述触发管理节点从所述联盟链通道上调用管理链码步骤。
14.在其中一个实施例中,所述方法还包括:
15.响应所述智能合约的注销指令,触发所述管理节点从所述联盟链第三通道上调用部署的注销链码;
16.通过执行所述注销链码,删除所述智能合约的链码容器以及对应的链码源文件。
17.在其中一个实施例中,所述响应所述智能合约的注销指令,触发所述管理节点从所述联盟链第三通道上调用部署的注销链码,包括:
18.响应所述智能合约的注销指令,将所述注销指令对应的注销事件发送至背书节点进行投票,得到投票数;
19.当所述投票数大于或等于预设投票数时,触发所述管理节点从所述联盟链第三通道上调用部署的注销链码。
20.在其中一个实施例中,在所述触发所述管理节点从所述联盟链通道上调用部署的注销链码之前,所述方法还包括:
21.获取所述管理节点的第二调用权限;
22.当所述第二调用权限满足调用所述注销链码所需的权限时,执行所述触发所述管理节点从所述联盟链通道上调用部署的注销链码步骤。
23.一种智能合约生命周期管理装置,所述装置包括:
24.部署模块,用于在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;
25.触发模块,用于当检测所述智能合约运行异常时,触发管理节点调用所述管理链码;
26.冻结模块,用于根据所述管理链码对所述智能合约进行冻结操作,将所述智能合约的状态值更新为第一状态值,并对所述智能合约进行更新;所述第一状态值用于表征所述智能合约只能被具有调用所述智能合约所需权限的节点调用。
27.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
28.在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;
29.当检测所述智能合约运行异常时,触发管理节点调用所述管理链码;
30.根据所述管理链码对所述智能合约进行冻结操作,将所述智能合约的状态值更新为第一状态值,并对所述智能合约进行更新;所述第一状态值用于表征所述智能合约只能被具有调用所述智能合约所需权限的节点调用。
31.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
32.在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;
33.当检测所述智能合约运行异常时,触发管理节点调用所述管理链码;
34.根据所述管理链码对所述智能合约进行冻结操作,将所述智能合约的状态值更新为第一状态值,并对所述智能合约进行更新;所述第一状态值用于表征所述智能合约只能被具有调用所述智能合约所需权限的节点调用。
35.上述智能合约生命周期管理方法、装置、计算机设备和存储介质,通过在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;当检测智能合约运行异常时,触发管理节点调用管理链码,对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,即不具备调用智能合约所需权限的节点无法正常调用该智能合约,并对智能合约进行更新,在智能合约安装、实例化、升级操作的生命周期的基础上,实现智能合约的冻结操作,完善智能合约的生命周期管理和提高联盟链的安全性。
附图说明
36.图1为一个实施例中智能合约生命周期管理方法的流程示意图;
37.图2为另一个实施例中智能合约生命周期管理方法的流程示意图;
38.图3为另一个实施例中智能合约生命周期管理方法的流程示意图;
39.图4为一个实施例中智能合约生命周期管理的应用场景示意图;
40.图5为一个实施例中智能合约生命周期管理装置的结构框图;
41.图6为一个实施例中计算机设备的内部结构图。
具体实施方式
42.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
43.在一个实施例中,如图1所示,提供了一种智能合约生命周期管理方法,本实施例以该方法应用于区块链进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和区块链的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
44.步骤102,在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码。
45.其中,管理链码是联盟链的框架合约层中用于冻结或解冻智能合约的链码,管理链码的初始链码状态值为一个布尔值,布尔值为true。即通过更改管理链码的状态值,实现对智能合约的状态值的更改,进而实现对智能合约的冻结和解冻操作。
[0046]“第一”和“第二”用于区分联盟链上不同的通道,第一通道也可以是第二通道,第二通道也可以是第一通道。
[0047]
具体地,在联盟链上搭建第一通道和第二通道,在第一通道上部署了智能合约,智能合约中包括状态值校验和调用管理链码的代码;在第二通道上部署了管理链码,并对管理链码进行初始化处理。例如,联盟链a中搭建第一通道mychannel和第二通道mgchannel,在第二通道mgchannel部署管理合约mgcc,对管理链码进行初始化处理,即默认写入字段(状态值)ccstatus为true;第一通道mychannel部署智能合约mycc,智能合mycc合约中包括“校验ccstatus状态的代码”和“调用mgcc的代码”。
[0048]
步骤104,当检测智能合约运行异常时,触发管理节点调用管理链码。
[0049]
具体地,当检测到联盟链第一通道上部署的智能合约运行异常时,管理节点调用第二通道上的管理链码。
[0050]
可选地,在一个实施例中,在触发管理节点从联盟链第二通道上调用管理链码之前,获取管理节点的第一调用权限;当第一调用权限满足调用管理链码所需的权限时,触发管理节点从联盟链通道上调用管理链码,即在调用管理链码之前,对管理节点的权限进行验证,当权限验证通过时,具有操作权限的管理节点执行对运行异常的智能合约进行冻结和解冻操作,提高了智能合约的可靠性。
[0051]
步骤106,根据管理链码对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,并对智能合约进行更新。
[0052]
其中,第一状态值用于表征智能合约只能被具有调用智能合约所需权限的节点调用。
[0053]
具体地,调用管理链码,对管理链码的初始状态值进行检测,当初始状态值为预设状态值时,将管理链码的状态值由初始状态值更改为第一状态值,将该第一状态值作为智能合约的状态值,即实现调用管理链码对智能合约进行冻结,使智能合约处于被冻结状态,不能被联盟链上其他不具有调用权限的节点调用。
[0054]
例如,联盟链a中搭建第一通道mychannel和第二通道mgchannel;第一通道mychannel部署智能合约mycc,智能合约mycc中包括“校验ccstatus状态的代码”和“调用mgcc的代码”;第二通道mgchannel部署管理链码mgcc,并对管理链码mgcc进行初始化处理,当智能合约mycc运行出现问题时,需要调用管理链码mgcc,首先对管理节点的第一调用权限进行验证,当验证通过时,管理节点调用管理链码mgcc,将状态值ccstatus设为第一状态值false,将第一状态值false作为智能合约的状态值,也就是说将智能合约的状态值ccstatus更新为第一状态值false;智能合约mycc被冻结,普通用户证书身份校验不通过,不能再进行调用。
[0055]
上述智能合约生命周期管理方法中,通过在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;当检测智能合约运行异常时,触发管理节点调用管理链码,对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,即不具备调用智能合约所需权限的节点无法正常调用该智能合约,并对智能合约进行冻结,避免数据业务数据上链错误,导致区块链中的数据可靠性降低,在智能合约安装、实例化、升级操作的生命周期的基础上,实现智能合约的冻结操作,完善智能合约的生命周期管理和提高联盟链的安全性。
[0056]
在另一个实施例中,如图2所示,提供了一种智能合约生命周期管理方法,本实施例以该方法应用于区块链进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和区块链的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
[0057]
步骤202,在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码。
[0058]
步骤204,当检测智能合约运行异常时,触发管理节点调用管理链码。
[0059]
步骤206,根据管理链码对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,并对智能合约进行更新。
[0060]
其中,第一状态值用于表征智能合约只能被具有调用智能合约所需权限的节点调用。
[0061]
步骤208,当检测到智能合约更新完成时,根据管理链码对更新后的智能合约进行解冻操作,将智能合约的状态值由第一状态值更新为第二状态值。
[0062]
其中,第二状态值用于表征智能合约可以被联盟链上的所有节点调用。智能合约更新方式,即合约的升级方式可以通过联盟链的框架中现有的升级方式对智能合约进行升级,在此不做赘述。
[0063]
具体地,通过升级方式对智能合约进行升级,即完成该智能合约的更新后,管理节点通过调用管理链码,对更新后的智能合约进行解冻操作,将智能合约的状态值由第一状
态值更新为第二状态值,使智能合约能被联盟链上的其他节点调用。
[0064]
上述智能合约生命周期管理方法中,通过在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;当检测智能合约运行异常时,触发管理节点调用管理链码,对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,即不具备调用智能合约所需权限的节点无法正常调用该智能合约,并对智能合约进行更新,当检测到智能合约完成更新后,对智能合约进行解冻操作,使智能合约能被所有节点调用;也就说,在智能合约运行出现异常时,通过联盟链通道上部署的管理链码对在智能合约进行冻结升级解冻操作,在智能合约安装、实例化、升级操作的生命周期的基础上,实现智能合约的冻结和解冻操作,完善智能合约的生命周期管理和提高联盟链的安全性。
[0065]
在另一个实施例中,如图3所示,提供了一种智能合约生命周期管理方法,本实施例以该方法应用于区块链进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和区块链的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
[0066]
步骤302,在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码。
[0067]
步骤304,当检测智能合约运行异常时,触发管理节点调用管理链码。
[0068]
步骤306,根据管理链码对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,并对智能合约进行更新。
[0069]
其中,第一状态值用于表征智能合约只能被具有调用智能合约所需权限的节点调用。
[0070]
步骤308,当检测到智能合约更新完成时,根据管理链码对更新后的智能合约进行解冻操作,将智能合约的状态值由第一状态值更新为第二状态值。
[0071]
步骤310,响应智能合约的注销指令,触发管理节点从联盟链第三通道上调用部署的注销链码。
[0072]
其中,注销链码用于基于hyperledger fabric系统链码支持plugin功能的情况下,在不影响主程序的情况下,对智能合约进行注销。注销链码中包括校验调用方权限和校验通过后删除对应合约容器以及源文件的处理逻辑。
[0073]
具体地,通过响应智能合约的注销指令,将注销指令对应的注销事件发送至背书节点进行投票,得到投票数;当投票数大于或等于预设投票数时,触发管理节点从联盟链第三通道上调用部署的注销链码。
[0074]
可选地,在一个实施例中,在触发管理节点从联盟链通道上调用部署的注销链码之前,方法还包括:获取管理节点的第二调用权限;当第二调用权限满足调用注销链码所需的权限时,触发管理节点从联盟链第三通道上调用部署的注销链码,在注销制智能合约之前对调用方的权限进行验证,确保了注销的可靠性以及维护区块链的安全性。。
[0075]
步骤312,通过执行注销链码,删除智能合约的链码容器以及对应的链码源文件。
[0076]
在一个实施例中,如图4所示,为智能合约生命周期管理的应用场景示意图,联盟链a中搭建第一通道mychannel和第二通道mgchannel;第一通道mychannel部署智能合约mycc,智能合约mycc中包括“校验ccstatus状态的代码”和“调用mgcc的代码”;第二通道mgchannel部署管理链码mgcc,并对管理链码mgcc进行初始化处理,当智能合约mycc运行出
现问题时,需要对管理节点的第一调用权限进行验证,当验证通过时,管理节点调用管理链码mgcc,将ccstatus设为false,即将智能合约的状态值ccstatus更新为第一状态值false;智能合约mycc被冻结,普通用户证书身份校验不通过,不能再进行调用。
[0077]
当检测到智能合约mycc更新完成时,根据管理链码对更新后的智能合约进行解冻操作,将智能合约的状态值由第一状态值更新为第二状态值,即将状态值ccstatus的更新为第二状态值true,使智能合约能被联盟链上的其他节点调用。
[0078]
当需要对智能合约mycc进行注销时,响应智能合约的注销指令,触发管理节点从联盟链第三通道上调用部署的注销链码cancelcc,通过执行注销链码cancelcc,删除智能合约mycc的链码容器以及对应的链码源文件。
[0079]
上述智能合约生命周期管理方法中,通过在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;当检测智能合约运行异常时,触发管理节点调用管理链码,对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,即不具备调用智能合约所需权限的节点无法正常调用该智能合约,并对智能合约进行更新,当检测到智能合约完成更新后,对智能合约进行解冻操作,使智能合约能被所有节点调用;也就说,在智能合约运行出现异常时,通过联盟链通道上部署的管理链码对在智能合约进行冻结升级解冻操作,避免上链数据错误;通过调用注销链码对完成智能合约的注销,即在智能合约安装、实例化、升级操作的生命周期的基础上,实现智能合约的冻结、解冻和注销操作,在完善智能合约的生命周期管理的基础上,进一步提高联盟链的安全性和区块链存储资源的利用率。
[0080]
应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0081]
在一个实施例中,如图5所示,提供了一种智能合约生命周期管理装置,包括:部署模块502、触发模块504和冻结模块506,其中:
[0082]
部署模块502,用于在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码。
[0083]
触发模块504,用于当检测智能合约运行异常时,触发管理节点调用管理链码。
[0084]
冻结模块506,用于根据管理链码对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,并对智能合约进行更新;第一状态值用于表征智能合约只能被具有调用智能合约所需权限的节点调用。
[0085]
上述智能合约生命周期管理装置中,通过在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;当检测智能合约运行异常时,触发管理节点调用管理链码,对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,即不具备调用智能合约所需权限的节点无法正常调用该智能合约,并对智能合约进行更新,即在智能合约安装、实例化、升级操作的生命周期,实现智能合约的冻结操作,完善智能合约的生命周期管理和提高联盟链的安全性。
[0086]
在另一个实施例中,提供了一种智能合约生命周期管理装置,除包括部署模块502、触发模块504和冻结模块506之外,还包括:,其中:
[0087]
解冻模块,用于当检测到智能合约更新完成时,根据管理链码对更新后的智能合约进行解冻操作,将智能合约的状态值由第一状态值更新为第二状态值;第二状态值用于表征智能可以被联盟链上的所有节点调用。
[0088]
权限验证模块,用于获取管理节点的第一调用权限;当第一调用权限满足调用管理链码所需的权限时,触发管理节点从联盟链通道上调用管理链码。
[0089]
注销模块,用于响应智能合约的注销指令,触发管理节点从联盟链第三通道上调用部署的注销链码;通过执行注销链码,删除智能合约的链码容器以及对应的链码源文件。
[0090]
投票模块,用于响应智能合约的注销指令,将注销指令对应的注销事件发送至背书节点进行投票,得到投票数。
[0091]
在一个实施例中,触发模块504还用于当投票数大于或等于预设投票数时,触发管理节点从联盟链第三通道上调用部署的注销链码。
[0092]
权限验证模块还用于获取管理节点的第二调用权限;验证第二调用权限是否满足调用注销链码所需的权限。
[0093]
在一个实施例中,通过在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;当检测智能合约运行异常时,触发管理节点调用管理链码,对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,即不具备调用智能合约所需权限的节点无法正常调用该智能合约,并对智能合约进行更新,当检测到智能合约完成更新后,对智能合约进行解冻操作,使智能合约能被所有节点调用;也就说,在智能合约运行出现异常时,通过联盟链通道上部署的管理链码对在智能合约进行冻结升级解冻操作,避免上链数据错误。
[0094]
当需要对智能合约进行注销时,响应智能合约的注销指令,触发管理节点从联盟链第三通道上调用部署的注销链码,通过执行注销链码c,删除智能合约的链码容器以及对应的链码源文件通过调用注销链码对完成智能合约的注销,在智能合约安装、实例化、升级操作的生命周期的基础上,实现智能合约的冻结、解冻和注销操作,完成智能合约的生命周期管理,以及提高了区块链存储资源的利用率。
[0095]
关于智能合约生命周期管理装置的具体限定可以参见上文中对于智能合约生命周期管理方法的限定,在此不再赘述。上述智能合约生命周期管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0096]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种智
能合约生命周期管理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0097]
本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0098]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0099]
在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;
[0100]
当检测智能合约运行异常时,触发管理节点调用管理链码;
[0101]
根据管理链码对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,并对智能合约进行更新;第一状态值用于表征智能合约只能被具有调用智能合约所需权限的节点调用。
[0102]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0103]
当检测到智能合约更新完成时,根据管理链码对更新后的智能合约进行解冻操作,将智能合约的状态值由第一状态值更新为第二状态值;第二状态值用于表征智能合约可以被联盟链上的所有节点调用。
[0104]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0105]
获取管理节点的第一调用权限;
[0106]
当第一调用权限满足调用管理链码所需的权限时,执行触发管理节点从联盟链通道上调用管理链码步骤。
[0107]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0108]
响应智能合约的注销指令,触发管理节点从联盟链第三通道上调用部署的注销链码;
[0109]
通过执行注销链码,删除智能合约的链码容器以及对应的链码源文件。
[0110]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0111]
响应智能合约的注销指令,将注销指令对应的注销事件发送至背书节点进行投票,得到投票数;
[0112]
当投票数大于或等于预设投票数时,触发管理节点从联盟链第三通道上调用部署的注销链码。
[0113]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0114]
获取管理节点的第二调用权限;
[0115]
当第二调用权限满足调用注销链码所需的权限时,执行触发管理节点从联盟链通道上调用部署的注销链码步骤。
[0116]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0117]
在联盟链搭建的第一通道上部署智能合约以及在搭建的第二通道上部署管理链码;
[0118]
当检测智能合约运行异常时,触发管理节点调用管理链码;
[0119]
根据管理链码对智能合约进行冻结操作,将智能合约的状态值更新为第一状态值,并对智能合约进行更新;第一状态值用于表征智能合约只能被具有调用智能合约所需权限的节点调用。
[0120]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0121]
当检测到智能合约更新完成时,根据管理链码对更新后的智能合约进行解冻操作,将智能合约的状态值由第一状态值更新为第二状态值;第二状态值用于表征智能合约可以被联盟链上的所有节点调用。
[0122]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0123]
获取管理节点的第一调用权限;
[0124]
当第一调用权限满足调用管理链码所需的权限时,执行触发管理节点从联盟链通道上调用管理链码步骤。
[0125]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0126]
响应智能合约的注销指令,触发管理节点从联盟链第三通道上调用部署的注销链码;
[0127]
通过执行注销链码,删除智能合约的链码容器以及对应的链码源文件。
[0128]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0129]
响应智能合约的注销指令,将注销指令对应的注销事件发送至背书节点进行投票,得到投票数;
[0130]
当投票数大于或等于预设投票数时,触发管理节点从联盟链第三通道上调用部署的注销链码。
[0131]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0132]
获取管理节点的第二调用权限;
[0133]
当第二调用权限满足调用注销链码所需的权限时,执行触发管理节点从联盟链通道上调用部署的注销链码步骤。
[0134]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0135]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0136]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来
说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献