区块链智能合约的升级处理方法、装置、设备及介质与流程

文档序号:36258974发布日期:2023-12-05 12:20阅读:42来源:国知局
区块链智能合约的升级处理方法与流程

本申请涉及大数据领域,尤其涉及一种区块链智能合约的升级处理方法、装置、设备及介质。


背景技术:

1、在智能合约的应用体系中,合约地址的计算方法有两种,一是根据发送账户和发送账户的当前交易序列号(具备唯一性)计算生成,二是根据发送账户、合约字节码和自定义数计算生成。在需要进行合约升级时,合约修改后(合约字节码发生改变)再次部署,使用相同的发送账户得到也是不同的合约地址。而在区块链中,合约地址是账本划分的最小单位,不同的合约地址指向不同的存储区域,不同的合约地址之间数据不共享,即在合约a和合约b中同一个key代表不同的意义和值。在应用端发展过程中,经常会出现错误或者新需求需要进行合约升级和拓展,而应用端是通过合约地址进行合约区分和调用,所以就出现合约升级后老业务数据无法直接使用的问题。

2、现常用两种解决方案,一是在应用端配置多个合约地址,做新旧业务区分调用,二是做数据迁移,把数据导入新合约中,这两种方案都存在工作量大、不宜维护、容易出错的问题。


技术实现思路

1、本申请提供一种区块链智能合约的升级处理方法、装置、设备及介质,用以解决现有智能合约升级后旧的业务数据无法直接使用的问题。

2、一方面,本申请提供一种区块链智能合约的升级处理方法,包括:

3、接收客户端发送的区块链智能合约的升级指令,所述升级指令中携带待升级的智能合约的标识;

4、根据所述智能合约的标识确定所述智能合约包括的第一业务合约的地址,根据所述业务合约的地址获取业务合约并将所述业务合约发送给所述客户端,所述智能合约包括:用于存储业务数据的数据合约,以及用于存储业务逻辑的业务合约,所述数据合约和所述业务合约分别存储在区块链的不同地址中,所述业务数据以映射变量的形式存储在所述数据合约中,所述数据合约的地址写入所述业务合约中;

5、接收所述客户端发送的升级后的业务合约,将所述升级后的业务合约存储至所述区块链的合约更新地址中,将所述数据合约的地址写入升级后的业务合约中,其中,升级后的业务合约通过所述数据合约中的映射变量的管理策略调用所述数据合约中的业务数据。

6、进一步的,所述数据合约中存储的映射变量包括:变量名称、变量类型、以及所述变量的访问权限;所述映射变量的管理策略包括:对所述变量的操作策略、变量类型策略、变量权限管理策略和变量赋值,对所述变量的操作包括以下至少一种:新增操作、查询操作、修改操作、删除操作和校验操作。

7、进一步的,所述升级后的业务合约通过所述数据合约中的映射变量的管理策略调用所述数据合约中的业务数据,包括:

8、根据升级后的业务合约的地址值判断所述业务合约对所述数据合约中的业务数据的访问权限。

9、进一步的,所述业务合约的地址值采用数组形式。

10、进一步的,升级后的业务合约通过数据合约的接口设置值并通过消息调用的方式进行所述业务数据的存储。

11、进一步的,所述映射变量的管理策略包括还包括:对所述变量进行操作的权限策略。

12、进一步地,所述业务合约内的变量字段通过参数输入的方式,将定义权限提供给应用端。

13、另一方面,本申请提供一种区块链智能合约的升级处理装置,包括:

14、接收模块,用于接收客户端发送的区块链智能合约的升级指令;

15、获取模块,用于获取业务合约;

16、发送模块,用于将合约发送给客户端。

17、第三方面,本申请还提供一种电子设备,包括:存储器和处理器;

18、所述存储器,用于存储计算机指令;

19、所述处理器,用于执行所述计算机执行指令,以实现如权利要求1-7任一项所述的方法。

20、第四方面,本申请还提供一种计算机存储介质,所述计算机存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的方法。

21、本申请提供的区块链智能合约的升级处理方法、装置、设备及介质,通过将数据合约和业务合约进行分离,在数据合约中存储数据,在业务合约中只存储业务逻辑,在智能合约需要升级时,只对业务合约进行升级,数据合约保持不变,实现了合约在升级之后业务数据可用,无需重新配置和维护,降低了智能合约升级的作业量。



技术特征:

1.一种区块链智能合约的升级处理方法,其特征在于,应用于服务端,所述包括:

2.根据权利要求1所述的方法,其特征在于,所述数据合约中存储的映射变量包括:变量名称、变量类型、以及所述变量的访问权限;所述映射变量的管理策略包括:对所述变量的操作策略、变量类型策略、变量权限管理策略和变量赋值,对所述变量的操作包括以下至少一种:新增操作、查询操作、修改操作、删除操作和校验操作。

3.根据权利要求2所述的方法,其特征在于,所述升级后的业务合约通过所述数据合约中的映射变量的管理策略调用所述数据合约中的业务数据,包括:

4.根据权利要求3所述的方法,其特征在于,所述业务合约的地址值采用数组形式。

5.根据权利要求3所述的方法,其特征在于,升级后的业务合约通过数据合约的接口设置值并通过消息调用的方式进行所述业务数据的存储。

6.根据权利要求2所述的方法,其特征在于,所述映射变量的管理策略还包括:对所述变量进行操作的权限策略。

7.根据权利要求1所述的方法,其特征在于,所述业务合约内的变量字段通过参数输入的方式,将定义权限提供给应用端。

8.一种区块链智能合约的升级处理装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括:存储器和处理器;

10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的方法。


技术总结
本申请提供一种区块链智能合约的升级处理方法,包括:接收客户端发送的智能合约的升级指令;根据升级指令中智能合约的标识确定智能合约包括的第一业务合约的地址,根据该地址获取业务合约并将业务合约发送给客户端,智能合约包括:用于存储业务数据的数据合约和用于存储业务逻辑的业务合约,业务数据以映射变量的形式存储在数据合约中,数据合约的地址写入业务合约中;接收客户端发送的升级后的业务合约,将该业务合约存储至区块链的合约更新地址中,将数据合约的地址写入升级后的业务合约中,升级后的业务合约通过数据合约中的映射变量的管理策略调用数据合约中的业务数据。本申请的方法,可在不进行数据迁移的情况下进行合约的升级扩展。

技术研发人员:袁邓
受保护的技术使用者:中国联合网络通信集团有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1