CN109445820A - 一种智能合约升级方法、系统、设备及计算机存储介质 - Google Patents
一种智能合约升级方法、系统、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN109445820A CN109445820A CN201811269722.1A CN201811269722A CN109445820A CN 109445820 A CN109445820 A CN 109445820A CN 201811269722 A CN201811269722 A CN 201811269722A CN 109445820 A CN109445820 A CN 109445820A
- Authority
- CN
- China
- Prior art keywords
- contract
- target
- correspondent
- logic
- operating parameters
- 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.)
- Pending
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种智能合约升级方法、系统、设备及计算机存储介质,应用于区块链节点设备中,该方法包括:接收升级指令,根据升级指令获取目标逻辑合约;获取代理合约调用目标逻辑合约时所需的目标运行参数;将目标运行参数写入代理合约中,登记代理合约至区块链中。本申请公开的一种智能合约升级方法,由于在获取代理合约调用目标逻辑合约时所需的目标运行参数后,将目标运行参数写入代理合约中,从而使得代理合约可以根据目标运行参数直接调用目标逻辑合约,解除了代理合约对目标逻辑合约的局限性,降低了现有的一种智能合约升级方法对逻辑合约的局限性。本申请公开的一种智能合约升级方法、设备及计算机可读存储介质也解决了相应技术问题。
Description
技术领域
本申请涉及区块链技术领域,更具体地说,涉及一种智能合约升级方法、系统、设备及计算机存储介质。
背景技术
在区块链的应用中,为了丰富区块链的功能,需要对区块链中的逻辑合约进行升级。
现有的一种智能合约升级方法是:采用代理合约对智能合约进行升级,也即将逻辑合约写入代理合约所调用的逻辑地址,之后,代理合约运行该逻辑地址上的逻辑合约,以此实现智能合约的升级。
然而,现有的一种智能合约升级方法中,由于代理合约所调用的逻辑合约的类型是预先设定好的,且代理合约不可被更改,从而使得逻辑合约的类型必须为代理合约预先设定好的类型,否则代理合约无法调用逻辑合约,也即现有的一种智能合约升级方法对逻辑合约的局限性较大。
综上所述,如何降低现有的一种智能合约升级方法对逻辑合约的局限性是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种智能合约升级方法,其能在一定程度上解决如何降低现有的一种智能合约升级方法对逻辑合约的局限性的技术问题。本申请还提供了一种智能合约升级方法、设备及计算机可读存储介质。
第一方面,本申请提供了一种智能合约升级方法,应用于区块链节点设备中,该方法包括:
接收升级指令;
根据所述升级指令获取目标逻辑合约,登记所述目标逻辑合约至区块链中;
获取代理合约调用所述目标逻辑合约时所需的目标运行参数;
将所述目标运行参数写入所述代理合约中,得到目标代理合约,登记所述目标代理合约至所述区块链中。
优选的,在所述接收升级指令之前,所述方法还包括::
构建数据结构,所述数据结构用于记录逻辑合约的运行参数;
将所述数据结构存储在所述代理合约中;
所述将所述目标运行参数写入所述代理合约中,包括:
将所述目标运行参数写入所述数据结构中。
优选的,所述目标运行参数包括所述目标逻辑合约的逻辑地址,所述将所述目标运行参数写入所述代理合约中,得到目标代理合约,具体包括:
将所述目标逻辑合约的逻辑地址传输至所述代理合约;
调用所述代理合约中升级逻辑合约地址的功能,以将所述目标逻辑合约的逻辑地址写入所述代理合约,得到所述目标代理合约。
优选的,所述目标运行参数包括所述目标逻辑合约的方法名和方法字符串;
所述将所述目标运行参数写入所述代理合约中,得到目标代理合约,具体包括:
将所述方法名和所述方法字符串传输至所述代理合约;
调用所述代理合约中的方法添加功能,以添加所述方法名和所述方法字符串至所述代理合约,得到所述目标代理合约。
优选的,所述调用所述代理合约中的方法添加功能,以添加所述方法名和所述方法字符串至所述代理合约,得到所述目标代理合约,具体包括:
对所述方法字符串进行哈希计算得到哈希值;
建立所述方法名与所述哈希值的映射关系;
调用所述代理合约中的方法添加功能,将所述方法名、所述哈希值及所述映射关系添加至所述代理合约,得到目标代理合约。
优选的,所述调用所述代理合约中的方法添加功能之后,还包括:
接收用户客户端发送的目标方法名;
传输所述目标方法名至所述目标代理合约,以调用所述目标代理合约运行与所述目标方法名对应的方法字符串,实现所述目标方法名对应的逻辑合约。
优选的,所述将所述目标运行参数写入所述代理合约中,包括:
将所述目标运行参数转化为预设数据格式的目标数据运行参数;
将所述目标数据运行参数写入所述代理合约中。
第二方面,本申请提供了一种智能合约升级系统,应用于区块链节点设备中,该系统包括:
第一接收模块,用于接收升级指令;
第一获取模块,用于根据所述升级指令获取目标逻辑合约,登记所述目标逻辑合约至区块链中;
第二获取模块,用于获取代理合约调用所述目标逻辑合约时所需的目标运行参数;
第一登记模块,用于将所述目标运行参数写入所述代理合约中,得到目标代理合约,登记所述目标代理合约至所述区块链中。
优选的,还包括:
第一构建模块,用于在所述第一接收模块接收升级指令之前,构建数据结构,所述数据结构用于记录逻辑合约的运行参数;
第一存储模块,用于将所述数据结构存储在所述代理合约中;
所述第一登记模块包括:
第一登记单元,用于将所述目标参数写入所述数据结构中。
优选的,所述目标运行参数包括所述目标逻辑合约的逻辑地址;
所述第一登记模块包括:
第一传输单元,用于将所述目标逻辑合约的逻辑地址传输至所述代理合约;
第一调用单元,用于调用所述代理合约中升级逻辑合约地址的功能,以将所述目标逻辑合约的逻辑地址写入所述代理合约,得到所述目标代理合约。
优选的,所述第二获取模块包括:
所述目标运行参数包括所述目标逻辑合约的方法名和方法字符串;
所述第一登记模块包括:
第二传输单元,用于将所述方法名和所述方法字符串传输至所述代理合约;
第二调用单元,用于调用所述代理合约中的方法添加功能,以添加所述方法名和所述方法字符串至所述代理合约,得到所述目标代理合约。
优选的,所述第二调用单元包括:
第一计算子单元,用于对所述方法字符串进行哈希计算得到哈希值;
第一建立子单元,用于建立所述方法名与所述哈希值的映射关系;
第二调用子单元,用于调用所述代理合约中的方法添加功能,将所述方法名、所述哈希值及所述映射关系添加至所述代理合约,得到目标代理合约。
优选的,还包括:
第一接收模块,用于所述第二调用单元调用所述代理合约中的方法添加功能之后,接收用户客户端发送的目标方法名;
第三传输单元,用于传输所述目标方法名至所述目标代理合约,以调用所述目标代理合约运行与所述目标方法名对应的方法字符串,实现所述目标方法名对应的逻辑合约。
优选的,所述第一登记模块包括:
转换单元,用于将所述目标运行参数转化为预设数据格式的目标数据运行参数;
写入单元,用于将所述目标数据运行参数写入所述代理合约中。
第三方面,本申请提供了一种区块链节点设备,该设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如第一方面所述的智能合约升级方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的智能合约升级方法的步骤。
本申请提供的一种智能合约升级方法,应用于区块链节点设备中,接收升级指令,根据升级指令获取目标逻辑合约;获取代理合约调用目标逻辑合约时所需的目标运行参数;将目标运行参数写入代理合约中,得到目标代理合约,登记目标代理合约至区块链中。本申请提供的一种智能合约升级方法,由于在获取代理合约调用目标逻辑合约时所需的目标运行参数后,将目标运行参数写入代理合约中,从而使得目标代理合约可以根据目标运行参数直接调用目标逻辑合约,也即通过将目标运行参数写入代理合约实现对代理合约的更改,从而解除现有技术中代理合约不可更改时对目标逻辑合约的局限性,使得目标逻辑合约的类型不为代理合约预先设定好的类型时,代理合约也可调用目标逻辑合约,降低了现有的一种智能合约升级方法对逻辑合约的局限性。本申请提供的一种智能合约升级方法、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种智能合约升级方法的第一流程图;
图2为本申请实施例提供的一种智能合约升级方法的第二流程图;
图3为本申请实施例提供的一种智能合约升级系统的结构示意图;
图4为本申请实施例提供的一种区块链节点设备的结构示意图;
图5为本申请实施例提供的一种区块链节点设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请涉及区块链技术,为了便于理解,下面将对在本申请实施例中的区块链(Block Chain)进行简单的介绍,区块链是对接入服务器的所有区块链节点公开的分布式存储的数据结构,包含着若干的区块(Block)。包含客户端的用户终端可以注册成为一个区块链节点,与接入区块链服务器的其他区块链节点组成P2P网络,区块链数据可以存放在P2P网络,P2P网络任何一个或多个区块链节点瘫痪,都不会导致区块链数据的丢失,这样区块链数据就具有很强的安全性,确保数据的永久保存和不可篡改。当一个区块持久化到区块链数据中时,接入服务器的区块链节点都可以添加该区块;区块是按照持久化时间顺序一个一个地添加到区块链数据中的,除了区块链数据中第一个区块外的每一个区块都要链接到其前一个区块,这样区块链数据就形成一个区块链接这一个区块了,就像一个链条一样,当一个区块被持久化到区块链数据后,该区块就无法被修改了。
现有的一种智能合约升级方法是:采用代理合约对智能合约进行升级,也即将逻辑合约写入代理合约所调用的逻辑地址,之后,代理合约运行该逻辑地址上的逻辑合约,以此实现智能合约的升级。然而,现有的一种智能合约升级方法中,由于代理合约所调用的逻辑合约的类型是预先设定好的,且代理合约不可被更改,从而使得逻辑合约的类型必须为代理合约预先设定好的类型,否则代理合约无法调用逻辑合约,也即现有的一种智能合约升级方法对逻辑合约的类型的局限性较大。本申请提供的一种智能合约升级方法降低了现有的一种智能合约升级方法对逻辑合约的局限性。
请参阅图1,图1为本申请实施例提供的一种智能合约升级方法的第一流程图。
本申请实施例提供的一种智能合约升级方法,应用于区块链节点设备中,可以包括以下步骤:
步骤S101:接收升级指令。
实际应用中,区块链节点设备可以先接收升级指令,具体的,区块链节点设备可以接收用户客户端发送的升级指令,也可以是接收自身上传端口传输的升级指令等。升级指令的具体形式和内容可以根据实际需要确定。
步骤S102:根据升级指令获取目标逻辑合约,登记目标逻辑合约至区块链中。
实际应用中,区块链节点设备可以先根据升级指令获取目标逻辑合约,目标逻辑合约也即需升级的逻辑合约,其可以是客户端传输至区块链节点设备的新逻辑合约,也可以是区块链节点在外界的控制下将已存储在区块链中的逻辑合约进行修改后得到的逻辑合约。区块链节点获取目标逻辑合约后,可以登记目标逻辑合约至区块链中,使得区块链的其他区块链节点设备可以获知该目标逻辑合约。应当指出,逻辑合约是智能合约的一部分,其是智能合约的功能实现部分。
步骤S103:获取代理合约调用目标逻辑合约时所需的目标运行参数。
实际应用中,区块链节点设备登记目标逻辑合约至区块链中后,可以获取代理合约调用目标逻辑合约时所需的目标运行参数,目标运行参数的类型及作用可以根据实际需要确定。具体应用场景中,区块链节点设备可以接收用户客户端发送的目标运行参数,也可以接收自身上传端口传输的目标运行参数。
步骤S103:将目标运行参数写入代理合约中,得到目标代理合约,登记目标代理合约至区块链中。
实际应用中,区块链节点设备获取目标运行参数后,便可以将目标运行参数写入代理合约中,得到目标代理合约,使得目标代理合约可以根据目标运行参数调用目标逻辑合约;并且登记目标代理合约至区块链中,使得区块链中的其他区块链节点设备可以获知该目标代理合约,进而调用该目标代理合约运行目标逻辑合约,实现对智能合约的升级。具体应用场景中,为了保证区块链的安全,避免不法分子随意写入目标运行参数至代理合约,可以设置区块链节点设备将目标运行参数写入代理合约的权限,使得只有特定区块链节点设备才可以将目标运行参数写入代理合约;当然还可以增加对区块链节点设备的认证过程,允许只有认证通过的区块链节点设备才可以写入目标运行参数至代理合约中。应当指出,代理合约是智能合约的一部分,其通过调用逻辑合约实现智能合约的升级。
具体应用场景中,可以为目标逻辑合约分配新的逻辑地址,此时,为了实现代理合约对目标逻辑合约的调用,进而实现逻辑合约的升级,区块链节点设备获取代理合约调用目标逻辑合约时所需的目标运行参数的步骤可以具体为:获取代理合约调用目标逻辑合约时所需的目标运行参数,目标运行参数包括目标逻辑合约的逻辑地址;相应的,区块链节点设备将目标运行参数写入代理合约中,得到目标代理合约的步骤可以具体为:将目标逻辑合约的逻辑地址传输至代理合约;调用代理合约中升级逻辑合约地址的功能,以将目标逻辑合约的逻辑地址写入代理合约中,得到目标代理合约。
具体应用场景中,可以实现一个代理合约对多个逻辑合约的调用,也即借助一个代理合约实现对多个逻辑合约的升级,则区块链节点设备获取代理合约调用目标逻辑合约时所需的目标运行参数的步骤可以具体为:获取代理合约调用目标逻辑合约时所需的目标运行参数,目标运行参数包括目标逻辑合约的方法名和方法字符串;相应的,区块链节点设备将目标运行参数写入代理合约中,得到目标代理合约的步骤可以具体为:将方法名和方法字符串传输至代理合约,调用代理合约中的方法添加功能,以添加方法名和方法字符串至代理合约,得到目标代理合约。可选的,为了实现对方法字符串的保密,避免非法分子更改方法字符串威胁目标逻辑可约的安全性,区块链节点设备调用代理合约中的方法添加功能,以添加方法名和方法字符串至代理合约,得到目标代理合约的步骤可以具体为:对方法字符串进行哈希计算得到哈希值;建立方法名与哈希值的映射关系,方法名和哈希值应为一一对应的关系;调用代理合约中的方法添加功能,将方法名、哈希值及映射关系添加至代理合约,得到目标代理合约。。相应的,区块链节点设备调用代理合约中的方法添加功能之后,还可以接收用户客户端发送的目标方法名;传输目标方法名至代理合约,以调用代理合约运行与目标方法名对应的方法字符串,进而实现目标方法名对应的逻辑合约。也即在升级逻辑合约时,只需将目标方法名输入至代理合约,再调用代理合约运行与目标方法名对应的方法字符串,以实现目标方法名对应的逻辑合约。以代理合约中保存的方法名包括方法1、方法2、方法3为例,方法1对应的方法字符串为A,实现的逻辑合约为逻辑合约I;方法2对应的方法字符串为B,实现的逻辑合约为逻辑合约II;方法3对应的方法字符串为C,实现的逻辑合约为逻辑合约III;若区块链节点设备要实现逻辑合约II,则只需将方法名2输入代理合约,并且调用代理合约运行方法字符串的功能,使代理合约自动运行与方法名2对应的字符串B进而实现逻辑合约II。应当指出,目标运行参数还包括代理合约在调用目标逻辑合约时所需的其他参数等。
具体应用场景中,为了保证代理合约调用目标逻辑合约的成功率,还可以将代理合约和目标逻辑合约的数据格式设置为统一格式,则区块链节点设备获取目标逻辑合约的步骤可以具体为:获取预设数据结构的目标逻辑合约;相应的,区块链节点设备将目标参数写入代理合约中的步骤可以具体为:将目标参数写入预设数据结构的代理合约中。可选的,可以在区块链节点设备中设置数据合约,使代理合约和目标逻辑合约继承该数据合约从而使得代理合约和目标逻辑合约的数据格式为统一格式。
具体应用场景中,为了便于代理合约快速调用目标逻辑合约,区块链节点设备在接收升级指令之前,还可以构建数据结构,数据结构用于记录逻辑合约的运行参数;将数据结构存储在代理合约中;相应的,将目标运行参数写入代理合约中的步骤可以具体为:将目标运行参数写入数据结构中。此外,为了便于代理合约识别目标运行参数,区块链节点设备将目标运行参数写入代理合约中的步骤可以具体为:将目标运行参数转化为预设数据格式的目标数据运行参数,区块链节点设备将目标数据运行参数写入代理合约中。
本申请提供的一种智能合约升级方法,应用于区块链节点设备中,接收升级指令,根据升级指令获取目标逻辑合约;获取代理合约调用目标逻辑合约时所需的目标运行参数;将目标运行参数写入代理合约中,登记代理合约至区块链中。本申请提供的一种智能合约升级方法,由于在获取代理合约调用目标逻辑合约时所需的目标运行参数后,将目标运行参数写入代理合约中,从而使得目标代理合约可以根据目标运行参数直接调用目标逻辑合约,也即通过将目标运行参数写入代理合约实现对代理合约的更改,从而解除现有技术中代理合约不可更改时对目标逻辑合约的局限性,使得目标逻辑合约的类型不为代理合约预先设定好的类型时,代理合约也可调用目标逻辑合约,降低了现有的一种智能合约升级方法对逻辑合约的局限性。
请参阅图2,图2为本申请实施例提供的一种智能合约升级方法的第二流程图。
实际应用中,本申请实施例提供的一种智能合约升级方法可以包括以下步骤:
步骤S201:接收升级指令;
步骤S202:根据升级指令获取预设数据结构的目标逻辑合约,登记目标逻辑合约至区块链中。
步骤S203:获取预设数据结构的代理合约调用目标逻辑合约时所需的目标运行参数,目标运行参数包括目标逻辑合约的方法名和方法字符串。
步骤S204:将方法名和方法字符串转换为预设数据格式的方法名和方法字符串。
步骤S205:将格式转换后的方法名和方法字符串传输至代理合约。
步骤S206:调用代理合约中的方法添加功能,以添加方法名和方法字符串至代理合约中,得到目标代理合约。
步骤S207:登记目标代理合约至区块链中。
步骤S208:接收用户客户端发送的目标方法名。
步骤S209:传输目标方法名至目标代理合约,以调用目标代理合约运行与目标方法名对应的方法字符串,实现目标方法名对应的逻辑合约。
本申请还提供了一种智能合约升级系统,其具有本申请实施例提供的一种智能合约升级方法具有的对应效果。请参阅图3,图3为本申请实施例提供的一种智能合约升级系统的结构示意图。
本申请实施例提供的一种智能合约升级系统,应用于区块链节点设备中,可以包括:
第一接收模块301,用于接收升级指令;
第一获取模块302,用于根据升级指令获取目标逻辑合约,登记目标逻辑合约至区块链中;
第二获取模块303,用于获取代理合约调用目标逻辑合约时所需的目标运行参数;
第一登记模块304,用于将目标运行参数写入代理合约中,得到目标代理合约,登记目标代理合约至区块链中。
本申请实施例提供的一种智能合约升级系统,还可以包括:
第一构建模块,用于在第一接收模块接收升级指令之前,构建数据结构,数据结构用于记录逻辑合约的运行参数;
第一存储模块,用于将数据结构存储在代理合约中;
第一登记模块可以包括:
第一登记单元,用于将目标参数写入数据结构中。
本申请实施例提供的一种智能合约升级系统,目标运行参数包括目标逻辑合约的逻辑地址;
第一登记模块可以包括:
第一传输单元,用于将目标逻辑合约的逻辑地址传输至代理合约;
第一调用单元,用于调用代理合约中升级逻辑合约地址的功能,以将目标逻辑合约的逻辑地址写入代理合约,得到目标代理合约。
本申请实施例提供的一种智能合约升级系统,第二获取模块可以包括:
目标运行参数包括目标逻辑合约的方法名和方法字符串;
第一登记模块包括:
第二传输单元,用于将方法名和方法字符串传输至代理合约;
第二调用单元,用于调用代理合约中的方法添加功能,以添加方法名和方法字符串至代理合约,得到目标代理合约。
本申请实施例提供的一种智能合约升级系统中,第二调用单元可以包括:
第一计算子单元,用于对方法字符串进行哈希计算得到哈希值;
第一建立子单元,用于建立方法名与哈希值的映射关系;
第二调用子单元,用于调用代理合约中的方法添加功能,将方法名、哈希值及映射关系添加至代理合约,得到目标代理合约。
本申请实施例提供的一种智能合约升级系统,还可以包括:
第一接收模块,用于第二调用单元调用代理合约中的方法添加功能之后,接收用户客户端发送的目标方法名;
第三传输单元,用于传输目标方法名至目标代理合约,以调用目标代理合约运行与目标方法名对应的方法字符串,实现目标方法名对应的逻辑合约。
本申请实施例提供的一种智能合约升级系统,第一登记模块可以包括:
转换单元,用于将目标运行参数转化为预设数据格式的目标数据运行参数;
写入单元,用于将目标数据运行参数写入代理合约中。
本申请还提供了一种区块链节点设备及计算机可读存储介质,其均具有本申请实施例提供的一种智能合约升级方法具有的对应效果。请参阅图4,图4为本申请实施例提供的一种区块链节点设备的结构示意图。
本申请实施例提供的一种区块链节点设备,包括存储器401和处理器402,存储器401中存储有计算机程序,处理器402执行存储器401中存储的计算机程序时实现如下步骤:
接收升级指令;
根据升级指令获取目标逻辑合约,登记目标逻辑合约至区块链中;
获取代理合约调用目标逻辑合约时所需的目标运行参数;
将目标运行参数写入代理合约中,得到目标代理合约,登记目标代理合约至区块链中。
本申请实施例提供的一种区块链节点设备,包括存储器401和处理器402,存储器401中存储有计算机子程序,处理器402执行存储器401中存储的计算机子程序时具体实现如下步骤:在接收升级指令之前,构建数据结构,数据结构用于记录逻辑合约的运行参数;将数据结构存储在代理合约中;相应的,将目标运行参数写入数据结构中。
本申请实施例提供的一种区块链节点设备,包括存储器401和处理器402,存储器401中存储有计算机子程序,处理器402执行存储器401中存储的计算机子程序时具体实现如下步骤:目标运行参数包括目标逻辑合约的逻辑地址,将目标逻辑合约的逻辑地址传输至代理合约;调用代理合约中升级逻辑合约地址的功能,以将目标逻辑合约的逻辑地址写入代理合约,得到目标代理合约。
本申请实施例提供的一种区块链节点设备,包括存储器401和处理器402,存储器401中存储有计算机子程序,处理器402执行存储器401中存储的计算机子程序时具体实现如下步骤:目标运行参数包括目标逻辑合约的方法名和方法字符串;将方法名和方法字符串传输至代理合约;调用代理合约中的方法添加功能,以添加方法名和方法字符串至代理合约,得到目标代理合约。
本申请实施例提供的一种区块链节点设备,包括存储器401和处理器402,存储器401中存储有计算机子程序,处理器402执行存储器401中存储的计算机子程序时具体实现如下步骤:对方法字符串进行哈希计算得到哈希值;建立方法名与哈希值的映射关系;调用代理合约中的方法添加功能,将方法名、哈希值及映射关系添加至代理合约,得到目标代理合约。
本申请实施例提供的一种区块链节点设备,包括存储器401和处理器402,存储器401中存储有计算机子程序,处理器402执行存储器401中存储的计算机子程序时具体实现如下步骤:调用代理合约中保存逻辑合约的功能之后,接收用户客户端发送的目标方法名;传输目标方法名至目标代理合约,以调用目标代理合约运行与目标方法名对应的方法字符串,实现目标方法名对应的逻辑合约。
本申请实施例提供的一种区块链节点设备,包括存储器401和处理器402,存储器401中存储有计算机子程序,处理器402执行存储器401中存储的计算机子程序时具体实现如下步骤:将目标运行参数转化为预设数据格式的目标数据运行参数;将目标数据运行参数写入代理合约中。
请参阅图5,本申请实施例提供的另一种区块链节点设备中还可以包括:与处理器402连接的输入端口403,用于传输外界输入的命令至处理器402;与处理器402连接的显示单元404,用于显示处理器402的处理结果至外界;与处理器402连接的通信模块405,用于实现区块链节点设备与外界的通信。显示单元404可以为显示面板、激光扫描使显示器等;通信模块405所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
接收升级指令;
根据升级指令获取目标逻辑合约,登记目标逻辑合约至区块链中;
获取代理合约调用目标逻辑合约时所需的目标运行参数;
将目标运行参数写入代理合约中,得到目标代理合约,登记目标代理合约至区块链中。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机子程序,计算机子程序被处理器执行时具体实现如下步骤:在接收升级指令之前,构建数据结构,数据结构用于记录逻辑合约的运行参数;将数据结构存储在代理合约中;相应的,将目标运行参数写入数据结构中。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机子程序,计算机子程序被处理器执行时具体实现如下步骤:目标运行参数包括目标逻辑合约的逻辑地址,将目标逻辑合约的逻辑地址传输至代理合约;调用代理合约中升级逻辑合约地址的功能,以将目标逻辑合约的逻辑地址写入代理合约,得到目标代理合约。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机子程序,计算机子程序被处理器执行时具体实现如下步骤:目标运行参数包括目标逻辑合约的方法名和方法字符串;将方法名和方法字符串传输至代理合约;调用代理合约中的方法添加功能,以添加方法名和方法字符串至代理合约,得到目标代理合约。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机子程序,计算机子程序被处理器执行时具体实现如下步骤:对方法字符串进行哈希计算得到哈希值;建立方法名与哈希值的映射关系;调用代理合约中的方法添加功能,将方法名、哈希值及映射关系添加至代理合约,得到目标代理合约。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机子程序,计算机子程序被处理器执行时具体实现如下步骤:调用代理合约中保存逻辑合约的功能之后,接收用户客户端发送的目标方法名;传输目标方法名至目标代理合约,以调用目标代理合约运行与目标方法名对应的方法字符串以实现目标方法名对应的逻辑合约。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机子程序,计算机子程序被处理器执行时具体实现如下步骤:将目标运行参数转化为预设数据格式的目标数据运行参数;将目标数据运行参数写入代理合约中。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的一种智能合约升级方法、区块链节点设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种智能合约升级方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种智能合约升级方法,其特征在于,应用于区块链节点设备中,包括:
接收升级指令;
根据所述升级指令获取目标逻辑合约,登记所述目标逻辑合约至区块链中;
获取代理合约调用所述目标逻辑合约时所需的目标运行参数;
将所述目标运行参数写入所述代理合约中,得到目标代理合约,登记所述目标代理合约至所述区块链中。
2.根据权利要求1所述的方法,其特征在于,在所述接收升级指令之前,所述方法还包括:
构建数据结构,所述数据结构用于记录逻辑合约的运行参数;
将所述数据结构存储在所述代理合约中;
所述将所述目标运行参数写入所述代理合约中,包括:
将所述目标运行参数写入所述数据结构中。
3.根据权利要求1所述的方法,其特征在于,所述目标运行参数包括所述目标逻辑合约的逻辑地址,
所述将所述目标运行参数写入所述代理合约中,得到目标代理合约,具体包括:
将所述目标逻辑合约的逻辑地址传输至所述代理合约;
调用所述代理合约中升级逻辑合约地址的功能,以将所述目标逻辑合约的逻辑地址写入所述代理合约,得到所述目标代理合约。
4.根据权利要求1所述的方法,其特征在于所述目标运行参数包括所述目标逻辑合约的方法名和方法字符串;
所述将所述目标运行参数写入所述代理合约中,得到目标代理合约,具体包括:
将所述方法名和所述方法字符串传输至所述代理合约;
调用所述代理合约中的方法添加功能,以添加所述方法名和所述方法字符串至所述代理合约,得到所述目标代理合约。
5.根据权利要求4所述的方法,其特征在于,所述调用所述代理合约中的方法添加功能,以添加所述方法名和所述方法字符串至所述代理合约,得到所述目标代理合约,具体包括:
对所述方法字符串进行哈希计算得到哈希值;
建立所述方法名与所述哈希值的映射关系;
调用所述代理合约中的方法添加功能,将所述方法名、所述哈希值及所述映射关系添加至所述代理合约,得到目标代理合约。
6.根据权利要求4所述的方法,其特征在于,所述调用所述代理合约中的方法添加功能之后,还包括:
接收用户客户端发送的目标方法名;
传输所述目标方法名至所述目标代理合约,以调用所述目标代理合约运行与所述目标方法名对应的方法字符串,实现所述目标方法名对应的逻辑合约。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述将所述目标运行参数写入所述代理合约中,包括:
将所述目标运行参数转化为预设数据格式的目标数据运行参数;
将所述目标数据运行参数写入所述代理合约中。
8.一种智能合约升级方法,其特征在于,应用于区块链节点设备中,包括:
第一接收模块,用于接收升级指令;
第一获取模块,用于根据所述升级指令获取目标逻辑合约,登记所述目标逻辑合约至区块链中;
第二获取模块,用于获取代理合约调用所述目标逻辑合约时所需的目标运行参数;
第一登记模块,用于将所述目标运行参数写入所述代理合约中,得到目标代理合约,登记所述目标代理合约至所述区块链中。
9.一种区块链节点设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的智能合约升级方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的智能合约升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811269722.1A CN109445820A (zh) | 2018-10-29 | 2018-10-29 | 一种智能合约升级方法、系统、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811269722.1A CN109445820A (zh) | 2018-10-29 | 2018-10-29 | 一种智能合约升级方法、系统、设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109445820A true CN109445820A (zh) | 2019-03-08 |
Family
ID=65549194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811269722.1A Pending CN109445820A (zh) | 2018-10-29 | 2018-10-29 | 一种智能合约升级方法、系统、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109445820A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059125A (zh) * | 2019-04-24 | 2019-07-26 | 深圳市元征科技股份有限公司 | 一种代理合约调用的方法及相关设备 |
CN110489429A (zh) * | 2019-08-22 | 2019-11-22 | 腾讯科技(深圳)有限公司 | 数据获取方法、装置、计算机可读存储介质和计算机设备 |
WO2020206848A1 (zh) * | 2019-04-11 | 2020-10-15 | 深圳市网心科技有限公司 | 一种智能合约升级方法、装置、区块链节点设备及介质 |
CN112541756A (zh) * | 2019-09-20 | 2021-03-23 | 上海哔哩哔哩科技有限公司 | 区块链合约升级方法、装置、计算机设备及可读存储介质 |
CN113220701A (zh) * | 2021-05-25 | 2021-08-06 | 成都佰纳瑞信息技术有限公司 | 基于区块链的数据结构自适应变动升级方法、装置、设备和产品 |
CN113542405A (zh) * | 2021-07-14 | 2021-10-22 | 广东卓启云链科技有限公司 | 基于区块链的网络通信系统、方法、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598549A (zh) * | 2016-12-08 | 2017-04-26 | 天津米游科技有限公司 | 一种基于区块链的智能合约系统及实现方法 |
CN107688927A (zh) * | 2017-09-19 | 2018-02-13 | 中国银行股份有限公司 | 一种调用区块链上的智能合约的方法及系统 |
CN107943469A (zh) * | 2017-11-17 | 2018-04-20 | 深圳圣马歌科技有限公司 | 一种智能合约的发布方法及装置 |
US20180137465A1 (en) * | 2016-11-11 | 2018-05-17 | International Business Machines Corporation | Smart contract admission check and fault tolerance in a blockchain |
CN108510389A (zh) * | 2018-03-30 | 2018-09-07 | 深圳前海微众银行股份有限公司 | 基于区块链的智能合约调用方法、设备及可读存储介质 |
-
2018
- 2018-10-29 CN CN201811269722.1A patent/CN109445820A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180137465A1 (en) * | 2016-11-11 | 2018-05-17 | International Business Machines Corporation | Smart contract admission check and fault tolerance in a blockchain |
CN106598549A (zh) * | 2016-12-08 | 2017-04-26 | 天津米游科技有限公司 | 一种基于区块链的智能合约系统及实现方法 |
CN107688927A (zh) * | 2017-09-19 | 2018-02-13 | 中国银行股份有限公司 | 一种调用区块链上的智能合约的方法及系统 |
CN107943469A (zh) * | 2017-11-17 | 2018-04-20 | 深圳圣马歌科技有限公司 | 一种智能合约的发布方法及装置 |
CN108510389A (zh) * | 2018-03-30 | 2018-09-07 | 深圳前海微众银行股份有限公司 | 基于区块链的智能合约调用方法、设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
王铁塔: "智能合约升级模式介绍 — 入门篇", 《思否:HTTPS://SEGMENTFAULT.COM/A/1190000015732881》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020206848A1 (zh) * | 2019-04-11 | 2020-10-15 | 深圳市网心科技有限公司 | 一种智能合约升级方法、装置、区块链节点设备及介质 |
CN110059125A (zh) * | 2019-04-24 | 2019-07-26 | 深圳市元征科技股份有限公司 | 一种代理合约调用的方法及相关设备 |
CN110059125B (zh) * | 2019-04-24 | 2023-09-05 | 深圳市元征科技股份有限公司 | 一种代理合约调用的方法及相关设备 |
CN110489429A (zh) * | 2019-08-22 | 2019-11-22 | 腾讯科技(深圳)有限公司 | 数据获取方法、装置、计算机可读存储介质和计算机设备 |
CN112541756A (zh) * | 2019-09-20 | 2021-03-23 | 上海哔哩哔哩科技有限公司 | 区块链合约升级方法、装置、计算机设备及可读存储介质 |
CN113220701A (zh) * | 2021-05-25 | 2021-08-06 | 成都佰纳瑞信息技术有限公司 | 基于区块链的数据结构自适应变动升级方法、装置、设备和产品 |
CN113220701B (zh) * | 2021-05-25 | 2023-05-02 | 成都佰纳瑞信息技术有限公司 | 基于区块链的数据结构自适应变动升级方法、装置、设备和产品 |
CN113542405A (zh) * | 2021-07-14 | 2021-10-22 | 广东卓启云链科技有限公司 | 基于区块链的网络通信系统、方法、设备及存储介质 |
CN113542405B (zh) * | 2021-07-14 | 2023-10-17 | 广东卓启云链科技有限公司 | 基于区块链的网络通信系统、方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109445820A (zh) | 一种智能合约升级方法、系统、设备及计算机存储介质 | |
KR101778768B1 (ko) | IoT 기기 제어 방법 및 시스템 | |
CN108924050A (zh) | 数据转发方法及其装置、存储介质和网卡设备 | |
CN108833578A (zh) | 基于fifo命名管道进行双工通信的方法及相关设备 | |
CN104216761A (zh) | 一种在能够运行两种操作系统的装置中使用共享设备的方法 | |
CN109272324A (zh) | 一种业务功能实现方法、系统、设备及计算机存储介质 | |
CN115145938A (zh) | 企业用户身份标识体系构建方法、装置、设备、介质 | |
CN105491507A (zh) | 一种m2m中管理应用资源的方法和注册节点 | |
CN104484619B (zh) | 一种解决客户端多逻辑通道访问pkcs#15文件冲突的方法 | |
CN115914164A (zh) | 一种隧道连接方法、装置、电子设备和存储介质 | |
CN112711683A (zh) | 数据比对方法、装置及计算机设备 | |
CN105260266A (zh) | 一种快照卷写方法及依赖快照系统 | |
CN103428013B (zh) | 设备管理方法、系统和网关设备 | |
CN113364820A (zh) | 物联网业务系统的设备管控方法与装置 | |
CN109587121B (zh) | 安全策略的管控方法及装置 | |
CN102036185B (zh) | 设备群组管理的方法、网络节点和通信系统 | |
CN110446197A (zh) | 一种智能设备的通信控制方法、装置、设备及存储介质 | |
CN109274774A (zh) | 一种数据存储方法、装置和计算机可读存储介质 | |
CN111625474B (zh) | 一种联盟链的自动测试方法 | |
CN109782886A (zh) | 一种服务器上电时序的检测方法及装置 | |
CN104516883A (zh) | 一种网页共享方法、装置及系统 | |
CN103473362B (zh) | 数据迁移的方法、系统和接收端口模块 | |
CN105357445A (zh) | 一种物联网系统 | |
CN105681157A (zh) | 基于即时通信的长连接性能提示方法及装置 | |
CN109450885A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190308 |