CN116975145A - 基于区块链的数据处理方法、装置、设备及可读存储介质 - Google Patents
基于区块链的数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116975145A CN116975145A CN202211426861.7A CN202211426861A CN116975145A CN 116975145 A CN116975145 A CN 116975145A CN 202211426861 A CN202211426861 A CN 202211426861A CN 116975145 A CN116975145 A CN 116975145A
- Authority
- CN
- China
- Prior art keywords
- contract
- management
- address
- transaction
- business logic
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 59
- 230000006870 function Effects 0.000 claims description 61
- 238000012545 processing Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 194
- 238000010586 diagram Methods 0.000 description 15
- 238000012546 transfer Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 239000002699 waste material Substances 0.000 description 6
- 230000003993 interaction Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- VLFZHMWZMNJMTK-UHFFFAOYSA-N CCC.CCC.CCC.CCC Chemical compound CCC.CCC.CCC.CCC VLFZHMWZMNJMTK-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- KAICRBBQCRKMPO-UHFFFAOYSA-N phosphoric acid;pyridine-3,4-diamine Chemical compound OP(O)(O)=O.NC1=CC=NC=C1N KAICRBBQCRKMPO-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于区块链的数据处理方法、装置、设备及可读存储介质,该方法包括:接收与第一对象相关联的业务逻辑合约调用交易;若业务逻辑合约调用交易共识通过,则获取管理合约;管理合约中每个代理合约地址对应的代理合约均与业务逻辑合约相关联;通过管理合约获取与第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;获取目标代理合约地址对应的目标代理合约,通过目标代理合约获取业务逻辑合约;通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果,将交易执行结果写入目标代理合约;目标代理合约中的交易执行结果与第一对象相关联。采用本发明,可以减少合约部署期间的消耗费用。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备及可读存储介质。
背景技术
随着网络技术的快速发展以及政府和企业对数据安全的重视,区块链得到了极大的重视和应用,因此区块链上DAPP去中心化应用逐渐增多,链上合约部署也日益频繁。
当前区块链上通过代理合约的方式进行业务逻辑合约的管理,即在区块链中部署业务逻辑合约后,将业务逻辑合约对应的链上业务合约的地址在代理合约中进行注册,然后通过代理合约来调用多个业务逻辑合约,以便于业务逻辑合约的升级和存储维护。但是针对一些具有固定业务功能的业务逻辑合约,不同用户或者不同业务需要应用这些固定业务功能时,需要分别部署其对应的业务逻辑合约,因此,当固定业务功能对应的业务逻辑合约的合约代码量越多时,每次进行业务逻辑合约的部署需要花费的gas(消耗)费用就越多,而且重复部署具有相同代码的业务逻辑合约,也大大浪费了系统资源。
发明内容
本申请实施例提供了一种数据处理方法、装置、设备及可读存储介质,可以减少合约部署期间的消耗费用,且可以减少系统资源的浪费。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
接收与第一对象相关联的业务逻辑合约调用交易;
若业务逻辑合约调用交易共识通过,则获取管理合约;管理合约中存储有一个或多个代理合约地址;每个代理合约地址分别与不同的对象链上地址相关联;每个代理合约地址对应的代理合约均与业务逻辑合约相关联;
通过管理合约在一个或多个代理合约地址中,获取与第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;
获取目标代理合约地址对应的目标代理合约,通过目标代理合约获取业务逻辑合约;
通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果,将交易执行结果写入目标代理合约;目标代理合约中的交易执行结果与第一对象相关联。
本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
第一接收模块,接收与第一对象相关联的业务逻辑合约调用交易;
第一获取模块,用于若业务逻辑合约调用交易共识通过,则获取管理合约;管理合约中存储有一个或多个代理合约地址;每个代理合约地址分别与不同的对象链上地址相关联;每个代理合约地址对应的代理合约均与业务逻辑合约相关联;
第二获取模块,用于通过管理合约在一个或多个代理合约地址中,获取与第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;
第三获取模块,用于获取目标代理合约地址对应的目标代理合约,通过目标代理合约获取业务逻辑合约;
执行模块,用于通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果,将交易执行结果写入目标代理合约;目标代理合约中的交易执行结果与第一对象相关联。
其中,第三获取模块,包括:
第一调用单元,用于在第一上下文环境下,在通过管理合约切换调用目标代理合约地址对应的目标代理合约的过程中,将第一上下文环境切换为第二上下文环境;第一上下文环境为管理合约对应的上下文环境;第二上下文环境为目标代理合约对应的上下文环境;
第二调用单元,用于在第二上下文环境下,通过目标代理合约委托调用业务逻辑合约;第二上下文环境在委托调用业务逻辑合约的过程中不发生变化。
其中,执行模块,包括:
执行单元,用于在第二上下文环境下,通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果;
第一写入单元,用于将交易执行结果写入目标代理合约对应的第二上下文环境中。
其中,业务逻辑合约调用交易包括交易数据和待调用函数名称;待调用函数名称用于表征在业务逻辑合约中所需调用的用于执行交易数据的待调用函数的名称;
执行单元,包括:
函数确定子单元,用于根据待调用函数名称在业务逻辑合约中获取待调用函数;
数据获取子单元,用于根据待调用函数,在第二上下文环境中,获取针对交易数据的历史交易数据;
执行子单元,用于通过交易数据和历史交易数据执行待调用函数,得到交易执行结果。
其中,上述数据处理装置,还包括:
第二接收模块,用于接收与第一对象相关联的代理合约部署交易;代理合约部署交易中包含管理合约地址;
第四获取模块,用于若代理合约部署交易共识通过,则获取管理合约地址所指示的管理合约;
第一部署模块,用于通过管理合约部署与业务逻辑合约相关联的目标代理合约;
第一写入模块,用于将目标代理合约对应的代理合约地址与第一对象对应的第一对象链上地址,关联写入管理合约中。
其中,管理合约包括代理合约部署代码和业务逻辑合约对应的业务逻辑合约地址;
第一部署模块,包括:
创建单元,用于通过执行代理合约部署代码,创建初始代理合约;
第二写入单元,用于将业务逻辑合约地址写入初始代理合约,得到与业务逻辑合约相关联的目标代理合约。
其中,上述数据处理装置,还包括:
第三接收模块,用于接收与管理对象相关联的管理合约部署交易;管理合约部署交易中包含管理合约代码、代理合约部署代码以及业务逻辑合约地址;
创建模块,用于若管理合约部署交易共识通过,则通过执行管理合约代码,创建初始管理合约;
第二写入模块,用于将代理合约部署代码和业务逻辑合约地址写入初始管理合约中,得到管理合约。
其中,上述数据处理装置,还包括:
第一发送模块,用于将管理合约对应的管理合约地址发送至业务服务器,以使业务服务器在接收到与第一对象相关联的针对业务逻辑合约的代理合约部署请求时,生成携带管理合约地址的代理合约部署交易;代理合约部署交易用于为第一对象部署目标代理合约。
其中,上述数据处理装置,还包括:
第四接收模块,用于接收与管理对象相关联的业务逻辑合约部署交易;业务逻辑合约部署交易中包含业务逻辑合约代码;
第二部署模块,用于若业务逻辑合约部署交易共识通过,则通过执行业务逻辑合约代码,部署业务逻辑合约;
第二发送模块,用于若业务逻辑合约部署成功,则将业务逻辑合约对应的业务逻辑合约地址发送给管理对象。
其中,上述数据处理装置,还包括:
权限确定模块,用于获取管理对象对应的管理对象链上地址;
权限确定模块,还用于若确定管理对象链上地址不具备管理合约部署权限,则向管理对象发送权限错误提示信息;
共识模块,用于若确定管理对象链上地址具备管理合约部署权限,则向共识网络发起针对管理合约部署交易的共识请求,以使共识网络对管理合约部署交易进行共识处理,得到共识结果;
共识模块,还用于若共识结果为共识通过结果,则确定管理合约部署交易共识通过。
其中,上述数据处理装置,还包括:
查找模块,用于基于第一对象对应的第一对象链上地址对管理合约中一个或多个代理合约地址进行查找处理;
查找模块,还用于若在一个或多个代理合约地址中,查找到与第一对象对应的第一对象链上地址相关联的代理合约地址,则调用第二获取模块;
查找模块,还用于若在一个或多个代理合约地址中,未查找到与第一对象对应的第一对象链上地址相关联的代理合约地址,则向第一对象发送代理合约注册引导信息。
本申请实施例一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信网元,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,上述计算机程序适于由处理器加载并执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中的方法。
本申请实施例中,接收与第一对象相关联的业务逻辑合约调用交易后,若该业务逻辑合约调用交易共识通过,则获取管理合约,该管理合约中存储有一个或多个代理合约地址,每个代理合约地址分别与不同的对象链上地址相关联,且每个代理合约地址对应的代理合约均与业务逻辑合约相关联;然后,通过管理合约在一个或多个代理合约地址中,获取与第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;然后,获取目标代理合约地址对应的目标代理合约,通过目标代理合约获取业务逻辑合约;最后通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果,将交易执行结果写入目标代理合约,其中,目标代理合约中的交易执行结果与第一对象相关联。由此可见,当第一对象需要应用业务逻辑合约提供的相关功能时,可以通过代理合约来调用业务逻辑合约并且存储相关的交易执行结果,因此第一对象不需要事先在区块链上部署功能越复杂代码量越多的业务逻辑合约,只用事先在区块链上部署与代码量很少的代理合约即可,需要部署的代码量减少,可以间接减少合约部署期间的消耗费用;此外,后续需要存储以及维护的合约的代码量减少,可以减少系统资源的浪费。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构示意图;
图2a是本申请实施例提供的一种代理合约部署的场景示意图;
图2b是本申请实施例提供的一种业务逻辑合约调用的场景示意图;
图3a是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图3b是本申请实施例提供的一种合约关系结构示意图;
图4是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图5是本申请实施例提供的一种合约部署与调用的流程示意图;
图6是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图7是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种网络架构示意图。区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链本质上是一个去中心化的数据库,该数据库中的每个节点均存储一条相同的区块链,区块链网络可以将节点区分为共识节点和业务节点,其中共识节点负责区块链全网的共识。对于区块链网络中交易数据被写入账本的过程可以为:客户端发送交易数据至业务节点,随后该交易数据以接力棒的方式在区块链网络中的业务节点之间传递,直到共识节点收到该交易数据,共识节点再将该交易数据打包进区块,与其他共识节点之间进行共识,在共识通过后,将携带该交易数据的区块写入账本。
其中,可以理解的是,区块(Block)是在区块链网络上承载交易数据(即交易业务)的数据包,是一种被标记上时间戳和之前一个区块的哈希值的数据结构,区块经过网络的共识机制验证并确定区块中的交易。
其中,可以理解的是,哈希(hash)值,也称作信息特征值或特征值,哈希值是通过哈希算法将任意长度的输入数据转换为密码并进行固定输出而生成的,不能通过解密哈希值来检索原始输入数据,它是一个单向的加密函数。在区块链中,每个区块(除了初始区块)都包含前继区块的哈希值,前继区块被称为当前区块的父区块。哈希值是区块链技术中的潜力核心基础和最重要的方面,它保留了记录和查看数据的真实性,以及区块链作为一个整体的完整性。
其中,可以理解的是,区块链系统中可以包括有智能合约,该智能合约在区块链系统中可以理解为是一种区块链各节点(包括共识节点)可以理解并执行的代码,可以执行任意逻辑并得到结果。用户可以通过客户端发起一个交易业务请求的方式,调用区块链上已经部署的智能合约,随后,区块链上的业务节点可以将该交易业务请求发送至共识节点,而区块链上的各个共识节点可以分别运行该智能合约。应当理解,区块链中可以包括一个或多个智能合约,这些智能合约可以标识号(Identity document,ID)或名称来进行区分,而客户端发起的交易业务请求中,也可以携带智能合约的标识号或名称,以此指定区块链需要运行的智能合约。而若客户端所指定的智能合约为需要读取数据的合约,则各个共识节点会访问本地账本来进行数据的读取,最后各个共识节点会互相验证执行结果是否一致(也就是进行共识),若一致则可以将执行结果存入各自的本地账本中,并将执行结果返回至客户端。
如图1所示,该网络架构可以包括区块链节点集群1000、业务服务器(服务端)集群100以及终端设备(客户端)集群10,该区块链节点集群1000可以包括至少两个区块链节点。如图1所示,该区块链节点集群1000可以包括区块链节点1000a、区块链节点1000b、…、区块链节点1000n,该业务服务器集群100具体可以包括业务服务器100a、业务服务器100b、…、业务服务器100n,该终端设备集群10具体可以包括终端设备10a、终端设备10b、…、终端设备10n。
如图1所示,终端设备10a、终端设备10b、…、终端设备10n可以分别与业务服务器100a、业务服务器100b、…、业务服务器100n进行数据连接,以便于终端设备可以通过该数据连接与业务服务器进行数据交互;业务服务器100a、业务服务器100b、…、业务服务器100n可以分别与区块链节点1000a、区块链节点1000b、…、区块链节点1000n进行数据连接,以便于业务服务器可以通过该数据连接与区块链节点进行数据交互;区块链节点1000a、区块链节点1000b、…、区块链节点1000n互相连接,以便于区块链节点之间可以进行数据交互。
可以理解的是,区块链节点之间可以通过上述数据连接进行数据或者区块传输。区块链网络可以基于节点标识实现区块链节点之间的数据连接,对于区块链网络中的每个区块链节点,均具有与其对应的节点标识,而且上述每个区块链节点均可以存储与自身有相连关系的其他区块链节点的节点标识,以便后续根据其他区块链节点的节点标识,将获取到的数据或生成的区块广播至其他区块链节点,例如区块链节点1000a中可以维护一个如表1所示的节点标识列表,该节点标识列表保存着其他节点的节点名称和节点标识:
表1
节点名称 | 节点标识 |
区块链节点1000a | AAA.AAA.AAA.AAA |
区块链节点1000b | BBB.BBB.BBB.BBB |
… | … |
区块链节点1000n | CCC.CCC.CCC.CCC |
其中,节点标识可为网络之间互联的协议(Internet Protocol,IP)地址以及其他任意一种能够用于标识区块链网络中区块链节点的信息,表1中仅以IP地址为例进行说明。例如,区块链节点1000a可以通过节点标识BBB.BBB.BBB.BBB向区块链节点1000b发送信息(例如,交易数据),且区块链节点1000b可以通过节点标识AAA.AAA.AAA.AAA确定该信息是由区块链节点1000a所发送的。
在区块链中,在将一个区块进行上链之前,该区块必须经过区块链网络中的共识节点进行共识,在共识通过后才能将该区块添加到区块链上。可以理解的是,当区块链被用于政府或者商业机构的一些场景中时,并非区块链中的所有参与节点(即上述区块链节点集群1000中的区块链节点)都有足够的资源和必要性成为区块链的共识节点。例如,在图1所示的区块链节点集群1000中,可以将区块链节点1000a、区块链节点1000b和区块链节点1000n作为该区块链节点集群中的共识节点。区块链节点集群1000中的共识节点参与共识,也就是对区块(包含一批交易)进行共识,包括生成区块,对区块进行投票;而非共识节点不参与共识,但会帮助传播区块和投票消息,以及相互同步状态等。
其中,可以理解的是,上述的数据连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。
可以理解的是,本申请实施例所提供的基于区块链的数据处理方法可以由计算机设备执行,计算机设备包括但不限于上述区块链节点(可以为终端或者服务器)、业务服务器、终端设备。上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
可以理解的是,本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等场景。
可以理解的是,在本申请的具体实施方式中,涉及到的交易数据等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
如图1所示,终端设备集群中的每个终端设备均可以安装有应用客户端,当该应用客户端运行于各终端设备中时,可以分别与上述业务服务器集群100中的任一业务服务器之间进行数据交互,使得上述业务服务器集群100中的任一业务服务器可以接收来自于每个终端设备的业务数据。其中,该应用客户端可以为游戏应用、视频编辑应用、社交应用、即时通信应用、直播应用、短视频应用、视频应用、音乐应用、购物应用、小说应用、支付应用、浏览器等具有显示文字、图像、音频以及视频等数据信息功能的应用客户端。其中,该应用客户端可以为独立的客户端,也可以为集成在某客户端(例如即时通信客户端、社交客户端、视频客户端等)中的嵌入式子客户端,在此不做限定。
第一对象可以通过与其关联的终端设备中运行的应用客户端,与区块链进行数据交互,从而使用由区块链中的业务逻辑合约提供的业务功能。例如,第一对象想通过应用客户端申请获取一个智能钱包,该智能钱包可以帮助第一对象管理其在区块链中的数字资产,其中,数字资产是指基于区块链技术发行、登记、存储、持有、转让或交易的新型无形资产,这些无形资产以数字化的形式存在于特定系统中,作为价值或权利的数字化标识。假设该智能钱包的所有功能均由区块链中的业务逻辑合约实现,因此第一对象申请获取智能钱包时,终端设备会响应该申请操作,生成钱包获取请求,然后将该钱包获取请求发送给业务服务器,业务服务器可以根据该钱包获取请求生成代理合约部署交易,然后将该代理合约部署交易发送至区块链节点。其中,该代理合约部署交易用于为第一对象在区块链中部署一个代理合约(可以称之为目标代理合约),之后第一对象想要使用智能钱包中的某个功能时,均可以通过该目标代理合约来调用业务逻辑合约,并且调用业务逻辑合约产生的相关数据也会存储在目标代理合约中。区块链节点在代理合约部署交易通过共识后,会为第一对象部署一个与业务逻辑合约相关联的目标代理合约,并将目标代理合约与第一对象对应的第一对象链上地址,关联写入管理合约中。其中,管理合约用于管理与业务逻辑合约相关联的代理合约对应的代理合约地址,管理合约中存储的每个代理合约地址分别与不同的对象链上地址相关联。然后,区块链节点通知业务服务器代理合约部署成功,业务服务器就可以通知终端设备智能钱包获取成功。之后,第一对象就可以使用该智能钱包了。
当第一对象想使用智能钱包的某项功能时,终端设备可以响应第一对象的钱包使用操作,生成钱包使用请求,然后将钱包使用请求发送给业务服务器。业务服务器可以根据该钱包使用请求生成业务逻辑合约调用交易,然后将该业务逻辑合约调用交易发送给区块链节点。区块链节点接收到与第一对象相关联的业务逻辑合约调用交易后,若该业务逻辑合约调用交易共识通过,则获取上述管理合约,然后通过管理合约在存储的一个或多个代理合约地址中,获取与第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;然后获取目标代理合约地址对应的目标代理合约,通过目标代理合约获取业务逻辑合约,并通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果,将交易执行结果写入目标代理合约。可以理解,目标代理合约中的交易执行结果与第一对象相关联。最后,区块链节点可以将交易执行结果返回给业务服务器,再由业务服务器发送给终端设备。
为便于理解上述过程,请一并参见图2a-图2b,其中,如图2a-图2b中所示的终端设备20可以为上述图1所示的终端设备集群10中的任一终端设备,如,终端设备20可以为终端设备10a;如图2a-图2b中所示的业务服务器21可以为上述图1所示的业务服务器集群100中的任一业务服务器,如,业务服务器21可以为业务服务器100b;如图2a-图2b中所示的区块链网络22可以为上述图1所示区块链节点集群1000共同构成的区块链网络,区块链网络22中的区块链节点23可以为上述图1所示区块链节点集群1000中的任一区块链节点,如,区块链节点23为区块链节点1000a。
请参见图2a,图2a是本申请实施例提供的一种代理合约部署的场景示意图。其中,终端设备20与第一对象具有关联关系,终端设备20中安装有上述应用客户端,具有登录该应用客户端权限的普通对象,均可以通过该应用客户端申请使用区块链网络中业务逻辑合约提供的业务功能。例如,第一对象可以通过应用客户端获取一个只属于自己的智能钱包,该智能钱包的相应功能由区块链网络中的业务逻辑合约实现。第一对象在申请该智能钱包时,需要先通过应用客户端申请在区块链网络中部署与自己相关联的代理合约,之后在第一对象使用智能钱包的过程中,区块链节点均通过代理合约去委托调用业务逻辑合约,并将合约执行数据记录在该代理合约中。因为第一对象在使用智能钱包的过程中,需要存储每次调用业务逻辑合约时产生的合约执行数据,便于在第一对象下次使用智能钱包时直接获取相关数据,例如,第一对象向智能钱包中转移数量为100的数字资产,则需要记录第一对象的当前余额数量为100,这样,才能在第一对象下次使用智能钱包转账时,直接确定第一对象的当前余额数量。如果直接将合约执行数据存储在业务逻辑合约中,则别的对象就无法使用该业务逻辑合约了,因此,可以通过代理合约来存储调用业务逻辑合约时产生的合约执行数据。
如图2a所示,第一对象通过终端设备20进行智能钱包获取操作,终端设备20响应该智能钱包获取操作后,会生成钱包申请请求201,然后,终端设备20会将该钱包申请请求201发送给业务服务器21,该业务服务器21可以根据该钱包申请请求201生成针对与智能钱包关联的业务逻辑合约的代理合约部署交易211,然后将该代理合约部署交易211发送至区块链网络22中的任一区块链节点,例如,区块链节点23。区块链节点23接收到该代理合约部署交易211后,若确定该代理合约部署交易211共识通过,则获取针对业务逻辑合约的管理合约231,该管理合约中可以包含有代理合约记录232和代理合约部署代码233。其中,代理合约记录232用于存储已经创建的代理合约的代理合约地址和与其相关联的对象链上地址,例如,代理合约记录232中关联存储有代理合约地址1与对象链上地址1,代理合约地址2与对象链上地址2。其中,代理合约部署代码233则用于部署代理合约。区块链节点23可以通过该代理合约部署代码233部署与第一对象相关联的代理合约,假设为代理合约x。代理合约x部署成功后,区块链节点23会将代理合约x对应的代理合约地址x与第一对象对应的第一对象链上地址也写入代理合约记录232中。然后,区块链节点23会将部署成功结果234发送给业务服务器21,然后,业务服务器21会通知终端设备20,智能钱包申请成功。
进一步地,请参见图2b,图2b是本申请实施例提供的一种业务逻辑合约调用的场景示意图。如图2b所示,第一对象获取自己的智能钱包后,可以通过终端设备20进行智能钱包使用操作,终端设备20响应该智能钱包使用操作后,会生成钱包使用请求202,然后,终端设备20会将该钱包使用请求202发送给业务服务器21,该业务服务器21可以根据该钱包使用请求202生成业务逻辑合约调用交易212,然后将该业务逻辑合约调用交易212发送至区块链网络22中的任一区块链节点,例如,区块链节点23。区块链节点23接收到该业务逻辑合约调用交易212后,若确定该业务逻辑合约调用交易212共识通过,则获取针对业务逻辑合约的管理合约231,然后在管理合约231中查找与第一对象链上地址相关联的代理合约地址,即获取代理合约地址x。然后,区块链节点23可以根据该代理合约地址x切换调用代理合约235(即上述图2a所述的代理合约x),然后,区块链节点23可以通过代理合约235委托调用业务逻辑合约236,然后根据委托调用的业务逻辑合约236中的业务逻辑代码执行交易,得到业务逻辑合约调用交易212的交易执行结果,然后将该交易执行结果写入到代理合约235中。然后,将交易执行结果237发送给业务服务器21,然后,业务服务器21会通知终端设备20,智能钱包使用成功。
由此可见,当第一对象需要应用业务逻辑合约提供的相关功能时,可以通过代理合约来调用业务逻辑合约并且存储相关的交易执行结果,因此第一对象不需要事先在区块链上部署功能越复杂代码量越多的业务逻辑合约,只用事先在区块链上部署代码量很少的代理合约即可,需要部署的代码量减少,可以间接减少合约部署期间的消耗费用。
进一步地,请参见图3a,图3a是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。其中,该方法可以由区块链节点(例如,上述图1所对应实施例中的区块链节点集群1000中的任一区块链节点)执行。以下将以本方法由区块链节点执行为例进行说明,其中,该基于区块链的数据处理方法至少可以包括以下步骤S101-步骤S105:
步骤S101,接收与第一对象相关联的业务逻辑合约调用交易。
具体的,业务逻辑合约调用交易是指在执行时需要调用业务逻辑合约的交易。其中,业务逻辑合约可以是区块链中部署的任意智能合约。
具体的,与第一对象相关联的业务逻辑合约调用交易是指通过第一对象的私钥签名后生成的业务逻辑合约调用交易。一个可行的实施例中,区块链节点接收的业务逻辑合约调用交易可以是由业务服务器发送的,即业务服务器在接收到终端设备发送的业务逻辑合约调用请求后,可以从存储中获取第一对象的私钥,然后通过第一对象的私钥对该业务逻辑合约调用请求进行签名,得到业务逻辑合约调用交易,然后业务服务器将业务逻辑合约调用交易发送至区块链节点。其中,业务逻辑合约调用请求可以是终端设备响应第一对象的业务逻辑合约调用操作后生成的。需要说明的是,业务服务器中存储第一对象的私钥之前需要经过第一对象的授权。
可选的,区块链节点可以获取第一对象的公钥对业务逻辑合约调用交易相关联的签名数据进行验证,如果验证成功,区块链节点可以将业务逻辑合约调用交易发送给区块链网络中的共识网络进行共识。
步骤S102,若所述业务逻辑合约调用交易共识通过,则获取管理合约;所述管理合约中存储有一个或多个代理合约地址;每个代理合约地址分别与不同的对象链上地址相关联;每个代理合约地址对应的代理合约均与业务逻辑合约相关联。
具体的,代理合约地址是指一个代理合约在区块链网络中的唯一地址,不同代理合约对应的代理合约地址不同。对象链上地址是指基于与对象绑定的公私钥对在区块链网络中生成的唯一的地址,也是用于在区块链上标识对象的唯一地址。
具体的,管理合约是用于管理代理合约的智能合约,管理合约中存储有一个或多个代理合约地址,以及每个代理合约地址相关联的对象链上地址,其作用是便于区块链节点快速获取到不同对象相关联的代理合约。代理合约是用于委托调用业务逻辑合约并存储执行业务逻辑合约后生成的相关数据的智能合约。可以理解,一个代理合约仅与一个对象相关联,该代理合约中存储的数据均与其关联的对象相关,与别的对象无关。
进一步地,为便于理解,请一并参见图3b,图3b是本申请实施例提供的一种合约关系结构示意图。如图3b所示,管理合约A关联有代理合约D1、代理合约D2和代理合约D3,代理合约D1、代理合约D2和代理合约D3均可以调用同一个业务逻辑合约E。因为一个代理合约仅与一个对象相关联,若对象1与区块链网络中部署的代理合约1相关联,则区块链节点可以在管理合约A中,将对象1对应的对象链上地址B1和代理合约D1对应的代理合约地址C1关联存储;若对象2与区块链网络中部署的代理合约2相关联,则区块链节点可以在管理合约A中,将对象2对应的对象链上地址B2和代理合约D2对应的代理合约地址C2关联存储;若对象3与区块链网络中部署的代理合约3相关联,则区块链节点可以在管理合约A中,将对象2对应的对象链上地址B3和代理合约D3对应的代理合约地址C3关联存储。通过如图3b所示的合约关系结构,不同对象发送的交易需要调用业务逻辑合约E时,区块链节点只会通过其关联的代理合约去调用业务逻辑合约E,并将相关数据存储在该对象关联的代理合约中,从而避免不同对象的数据发送混淆。
步骤S103,通过所述管理合约在所述一个或多个代理合约地址中,获取与所述第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址。
具体的,区块链节点可以根据业务逻辑合约调用交易获取第一对象对应的对象链上地址,然后,区块链节点可以根据第一对象链上地址在管理合约中获取目标代理合约地址。例如,请再参见上述图3b,假设第一对象为对象2,则第一对象链上地址为对象链上地址B2,则目标代理合约就为代理合约D2。
可选的,区块链节点会先基于第一对象对应的第一对象链上地址对管理合约中一个或多个代理合约地址进行查找处理;若在一个或多个代理合约地址中,查找到与第一对象对应的第一对象链上地址相关联的代理合约地址,则执行通过管理合约在一个或多个代理合约地址中,获取与第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址的步骤;若在一个或多个代理合约地址中,未查找到与第一对象对应的第一对象链上地址相关联的代理合约地址,则向第一对象发送代理合约注册引导信息。其中,代理合约注册引导信息用于引导第一对象发起与其相关联代理合约在区块链网络中的部署。
步骤S104,获取所述目标代理合约地址对应的目标代理合约,通过所述目标代理合约获取所述业务逻辑合约。
具体的,区块链节点通过目标代理合约地址可以获取到与第一对象相关联的目标代理合约,然后区块链节点通过目标代理合约去调用业务逻辑合约,来执行业务逻辑合约调用交易。
具体的,获取目标代理合约地址对应的目标代理合约,通过目标代理合约获取业务逻辑合约的一个可行实施过程,可以为:在第一上下文环境下,在通过管理合约切换调用目标代理合约地址对应的目标代理合约的过程中,将第一上下文环境切换为第二上下文环境。其中,第一上下文环境为管理合约对应的上下文环境;第二上下文环境为目标代理合约对应的上下文环境。在第二上下文环境下,通过目标代理合约委托调用业务逻辑合约;第二上下文环境在委托调用业务逻辑合约的过程中不发生变化。其中,通过管理合约切换调用目标代理合约地址对应的目标代理合约,可以通过call(调用)指令实现。其中,通过目标代理合约委托调用业务逻辑合约,可以通过delegatecall(委托调用)指令实现。其中,call指令和delegatecall指令均是Solidity(一门面向合约的、为实现智能合约而创建的高级编程语言)中实现跨合约的函数调用功能的指令函数,采用call指令切换调用合约时,call的调用方式会改变合约的上下文环境和Solidity的内置变量msg.sender(调用发起的地址)的值,即将msg.sender修改为调用者,也就是调用栈当前调用者的地址,执行环境修改为被调用者的运行环境,也就是合约的storage(存储);而delegatecall简单来说就是“委托”被调用者去管理自己的上下文环境(即storage),采用delegatecall指令委托调用合约时,执行环境修改依然为调用者的运行环境,也就是合约的storage,msg.sender则是调用栈最初的地址。例如,A调用B,然后B去delegatecall了C,在delegatecall中B调用C的msg.sender是A,此时的上下文环境为B的上下文环境,但如果是call,那么msg.sender是B,上下文环境为B的上下文环境。
步骤S105,通过所述业务逻辑合约执行所述业务逻辑合约调用交易,得到交易执行结果,将所述交易执行结果写入所述目标代理合约;所述目标代理合约中的所述交易执行结果与所述第一对象相关联。
具体的,通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果,将交易执行结果写入目标代理合约的一个可行实施过程,可以为:在第二上下文环境下,通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果;将交易执行结果写入目标代理合约对应的第二上下文环境中。
具体的,业务逻辑合约调用交易中可以包括交易数据和待调用函数名称,其中,待调用函数名称用于表征在业务逻辑合约中所需调用的用于执行交易数据的待调用函数的名称,则在第二上下文环境下,通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果的一个可行实施过程,可以为:根据待调用函数名称在业务逻辑合约中获取待调用函数;根据待调用函数,在第二上下文环境中,获取针对交易数据的历史交易数据;通过交易数据和历史交易数据执行待调用函数,得到交易执行结果。其中,在第二上下文环境中,获取针对交易数据的历史交易数据,可以是在目标代理合约的存储中,去获取针对交易数据的历史交易数据。为便于理解,假设业务逻辑合约调用交易是对象1想向对象2转账100个token时生成的,其中,一个token可以表示区块链中的一个数字资产,则其包含的交易数据可以为100,待调用函数名称可以为“转账”,“转账”对应的待调用函数为业务逻辑合约中的转账函数,此时区块链节点通过管理合约切换调用目标代理合约后,可以通过目标代理合约委托调用业务逻辑合约,然后获取到转账函数,假设对象1在目标代理合约中的资产数量为500,则区块链节点根据转账函数获取对象1的资产数量,就为500,然后区块链节点执行转账函数,对象1的资产数量就变为了500-100=400,然后区块链节点会在目标代理合约中去更新对象1的资产数量。简言之,目标代理合约委托调用业务逻辑合约时,交易的执行逻辑是通过业务逻辑合约中的函数确定的,但是交易执行时需要的历史交易数据都是从目标代理合约的存储中获取的,交易执行完后数据的更新修改也是在目标代理合约的存储中进行的。
通过本申请实施例提供的方法,当第一对象需要应用业务逻辑合约提供的相关功能时,可以通过代理合约来调用业务逻辑合约并且存储相关的交易执行结果,因此第一对象不需要事先在区块链上部署功能越复杂代码量越多的业务逻辑合约,只用事先在区块链上部署与代码量很少的代理合约即可,需要部署的代码量减少,可以间接减少合约部署期间的消耗费用。此外,区块链系统中不再需要存储和维护多个代码量复杂且多的业务逻辑合约了,只需要存储一个代码量复杂且多的业务逻辑合约,并维护多个代码量少的代理合约,可以减少区块链系统资源的浪费。
进一步地,请参见图4,图4是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。其中,该方法可以由区块链节点(例如,上述图1所对应实施例中的区块链节点集群1000中的任一区块链节点)执行。以下将以本方法由区块链节点执行为例进行说明,其中,该基于区块链的数据处理方法至少可以包括以下步骤S201-208:
步骤S201,部署业务逻辑合约。
具体的,请再参见上述图3b所示的合约关系结构示意图,多个代理合约关联同一个业务逻辑合约,是指这多个代理合约复用同一个业务逻辑合约,不过该业务逻辑合约必须是区块链网络中已经部署的智能合约。因此,在构建如图3b所示的合约关系时,需要先在区块链网络中部署业务逻辑合约。
具体的,部署业务逻辑合约的一个可行实施过程,可以为:区块链节点可以接收与管理对象相关联的业务逻辑合约部署交易,该业务逻辑合约部署交易中包含业务逻辑合约代码。若业务逻辑合约部署交易共识通过,则通过执行业务逻辑合约代码,部署业务逻辑合约;若业务逻辑合约部署成功,则将业务逻辑合约对应的业务逻辑合约地址发送给管理对象。其中,与管理对象相关联的业务逻辑合约部署交易是指业务服务器接收到管理对象发起业务逻辑合约部署请求,采用管理对象相关联的私钥进行签名后生成的交易。其中,业务逻辑合约部署交易中会携带业务逻辑合约的业务逻辑代码。
步骤S202,部署与所述业务逻辑合约相关联的管理合约。
具体的,针对已经部署的业务逻辑合约,为了便于管理之后区块链网络中部署的多个与业务逻辑合约的代理合约,在区块链网络中部署与其相关联的代理合约之前,可以先部署一个仅与该业务逻辑合约相关联的管理合约。该管理合约中可以包含有业务逻辑合约地址和代理合约对应的业务代码,其中,业务逻辑合约地址用于区块链节点获取业务逻辑合约;代理合约对应的业务代码则用于区块链节点在区块链网络中部署一个新的代理合约。也就是说,当有目标对象想要部署新的代理合约时,区块链节点可以通过管理合约中存储的代理合约对应的业务代码去为该目标对象部署对应的代理合约。此外,区块链节点还可以在管理合约中将目标对象的对象链上地址与其对应的代理合约的代理合约地址关联写入管理合约中,之后,当区块链节点接收到目标对象想要调用业务逻辑合约的业务逻辑合约调用交易时,就可以通过管理合约去获取目标对象对应的代理合约了,然后通过目标对象对应的代理合约去委托调用业务逻辑合约,并将业务逻辑合约调用交易对应的交易执行结果写入目标对象对应的代理合约中进行存储。
具体的,部署与业务逻辑合约相关联的管理合约的一个可行实施过程,可以为:区块链节点可以接收与管理对象相关联的管理合约部署交易,该管理合约部署交易中可以包含管理合约代码、代理合约部署代码以及业务逻辑合约地址。若管理合约部署交易共识通过,则通过执行管理合约代码,创建初始管理合约,然后将代理合约部署代码和业务逻辑合约地址写入初始管理合约中,得到管理合约。其中,代理合约部署代码即上述代理合约对应的业务代码。
具体的,部署与业务逻辑合约相关联的管理合约的一个可行实施过程,可以为:区块链节点可以接收与管理对象相关联的管理合约直接部署交易,该管理合约直接部署交易中可以包含管理合约直接部署代码;其中,管理合约直接部署代码中可以包含有代理合约部署代码以及业务逻辑合约地址;若管理合约部署交易共识通过,则通过执行管理合约直接部署代码,部署管理合约。也就是说,管理对象可以将代理合约部署代码以及业务逻辑合约地址硬编码到管理合约代码中,得到管理合约直接部署代码,这样区块链节点通过执行管理合约直接部署代码得到的管理合约中,就包含有代理合约部署代码和业务逻辑合约地址了。
可选的,区块链节点可以将管理合约对应的管理合约地址发送至业务服务器,业务服务器会存储该管理合约地址,之后,业务服务器在接收到与第一对象相关联的针对业务逻辑合约的代理合约部署请求时,就可以生成携带管理合约地址的代理合约部署交易;该代理合约部署交易用于为第一对象部署目标代理合约。
可选的,区块链节点在接收到与管理对象相关联的管理合约部署交易时,可以先获取管理对象对应的管理对象链上地址;若确定管理对象链上地址不具备管理合约部署权限,则向管理对象发送权限错误提示信息;若确定管理对象链上地址具备管理合约部署权限,则向共识网络发起针对管理合约部署交易的共识请求,以使共识网络对管理合约部署交易进行共识处理,得到共识结果;若共识结果为共识通过结果,则确定管理合约部署交易共识通过。
步骤S203,通过管理合约部署与第一对象相关联的目标代理合约;所述目标代理合约与所述业务逻辑合约相关联。
具体的,区块链节点可以接收与第一对象相关联的代理合约部署交易;该代理合约部署交易中包含管理合约地址;若代理合约部署交易共识通过,则获取管理合约地址所指示的管理合约;通过管理合约部署与业务逻辑合约相关联的目标代理合约;将目标代理合约对应的代理合约地址与第一对象对应的第一对象链上地址,关联写入管理合约中。
具体的,管理合约包括代理合约部署代码和业务逻辑合约对应的业务逻辑合约地址;因此,通过管理合约部署与业务逻辑合约相关联的目标代理合约的一个可行实施过程,可以为:通过执行代理合约部署代码,创建初始代理合约;将业务逻辑合约地址写入初始代理合约,得到与业务逻辑合约相关联的目标代理合约。
步骤S204,接收与第一对象相关联的业务逻辑合约调用交易。
步骤S205,若所述业务逻辑合约调用交易共识通过,则获取管理合约;所述管理合约中存储有一个或多个代理合约地址;每个代理合约地址分别与不同的对象链上地址相关联;每个代理合约地址对应的代理合约均与业务逻辑合约相关联。
步骤S206,通过所述管理合约在所述一个或多个代理合约地址中,获取与所述第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址。
步骤S207,获取所述目标代理合约地址对应的目标代理合约,通过所述目标代理合约获取所述业务逻辑合约。
步骤S208,通过所述业务逻辑合约执行所述业务逻辑合约调用交易,得到交易执行结果,将所述交易执行结果写入所述目标代理合约;所述目标代理合约中的所述交易执行结果与所述第一对象相关联。
具体的,步骤S204-步骤S208的实现过程,可以参见上述图3a所对应实施例中步骤S101-步骤S105的实现过程,这里不再进行赘述。
采用本申请实施例提供的方法,通过部署最小化的代理合约来达到避免部署业务逻辑合约的目的,减少gas的花费,实现最小化合约部署。
进一步地,为便于理解,请一并参见图5,图5是本申请实施例提供的一种合约部署与调用的流程示意图。如图5所示,整个流程涉及到终端设备51、区块链小程序52、管理合约53、代理合约54以及业务逻辑合约55。其中,终端设备51可以是上述图1所示的终端设备集群10中的任一终端设备,例如,终端设备51可以为终端设备10a。其中,区块链小程序52可以是小程序、原生App(Application,应用程序)或者H5(Hyper Text Markup Language 5,超文本标记语言5)页面,部署架构上可以采用C/S(Client/Server,客户端/服务器模式)或B/S(Browser/Server,浏览器/服务器模式)模式,例如,区块链小程序52可以部署在终端设备51中,其对应的服务器可以部署在业务服务器中(即上述图1所示的业务服务器集群100中的任一业务服务器,例如,业务服务器100a)。其中,管理合约53、代理合约54以及业务逻辑合约55均可以是部署在区块链网络中的智能合约,即区块链网络中的任一区块链节点(可以为上述图1所示的区块链网络1000中的任一区块链节点,例如,区块链节点1000a)中可以部署有管理合约53、代理合约54以及业务逻辑合约55,区块链小程序52与管理合约53、代理合约54以及业务逻辑合约55之间的数据交互,可以通过区块链小程序52对应的业务服务器与部署有管理合约53、代理合约54以及业务逻辑合约55的区块链节点进行通信实现。
如图5所示,整个合约部署与调用的流程包括以下步骤:
步骤S301,终端设备51响应业务逻辑合约部署操作,调用区块链小程序52。
具体的,终端设备51可以响应第一对象的业务逻辑合约部署操作。其中,第一对象是指当前通过终端设备51登录区块链小程序52的对象。
步骤S302,区块链小程序52请求区块链节点部署业务逻辑合约55。
具体的,区块链小程序52可以通过第一对象的私钥对业务逻辑合约部署请求进行签名,得到业务逻辑合约部署交易,然后将该业务逻辑合约部署交易发送给区块链节点,请求区块链节点在区块链网络中部署业务逻辑合约55。其中,业务逻辑合约部署请求中包含业务逻辑合约对应的业务代码。可选的,为了避免所有对象均申请在区块链网络中部署业务逻辑合约而造成的资源浪费,区块链小程序52在生成业务逻辑合约部署交易之前,可以先对第一对象的对象权限进行验证,若第一对象具有管理员权限,则生成业务逻辑合约部署交易;若第一对象不具有管理员权限,则驳回业务逻辑合约部署请求。
步骤S303,区块链节点部署完业务逻辑合约55后,向区块链小程序52返回业务逻辑合约部署结果和业务逻辑合约地址。
具体的,部署业务逻辑合约55的过程可以参见上述图4所对应实施例中步骤S201的实现过程,这里不再进行赘述。
步骤S304,终端设备51响应管理合约部署操作,调用区块链小程序52。
具体的,终端设备51可以响应第一对象的管理合约部署操作。
步骤S305,区块链小程序52请求区块链节点部署管理合约53。
具体的,区块链小程序52可以通过第一对象的私钥对管理合约部署请求进行签名,得到管理合约部署交易,然后将该管理合约部署交易发送给区块链节点,请求区块链节点在区块链网络中部署管理合约53。其中,管理合约部署请求中包含有管理合约对应的业务代码。其中,管理合约对应的业务代码中可以包含有业务逻辑合约地址和代理合约对应的业务代码。可选的,为了避免所有对象均申请在区块链网络中部署管理合约而造成的资源浪费,区块链小程序52在生成管理合约部署交易之前,可以先对第一对象的对象权限进行验证,若第一对象具有管理员权限,则生成管理合约部署交易;若第一对象不具有管理员权限,则驳回管理合约部署请求。
步骤S306,区块链节点部署完管理合约53后,向区块链小程序52返回管理合约部署结果和管理合约地址。
具体的,管理合约53的部署过程可以参见上述图4所对应实施例中步骤S202的描述,这里不再进行赘述。
步骤S307,终端设备51响应代理合约部署操作,调用区块链小程序52。
具体的,终端设备51可以响应第一对象的代理合约部署操作。
步骤S308,区块链小程序52请求区块链节点部署代理合约54。
具体的,区块链小程序52可以通过第一对象的私钥对代理合约部署请求进行签名,得到代理合约部署交易。其中,代理合约部署请求中包含有管理合约地址。可以理解的是,代理合约的部署通常针对所有具备登录区块链小程序52权限的普通对象,区块链小程序52只需验证第一对象是否具备登录权限即可,不用额外增加其他权限的验证。此外,因为管理合约53中已经包含有代理合约对应的业务代码,因此代理合约部署请求中只需要携带管理合约地址即可。然后区块链小程序52可以将该代理合约部署交易发送给区块链节点,请求区块链节点通过管理合约53在区块链网络中部署代理合约54。
步骤S309,区块链节点通过管理合约53部署代理合约54。
步骤S310,区块链节点部署完代理合约54后,获取代理合约地址。
步骤S311,区块链节点将代理合约地址和第一对象地址关联写入管理合约53中。
具体的,步骤S309-步骤S311的实现过程,可以参见上述图4所对应实施例中步骤S203的实现过程,这里不再进行赘述。
步骤S312,区块链节点向区块链小程序52返回代理合约部署结果。
步骤S313,终端设备51响应业务逻辑合约调用操作,通过区块链小程序52发起业务逻辑合约调用请求。
步骤S314,区块链小程序52根据业务逻辑合约调用请求向区块链节点请求调用管理合约53。
步骤S315,区块链节点通过管理合约53切换调用代理合约54。
步骤S316,区块链节点通过代理合约54委托调用业务逻辑合约55。
步骤S317,区块链节点执行业务逻辑合约55,根据合约执行结果修改代理合约54的存储空间。
步骤S318,区块链节点将合约执行结果返回给管理合约53。
步骤S319,区块链节点通过管理合约53将合约执行结果返回给区块链小程序52。
具体的,步骤S313-步骤S319的实现过程,可以参见上述图3a所对应实施例中步骤S101-S105的描述,这里不再进行赘述。
可以理解,其他终端设备或者其他对象也均可以通过区块链小程序52向区块链节点发起部署代理合约以及调用业务逻辑合约等请求。
采用本申请实施例提供的方法,不同对象可以通过调用管理合约,完成代理合约的部署,多个代理合约复用同一个业务逻辑合约,避免大文件的业务逻辑合约的链上部署,减少gas的花费。
请参见图6,图6是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。该数据处理装置可以是运行于计算机设备的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图6所示,该数据处理装置1可以包括:第一接收模块101、第一获取模块102、第二获取模块103、第三获取模块104以及执行模块105。
第一接收模块101,接收与第一对象相关联的业务逻辑合约调用交易;
第一获取模块102,用于若业务逻辑合约调用交易共识通过,则获取管理合约;管理合约中存储有一个或多个代理合约地址;每个代理合约地址分别与不同的对象链上地址相关联;每个代理合约地址对应的代理合约均与业务逻辑合约相关联;
第二获取模块103,用于通过管理合约在一个或多个代理合约地址中,获取与第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;
第三获取模块104,用于获取目标代理合约地址对应的目标代理合约,通过目标代理合约获取业务逻辑合约;
执行模块105,用于通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果,将交易执行结果写入目标代理合约;目标代理合约中的交易执行结果与第一对象相关联。
其中,第一接收模块101、第一获取模块102、第二获取模块103、第三获取模块104以及执行模块105的具体实现方式可以参见上述图3a所对应实施例中对步骤S101-步骤S105的描述,这里不再进行赘述。
其中,第三获取模块104,包括:第一调用单元1041以及第二调用单元1042。
第一调用单元1041,用于在第一上下文环境下,在通过管理合约切换调用目标代理合约地址对应的目标代理合约的过程中,将第一上下文环境切换为第二上下文环境;第一上下文环境为管理合约对应的上下文环境;第二上下文环境为目标代理合约对应的上下文环境;
第二调用单元1042,用于在第二上下文环境下,通过目标代理合约委托调用业务逻辑合约;第二上下文环境在委托调用业务逻辑合约的过程中不发生变化。
其中,第一调用单元1041以及第二调用单元1042的具体实现方式可以参见上述图3a所对应实施例中对步骤S104的描述,这里不再进行赘述。
其中,执行模块105,包括:执行单元1051以及第一写入单元1052。
执行单元1051,用于在第二上下文环境下,通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果;
第一写入单元1052,用于将交易执行结果写入目标代理合约对应的第二上下文环境中。
其中,执行单元1051以及第一写入单元1052的具体实现方式可以参见上述图3a所对应实施例中对步骤S105的描述,这里不再进行赘述。
其中,业务逻辑合约调用交易包括交易数据和待调用函数名称;待调用函数名称用于表征在业务逻辑合约中所需调用的用于执行交易数据的待调用函数的名称;
执行单元1051,包括:函数确定子单元10511、数据获取子单元10512以及执行子单元10513。
函数确定子单元10511,用于根据待调用函数名称在业务逻辑合约中获取待调用函数;
数据获取子单元10512,用于根据待调用函数,在第二上下文环境中,获取针对交易数据的历史交易数据;
执行子单元10513,用于通过交易数据和历史交易数据执行待调用函数,得到交易执行结果。
其中,函数确定子单元10511、数据获取子单元10512以及执行子单元10513的具体实现方式可以参见上述图3a所对应实施例中对步骤S105的描述,这里不再进行赘述。
其中,上述数据处理装置1,还包括:第二接收模块106、第四获取模块107、第一部署模块108以及第一写入模块109。
第二接收模块106,用于接收与第一对象相关联的代理合约部署交易;代理合约部署交易中包含管理合约地址;
第四获取模块107,用于若代理合约部署交易共识通过,则获取管理合约地址所指示的管理合约;
第一部署模块108,用于通过管理合约部署与业务逻辑合约相关联的目标代理合约;
第一写入模块109,用于将目标代理合约对应的代理合约地址与第一对象对应的第一对象链上地址,关联写入管理合约中。
其中,第二接收模块106、第四获取模块107、第一部署模块108以及第一写入模块109的具体实现方式可以参见上述图4所对应实施例中对步骤S203的描述,这里不再进行赘述。
其中,管理合约包括代理合约部署代码和业务逻辑合约对应的业务逻辑合约地址;
第一部署模块108,包括:创建单元1081以及第二写入单元1082。
创建单元1081,用于通过执行代理合约部署代码,创建初始代理合约;
第二写入单元1082,用于将业务逻辑合约地址写入初始代理合约,得到与业务逻辑合约相关联的目标代理合约。
其中,创建单元1081以及第二写入单元1082的具体实现方式可以参见上述图4所对应实施例中对步骤S203的描述,这里不再进行赘述。
其中,上述数据处理装置1,还包括:第三接收模块110、创建模块111以及第二写入模块112。
第三接收模块110,用于接收与管理对象相关联的管理合约部署交易;管理合约部署交易中包含管理合约代码、代理合约部署代码以及业务逻辑合约地址;
创建模块111,用于若管理合约部署交易共识通过,则通过执行管理合约代码,创建初始管理合约;
第二写入模块112,用于将代理合约部署代码和业务逻辑合约地址写入初始管理合约中,得到管理合约。
其中,第三接收模块110、创建模块111以及第二写入模块112的具体实现方式可以参见上述图4所对应实施例中对步骤S202的描述,这里不再进行赘述。
其中,上述数据处理装置1,还包括:第一发送模块113。
第一发送模块113,用于将管理合约对应的管理合约地址发送至业务服务器,以使业务服务器在接收到与第一对象相关联的针对业务逻辑合约的代理合约部署请求时,生成携带管理合约地址的代理合约部署交易;代理合约部署交易用于为第一对象部署目标代理合约。
其中,第一发送模块113的具体实现方式可以参见上述图4所对应实施例中对步骤S202的可选描述,这里不再进行赘述。
其中,上述数据处理装置1,还包括:第四接收模块114、第二部署模块115以及第二发送模块116。
第四接收模块114,用于接收与管理对象相关联的业务逻辑合约部署交易;业务逻辑合约部署交易中包含业务逻辑合约代码;
第二部署模块115,用于若业务逻辑合约部署交易共识通过,则通过执行业务逻辑合约代码,部署业务逻辑合约;
第二发送模块116,用于若业务逻辑合约部署成功,则将业务逻辑合约对应的业务逻辑合约地址发送给管理对象。
其中,第四接收模块114、第二部署模块115以及第二发送模块116的具体实现方式可以参见上述4所对应实施例中对步骤S201的描述,这里不再进行赘述。
其中,上述数据处理装置1,还包括:权限确定模块117以及共识模块118。
权限确定模块117,用于获取管理对象对应的管理对象链上地址;
权限确定模块117,还用于若确定管理对象链上地址不具备管理合约部署权限,则向管理对象发送权限错误提示信息;
共识模块118,用于若确定管理对象链上地址具备管理合约部署权限,则向共识网络发起针对管理合约部署交易的共识请求,以使共识网络对管理合约部署交易进行共识处理,得到共识结果;
共识模块118,还用于若共识结果为共识通过结果,则确定管理合约部署交易共识通过。
其中,权限确定模块117以及共识模块118。的具体实现方式可以参见上述图4所对应实施例中对步骤S202的可选描述,这里不再进行赘述。
其中,上述数据处理装置1,还包括:查找模块119。
查找模块119,用于基于第一对象对应的第一对象链上地址对管理合约中一个或多个代理合约地址进行查找处理;
查找模块119,还用于若在一个或多个代理合约地址中,查找到与第一对象对应的第一对象链上地址相关联的代理合约地址,则调用第二获取模块;
查找模块119,还用于若在一个或多个代理合约地址中,未查找到与第一对象对应的第一对象链上地址相关联的代理合约地址,则向第一对象发送代理合约注册引导信息。
其中,查找模块119的具体实现方式可以参见上述图3a所对应实施例中对步骤S103的可选描述,这里不再进行赘述。
请参见图7,图7是本申请实施例提供的一种计算机设备的结构示意图。如图7所示,上述图7所对应实施例中的数据处理装置1可以应用于计算机设备1000,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图7所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图7所示的计算机设备1000中,网络接口1004可提供网络通讯网元;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
接收与第一对象相关联的业务逻辑合约调用交易;
若业务逻辑合约调用交易共识通过,则获取管理合约;管理合约中存储有一个或多个代理合约地址;每个代理合约地址分别与不同的对象链上地址相关联;每个代理合约地址对应的代理合约均与业务逻辑合约相关联;
通过管理合约在一个或多个代理合约地址中,获取与第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;
获取目标代理合约地址对应的目标代理合约,通过目标代理合约获取业务逻辑合约;
通过业务逻辑合约执行业务逻辑合约调用交易,得到交易执行结果,将交易执行结果写入目标代理合约;目标代理合约中的交易执行结果与第一对象相关联。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3a、图4任一个所对应实施例中对该数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图3a、图4任一个所对应实施例中对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图3a、图4任一个所对应实施例提供的方法。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照网元一般性地描述了各示例的组成及步骤。这些网元究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的网元,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种基于区块链的数据处理方法,其特征在于,包括:
接收与第一对象相关联的业务逻辑合约调用交易;
若所述业务逻辑合约调用交易共识通过,则获取管理合约;所述管理合约中存储有一个或多个代理合约地址;每个代理合约地址分别与不同的对象链上地址相关联;每个代理合约地址对应的代理合约均与业务逻辑合约相关联;
通过所述管理合约在所述一个或多个代理合约地址中,获取与所述第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;
获取所述目标代理合约地址对应的目标代理合约,通过所述目标代理合约获取所述业务逻辑合约;
通过所述业务逻辑合约执行所述业务逻辑合约调用交易,得到交易执行结果,将所述交易执行结果写入所述目标代理合约;所述目标代理合约中的所述交易执行结果与所述第一对象相关联。
2.根据权利要求1所述的方法,其特征在于,所述获取所述目标代理合约地址对应的目标代理合约,通过所述目标代理合约调用所述业务逻辑合约,包括:
在第一上下文环境下,在通过管理合约切换调用所述目标代理合约地址对应的目标代理合约的过程中,将第一上下文环境切换为第二上下文环境;所述第一上下文环境为所述管理合约对应的上下文环境;所述第二上下文环境为所述目标代理合约对应的上下文环境;
在所述第二上下文环境下,通过所述目标代理合约委托调用业务逻辑合约;所述第二上下文环境在委托调用所述业务逻辑合约的过程中不发生变化。
3.根据权利要求2所述的方法,其特征在于,所述通过所述业务逻辑合约执行所述业务逻辑合约调用交易,得到交易执行结果,将所述交易执行结果写入所述目标代理合约,包括:
在所述第二上下文环境下,通过所述业务逻辑合约执行所述业务逻辑合约调用交易,得到交易执行结果;
将所述交易执行结果写入所述目标代理合约对应的所述第二上下文环境中。
4.根据权利要求3所述的方法,其特征在于,所述业务逻辑合约调用交易包括交易数据和待调用函数名称;所述待调用函数名称用于表征在所述业务逻辑合约中所需调用的用于执行所述交易数据的待调用函数的名称;
所述在所述第二上下文环境下,通过所述业务逻辑合约执行所述业务逻辑合约调用交易,得到交易执行结果,包括:
根据所述待调用函数名称在所述业务逻辑合约中获取待调用函数;
根据所述待调用函数,在所述第二上下文环境中,获取针对所述交易数据的历史交易数据;
通过所述交易数据和所述历史交易数据执行所述待调用函数,得到交易执行结果。
5.根据权利要求1所述的方法,其特征在于,还包括:
接收与第一对象相关联的代理合约部署交易;所述代理合约部署交易中包含管理合约地址;
若所述代理合约部署交易共识通过,则获取所述管理合约地址所指示的管理合约;
通过所述管理合约部署与业务逻辑合约相关联的目标代理合约;
将所述目标代理合约对应的代理合约地址与所述第一对象对应的第一对象链上地址,关联写入所述管理合约中。
6.根据权利要求5所述的方法,其特征在于,所述管理合约包括代理合约部署代码和业务逻辑合约对应的业务逻辑合约地址;
所述通过所述管理合约部署与业务逻辑合约相关联的目标代理合约,包括:
通过执行所述代理合约部署代码,创建初始代理合约;
将所述业务逻辑合约地址写入所述初始代理合约,得到与所述业务逻辑合约相关联的目标代理合约。
7.根据权利要求1所述的方法,其特征在于,还包括:
接收与管理对象相关联的管理合约部署交易;所述管理合约部署交易中包含管理合约代码、代理合约部署代码以及业务逻辑合约地址;
若所述管理合约部署交易共识通过,则通过执行所述管理合约代码,创建初始管理合约;
将所述代理合约部署代码和所述业务逻辑合约地址写入所述初始管理合约中,得到管理合约。
8.根据权利要求7所述的方法,其特征在于,还包括:
将所述管理合约对应的管理合约地址发送至业务服务器,以使所述业务服务器在接收到与第一对象相关联的针对业务逻辑合约的代理合约部署请求时,生成携带所述管理合约地址的代理合约部署交易;所述代理合约部署交易用于为所述第一对象部署所述目标代理合约。
9.根据权利要求7所述的方法,其特征在于,还包括:
接收与管理对象相关联的业务逻辑合约部署交易;所述业务逻辑合约部署交易中包含业务逻辑合约代码;
若所述业务逻辑合约部署交易共识通过,则通过执行所述业务逻辑合约代码,部署业务逻辑合约;
若所述业务逻辑合约部署成功,则将所述业务逻辑合约对应的业务逻辑合约地址发送给所述管理对象。
10.根据权利要求7所述的方法,其特征在于,还包括:
获取所述管理对象对应的管理对象链上地址;
若确定所述管理对象链上地址不具备管理合约部署权限,则向所述管理对象发送权限错误提示信息;
若确定所述管理对象链上地址具备管理合约部署权限,则向共识网络发起针对所述管理合约部署交易的共识请求,以使所述共识网络对所述管理合约部署交易进行共识处理,得到共识结果;
若所述共识结果为共识通过结果,则确定所述管理合约部署交易共识通过。
11.根据权利要求1所述的方法,其特征在于,还包括:
基于所述第一对象对应的第一对象链上地址对所述管理合约中所述一个或多个代理合约地址进行查找处理;
若在所述一个或多个代理合约地址中,查找到与所述第一对象对应的第一对象链上地址相关联的代理合约地址,则执行通过所述管理合约在所述一个或多个代理合约地址中,获取与所述第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址的步骤;
若在所述一个或多个代理合约地址中,未查找到与所述第一对象对应的第一对象链上地址相关联的代理合约地址,则向所述第一对象发送代理合约注册引导信息。
12.一种基于区块链的数据处理装置,其特征在于,包括:
第一接收模块,接收与第一对象相关联的业务逻辑合约调用交易;
第一获取模块,用于若所述业务逻辑合约调用交易共识通过,则获取管理合约;所述管理合约中存储有一个或多个代理合约地址;每个代理合约地址分别与不同的对象链上地址相关联;每个代理合约地址对应的代理合约均与业务逻辑合约相关联;
第二获取模块,用于通过所述管理合约在所述一个或多个代理合约地址中,获取与所述第一对象对应的第一对象链上地址相关联的代理合约地址,作为目标代理合约地址;
第三获取模块,用于获取所述目标代理合约地址对应的目标代理合约,通过所述目标代理合约获取所述业务逻辑合约;
执行模块,用于通过所述业务逻辑合约执行所述业务逻辑合约调用交易,得到交易执行结果,将所述交易执行结果写入所述目标代理合约;所述目标代理合约中的所述交易执行结果与所述第一对象相关联。
13.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行权利要求1-11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行权利要求1-11任一项所述的方法。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时,可以执行权利要求1-11任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211426861.7A CN116975145A (zh) | 2022-11-15 | 2022-11-15 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
PCT/CN2023/123353 WO2024103998A1 (zh) | 2022-11-15 | 2023-10-08 | 基于区块链的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211426861.7A CN116975145A (zh) | 2022-11-15 | 2022-11-15 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116975145A true CN116975145A (zh) | 2023-10-31 |
Family
ID=88480304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211426861.7A Pending CN116975145A (zh) | 2022-11-15 | 2022-11-15 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116975145A (zh) |
WO (1) | WO2024103998A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11323530B2 (en) * | 2018-06-06 | 2022-05-03 | International Business Machines Corporation | Proxy agents and proxy ledgers on a blockchain |
CN110347750B (zh) * | 2019-06-28 | 2023-06-13 | 创新先进技术有限公司 | 基于区块链的数据处理方法和装置 |
CN110933163B (zh) * | 2019-11-27 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 区块链合约部署方法、装置、设备以及存储介质 |
CN112686671B (zh) * | 2021-01-07 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 基于区块链的智能合约部署方法、装置、设备以及介质 |
-
2022
- 2022-11-15 CN CN202211426861.7A patent/CN116975145A/zh active Pending
-
2023
- 2023-10-08 WO PCT/CN2023/123353 patent/WO2024103998A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024103998A1 (zh) | 2024-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110390525B (zh) | 区块链世界状态的直接访问方法及区块链节点 | |
CN112287034B (zh) | 一种数据同步方法、设备以及计算机可读存储介质 | |
CN111314172B (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN112287033B (zh) | 一种数据同步方法、设备以及计算机可读存储介质 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN111324661A (zh) | 基于区块链的用户合作方法、设备及介质 | |
CN104348895A (zh) | 移动终端中程序间共享数据的方法及装置 | |
CN112714158A (zh) | 事务处理方法、中继网络、跨链网关、系统、介质和设备 | |
WO2023011019A1 (zh) | 基于区块链的数据处理方法、装置、设备、可读存储介质及计算机程序产品 | |
CN113190287A (zh) | 外部设备对接方法、装置、计算机设备及可读存储介质 | |
CN111327680B (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
CN111311341A (zh) | 票据处理方法、设备及介质 | |
CN113792346A (zh) | 一种可信数据处理方法、装置及设备 | |
CN116975145A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN110781523B (zh) | 用于处理信息的方法和装置 | |
CN117540356B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN116862679B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN117176737A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN116804949B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
JP7454154B1 (ja) | サービス同一性検査装置および方法 | |
CN117971960A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
US20230325833A1 (en) | Blockchain-based data processing method and apparatus, device, storage medium, and program product | |
WO2024037117A1 (zh) | 一种基于区块链的数据处理方法、设备、介质和程序产品 | |
CN118074931A (zh) | 一种基于区块链的数据处理方法以及相关设备 | |
CN116561107A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |