【技术实现步骤摘要】
一种智能合约的升级方法、装置、设备及存储介质
[0001]本申请实施例涉及金融科技
,尤其涉及一种智能合约的升级方法、装置、设备及存储介质。
技术介绍
[0002]随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Finteh)转变,区块链技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
[0003]在区块链中,智能合约的代码是不可变的,这也是区块链作为“信任的机器”的可信任的基础之一。但是,为了保证可信的同时,必然牺牲可维护性、安全性和开发体验。比如,当智能合约被爆出安全漏洞和bug时,必须能够对智能合约进行快速和及时的修复,也就是说,可升级性是智能合约的刚需。
[0004]然而,智能合约的合约代码是不可变的,从而带来了智能合约的代码升级不方便的问题。
技术实现思路
[0005]本申请实施例提供了一种智能合约的升级方法、装置、设备及存储介质,用于提高智能合约升级的便利性和兼容性。
[0006]一方面,本申请实施例提供了 ...
【技术保护点】
【技术特征摘要】
1.一种智能合约的升级方法,其特征在于,包括:对原始逻辑合约的代码进行升级,获得目标逻辑合约的代码;扫描所述原始逻辑合约的代码,获得多个原始状态变量和所述多个原始状态变量的第一扫描顺序;以及扫描所述目标逻辑合约的代码,获得多个目标状态变量和所述多个目标状态变量的第二扫描顺序;将所述多个原始状态变量和所述多个目标状态变量进行比对,确定发生变化的至少一个待处理状态变量,以及所述至少一个待处理状态变量的变化信息;基于所述至少一个待处理状态变量的变化信息和所述第一扫描顺序,对所述第二扫描顺序进行调整获得第三扫描顺序;以及基于所述第三扫描顺序,在所述代理合约中为所述多个目标状态变量分配相应的存储插槽。2.如权利要求1所述的方法,其特征在于,还包括:部署所述目标逻辑合约,并将所述代理合约中保存的所述原始逻辑合约的合约地址,更新为所述目标逻辑合约的合约地址。3.如权利要求1所述的方法,其特征在于,所述扫描所述目标逻辑合约的代码,获得多个目标状态变量和所述多个目标状态变量的第二扫描顺序,包括:若对所述目标逻辑合约的继承关系进行解析,获得至少一个继承合约,则确定所述目标逻辑合约和所述至少一个继承合约的合约扫描顺序;按照所述合约扫描顺序,依次扫描所述目标逻辑合约的代码以及所述至少一个继承合约的代码,获得多个目标状态变量以及所述多个目标状态变量的第二扫描顺序。4.如权利要求3所述的方法,其特征在于,还包括:若所述目标逻辑合约不存在继承合约,则扫描所述目标逻辑合约的代码,获得所述多个目标状态变量和所述多个目标状态变量的第二扫描顺序。5.如权利要求1所述的方法,其特征在于,所述基于所述至少一个待处理状态变量的变化信息和所述第一扫描顺序,对所述第二扫描顺序进行调整获得第三扫描顺序,包括:针对每个待处理状态变量,基于所述待处理状态变量的变化信息,查询预设的排序处理逻辑列表,确定所述待处理状态变量在所述第二扫描顺序中的调整规则;基于所述至少一个待处理状态变量各自对应的调整规则,对所述第二扫描顺序进行调整,获得第三扫描顺序。6.如权利要求5所述的方法,其特征在于,所述待处理状态变量的变化信息...
【专利技术属性】
技术研发人员:毛嘉宇,范瑞彬,张开翔,张龙,储雨知,王越,
申请(专利权)人:深圳前海微众银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。