基于区块链的数据处理方法、装置、设备及可读存储介质制造方法及图纸

技术编号:39271073 阅读:7 留言:0更新日期:2023-11-07 10:50
本发明专利技术公开了一种基于区块链的数据处理方法、装置、设备及可读存储介质,该方法包括:接收与第一对象相关联的业务逻辑合约调用交易;若业务逻辑合约调用交易共识通过,则获取管理合约;管理合约中每个代理合约地址对应的代理合约均与业务逻辑合约相关联;通过管理合约获取与第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;获取目标代理合约地址对应的目标代理合约,通过目标代理合约获取业务逻辑合约;通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果,将交易执行结果写入目标代理合约;目标代理合约中的交易执行结果与第一对象相关联。采用本发明专利技术,可以减少合约部署期间的消耗费用。费用。费用。

【技术实现步骤摘要】
基于区块链的数据处理方法、装置、设备及可读存储介质


[0001]本申请涉及计算机
,尤其涉及一种基于区块链的数据处理方法、装置、设备及可读存储介质。

技术介绍

[0002]随着网络技术的快速发展以及政府和企业对数据安全的重视,区块链得到了极大的重视和应用,因此区块链上DAPP去中心化应用逐渐增多,链上合约部署也日益频繁。
[0003]当前区块链上通过代理合约的方式进行业务逻辑合约的管理,即在区块链中部署业务逻辑合约后,将业务逻辑合约对应的链上业务合约的地址在代理合约中进行注册,然后通过代理合约来调用多个业务逻辑合约,以便于业务逻辑合约的升级和存储维护。但是针对一些具有固定业务功能的业务逻辑合约,不同用户或者不同业务需要应用这些固定业务功能时,需要分别部署其对应的业务逻辑合约,因此,当固定业务功能对应的业务逻辑合约的合约代码量越多时,每次进行业务逻辑合约的部署需要花费的gas(消耗)费用就越多,而且重复部署具有相同代码的业务逻辑合约,也大大浪费了系统资源。

技术实现思路

[0004]本申请实施例提供了一种数据处理方法、装置、设备及可读存储介质,可以减少合约部署期间的消耗费用,且可以减少系统资源的浪费。
[0005]本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
[0006]接收与第一对象相关联的业务逻辑合约调用交易;
[0007]若业务逻辑合约调用交易共识通过,则获取管理合约;管理合约中存储有一个或多个代理合约地址;每个代理合约地址分别与不同的对象链上地址相关联;每个代理合约地址对应的代理合约均与业务逻辑合约相关联;
[0008]通过管理合约在一个或多个代理合约地址中,获取与第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;
[0009]获取目标代理合约地址对应的目标代理合约,通过目标代理合约获取业务逻辑合约;
[0010]通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果,将交易执行结果写入目标代理合约;目标代理合约中的交易执行结果与第一对象相关联。
[0011]本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
[0012]第一接收模块,接收与第一对象相关联的业务逻辑合约调用交易;
[0013]第一获取模块,用于若业务逻辑合约调用交易共识通过,则获取管理合约;管理合约中存储有一个或多个代理合约地址;每个代理合约地址分别与不同的对象链上地址相关联;每个代理合约地址对应的代理合约均与业务逻辑合约相关联;
[0014]第二获取模块,用于通过管理合约在一个或多个代理合约地址中,获取与第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;
[0015]第三获取模块,用于获取目标代理合约地址对应的目标代理合约,通过目标代理合约获取业务逻辑合约;
[0016]执行模块,用于通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果,将交易执行结果写入目标代理合约;目标代理合约中的交易执行结果与第一对象相关联。
[0017]其中,第三获取模块,包括:
[0018]第一调用单元,用于在第一上下文环境下,在通过管理合约切换调用目标代理合约地址对应的目标代理合约的过程中,将第一上下文环境切换为第二上下文环境;第一上下文环境为管理合约对应的上下文环境;第二上下文环境为目标代理合约对应的上下文环境;
[0019]第二调用单元,用于在第二上下文环境下,通过目标代理合约委托调用业务逻辑合约;第二上下文环境在委托调用业务逻辑合约的过程中不发生变化。
[0020]其中,执行模块,包括:
[0021]执行单元,用于在第二上下文环境下,通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果;
[0022]第一写入单元,用于将交易执行结果写入目标代理合约对应的第二上下文环境中。
[0023]其中,业务逻辑合约调用交易包括交易数据和待调用函数名称;待调用函数名称用于表征在业务逻辑合约中所需调用的用于执行交易数据的待调用函数的名称;
[0024]执行单元,包括:
[0025]函数确定子单元,用于根据待调用函数名称在业务逻辑合约中获取待调用函数;
[0026]数据获取子单元,用于根据待调用函数,在第二上下文环境中,获取针对交易数据的历史交易数据;
[0027]执行子单元,用于通过交易数据和历史交易数据执行待调用函数,得到交易执行结果。
[0028]其中,上述数据处理装置,还包括:
[0029]第二接收模块,用于接收与第一对象相关联的代理合约部署交易;代理合约部署交易中包含管理合约地址;
[0030]第四获取模块,用于若代理合约部署交易共识通过,则获取管理合约地址所指示的管理合约;
[0031]第一部署模块,用于通过管理合约部署与业务逻辑合约相关联的目标代理合约;
[0032]第一写入模块,用于将目标代理合约对应的代理合约地址与第一对象对应的第一对象链上地址,关联写入管理合约中。
[0033]其中,管理合约包括代理合约部署代码和业务逻辑合约对应的业务逻辑合约地址;
[0034]第一部署模块,包括:
[0035]创建单元,用于通过执行代理合约部署代码,创建初始代理合约;
[0036]第二写入单元,用于将业务逻辑合约地址写入初始代理合约,得到与业务逻辑合约相关联的目标代理合约。
[0037]其中,上述数据处理装置,还包括:
[0038]第三接收模块,用于接收与管理对象相关联的管理合约部署交易;管理合约部署交易中包含管理合约代码、代理合约部署代码以及业务逻辑合约地址;
[0039]创建模块,用于若管理合约部署交易共识通过,则通过执行管理合约代码,创建初始管理合约;
[0040]第二写入模块,用于将代理合约部署代码和业务逻辑合约地址写入初始管理合约中,得到管理合约。
[0041]其中,上述数据处理装置,还包括:
[0042]第一发送模块,用于将管理合约对应的管理合约地址发送至业务服务器,以使业务服务器在接收到与第一对象相关联的针对业务逻辑合约的代理合约部署请求时,生成携带管理合约地址的代理合约部署交易;代理合约部署交易用于为第一对象部署目标代理合约。
[0043]其中,上述数据处理装置,还包括:
[0044]第四接收模块,用于接收与管理对象相关联的业务逻辑合约部署交易;业务逻辑合约部署交易中包含业务逻辑合约代码;
[0045]第二部署模块,用于若业务逻辑合约部署交易共识通过,则通过执行业务逻辑合约代码,部署业务逻辑合约;
[0046]第二发送模块,用于若业务逻辑合约部署成功,则将业务逻辑合约对应的业务逻辑合约地址发送给管理对象。
[0047]其中,上述数据处理装置,还包括:
[0048]权限确定模块,用于获取管理对象对应的管理对象链上地址;
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的数据处理方法,其特征在于,包括:接收与第一对象相关联的业务逻辑合约调用交易;若所述业务逻辑合约调用交易共识通过,则获取管理合约;所述管理合约中存储有一个或多个代理合约地址;每个代理合约地址分别与不同的对象链上地址相关联;每个代理合约地址对应的代理合约均与业务逻辑合约相关联;通过所述管理合约在所述一个或多个代理合约地址中,获取与所述第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;获取所述目标代理合约地址对应的目标代理合约,通过所述目标代理合约获取所述业务逻辑合约;通过所述业务逻辑合约执行所述业务逻辑合约调用交易,得到交易执行结果,将所述交易执行结果写入所述目标代理合约;所述目标代理合约中的所述交易执行结果与所述第一对象相关联。2.根据权利要求1所述的方法,其特征在于,所述获取所述目标代理合约地址对应的目标代理合约,通过所述目标代理合约调用所述业务逻辑合约,包括:在第一上下文环境下,在通过管理合约切换调用所述目标代理合约地址对应的目标代理合约的过程中,将第一上下文环境切换为第二上下文环境;所述第一上下文环境为所述管理合约对应的上下文环境;所述第二上下文环境为所述目标代理合约对应的上下文环境;在所述第二上下文环境下,通过所述目标代理合约委托调用业务逻辑合约;所述第二上下文环境在委托调用所述业务逻辑合约的过程中不发生变化。3.根据权利要求2所述的方法,其特征在于,所述通过所述业务逻辑合约执行所述业务逻辑合约调用交易,得到交易执行结果,将所述交易执行结果写入所述目标代理合约,包括:在所述第二上下文环境下,通过所述业务逻辑合约执行所述业务逻辑合约调用交易,得到交易执行结果;将所述交易执行结果写入所述目标代理合约对应的所述第二上下文环境中。4.根据权利要求3所述的方法,其特征在于,所述业务逻辑合约调用交易包括交易数据和待调用函数名称;所述待调用函数名称用于表征在所述业务逻辑合约中所需调用的用于执行所述交易数据的待调用函数的名称;所述在所述第二上下文环境下,通过所述业务逻辑合约执行所述业务逻辑合约调用交易,得到交易执行结果,包括:根据所述待调用函数名称在所述业务逻辑合约中获取待调用函数;根据所述待调用函数,在所述第二上下文环境中,获取针对所述交易数据的历史交易数据;通过所述交易数据和所述历史交易数据执行所述待调用函数,得到交易执行结果。5.根据权利要求1所述的方法,其特征在于,还包括:接收与第一对象相关联的代理合约部署交易;所述代理合约部署交易中包含管理合约地址;若所述代理合约部署交易共识通过,则获取所述管理合约地址所指示的管理合约;
通过所述管理合约部署与业务逻辑合约相关联的目标代理合约;将所述目标代理合约对应的代理合约地址与所述第一对象对应的第一对象链上地址,关联写入所述管理合约中。6.根据权利要求5所述的方法,其特征在于,所述管理合约包括代理合约部署代码和业务逻辑合约对应的业务逻辑合约地址;所述通过所述管理合约部署与业务逻辑合约相关联的目标代理合约,包括:通过执行所述代理合约部署代码,创建初始代理合约;将所述业务逻辑合约地址写入所述初始代理合约,得到与所述业务逻辑合约相关联的目标代理合约。7.根据权利要求1所述的方法,其特征在于,还包括:接收与管理对象相关联的管理合约部署交易;所述管理合约部署交易中包含管理合约代码、代理合约部署代码以及业务逻辑合约地址;若所述管理合约部署交易共识通过,则通过执行所述管理合约代码,创建初始管理合约;将所述代理合约部署代码和所述业务逻辑合约地址写入所述初始...

【专利技术属性】
技术研发人员:陈自民
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1