一种数据同步方法、设备以及计算机可读存储介质转让专利
申请号 : CN202110268813.9
文献号 : CN112883117B
文献日 : 2022-03-15
发明人 : 李茂材 , 王宗友 , 时一防 , 蓝虎
申请人 : 腾讯科技(深圳)有限公司
摘要 :
权利要求 :
1.一种数据同步方法,其特征在于,包括:获取轻节点发送的数据同步请求;所述数据同步请求包括所述轻节点所请求的同步区块的区块标识;
根据所述区块标识获取所述同步区块中的同步交易数据,从全量数据库中获取与所述同步交易数据相关联的目标数据集合;所述同步交易数据包括交易详情数据;所述目标数据集合包括携带读标记的第一数据集合,以及携带写标记的第二数据集合;所述读标记用于表征所述第一数据集合与所述交易详情数据对应的读取数据相同,所述写标记用于表征所述第二数据集合与所述交易详情数据对应的结果数据相同;
根据所述数据同步请求从所述目标数据集合中确定同步数据集合;
从所述同步区块中获取所述同步交易数据对应的验证数据,将所述同步交易数据、所述验证数据以及所述同步数据集合返回至所述轻节点,以使所述轻节点根据所述验证数据以及所述同步数据集合,验证所述同步交易数据以及所述交易详情数据对应的待验证结果数据的合法性。
2.根据权利要求1所述的方法,其特征在于,所述数据同步请求包括所述轻节点的节点标识;所述同步交易数据包括交易详情数据以及用于执行所述交易详情数据的智能合约的合约信息;
所述根据所述数据同步请求从所述目标数据集合中确定同步数据集合,包括:根据所述合约信息以及所述数据同步请求,确定针对所述交易详情数据的目标同步读交易执行函数;
根据所述交易详情数据、所述节点标识以及所述目标同步读交易执行函数,从所述目标数据集合中确定所述同步数据集合。
3.根据权利要求2所述的方法,其特征在于,所述根据所述合约信息以及所述数据同步请求,确定针对所述交易详情数据的目标同步读交易执行函数,包括:获取所述合约信息中的合约名称以及交易执行函数名称;其中,所述合约名称用于表征执行所述交易详情数据的所述智能合约的名称,所述交易执行函数名称用于表征所述智能合约所调用的用于执行所述交易详情数据的交易执行函数的名称;
根据所述数据同步请求获取同步读名称,根据所述交易执行函数名称以及所述同步读名称,确定同步读交易执行函数名称;
在所述同步读交易执行函数名称所对应的智能合约中确定目标同步读交易执行函数。
4.根据权利要求2所述的方法,其特征在于,所述根据所述交易详情数据、所述节点标识以及所述目标同步读交易执行函数,从所述目标数据集合中确定同步数据集合,包括:根据所述节点标识以及所述目标同步读交易执行函数,确定所述轻节点针对所述同步交易数据的同步权限;所述同步权限包括同步合法权限以及同步非法权限;
若所述轻节点针对所述同步交易数据的同步权限为所述同步非法权限,则返回数据同步失败信息至所述轻节点;
若所述轻节点针对所述同步交易数据的同步权限为所述同步合法权限,则根据所述交易详情数据、所述节点标识以及所述目标同步读交易执行函数,从所述目标数据集合中确定所述同步数据集合。
5.根据权利要求4所述的方法,其特征在于,所述根据所述交易详情数据、所述节点标识以及所述目标同步读交易执行函数,从所述目标数据集合中确定所述同步数据集合,包括:
根据所述交易详情数据、所述节点标识以及所述目标同步读交易执行函数,确定所述轻节点已储存的与所述交易详情数据相关联的已有数据集合;
从所述目标数据集合中过滤所述已有数据集合,将过滤后的目标数据集合确定为所述同步数据集合。
6.根据权利要求5所述的方法,其特征在于,所述将过滤后的目标数据集合确定为所述同步数据集合,包括:
根据所述节点标识以及所述目标同步读交易执行函数,确定所述轻节点针对所述交易详情数据的额外数据集合;所述目标数据集合不包括所述额外数据集合;
将所述额外数据集合以及所述过滤后的目标数据集合进行合并处理,得到所述同步数据集合。
7.根据权利要求1所述的方法,其特征在于,所述同步交易数据包括交易详情数据;所述结果数据基于交易执行结果生成;全量节点执行所述交易详情数据时生成所述交易执行结果;
所述从所述同步区块中获取所述同步交易数据对应的验证数据,包括:从所述同步区块中获取交易状态树以及结果状态树;所述交易状态树是基于所述交易详情数据所生成的交易默克尔树;所述结果状态树是基于所述结果数据所生成的结果默克尔树;
基于所述交易详情数据从所述交易状态树中获取交易验证数据,基于所述结果数据从所述结果状态树中获取结果验证数据;
将所述交易验证数据以及所述结果验证数据确定为验证数据。
8.根据权利要求7所述的方法,其特征在于,所述基于所述交易详情数据从所述交易状态树中获取交易验证数据,基于所述结果数据从所述结果状态树中获取结果验证数据,包括:
根据所述交易详情数据,在所述交易状态树中获取交易哈希值,根据所述结果数据,在所述结果状态树中获取结果哈希值;
将所述交易哈希值确定为所述交易验证数据,将所述结果哈希值确定为所述结果验证数据。
9.根据权利要求1所述的方法,其特征在于,还包括:获取待上链区块中的交易详情数据,调用用于执行所述交易详情数据的智能合约中的交易执行函数;
根据所述交易执行函数获取针对所述交易详情数据的历史交易数据,将所述历史交易数据确定为读取数据;
根据所述读取数据以及所述交易详情数据执行所述交易执行函数,得到交易详情数据的交易执行结果;
根据所述交易详情数据以及所述交易执行结果,对所述待上链区块进行上链处理。
10.根据权利要求9所述的方法,其特征在于,所述根据所述交易详情数据以及所述交易执行结果,对所述待上链区块进行上链处理,包括:当所述交易详情数据以及所述交易执行结果均共识通过时,根据所述交易执行结果生成所述结果数据;
根据所述交易详情数据生成交易状态树,根据所述结果数据生成结果状态树,将所述交易状态树以及所述结果状态树添加至所述待上链区块;
将添加有所述交易状态树以及所述结果状态树的待上链区块确定为所述同步区块,将所述同步区块添加至区块链;
根据所述读取数据以及所述结果数据生成所述目标数据集合,将所述目标数据集合存储于全量数据库中。
11.根据权利要求10所述的方法,其特征在于,所述根据所述读取数据以及所述结果数据生成所述目标数据集合,将所述目标数据集合存储于全量数据库中,包括:将读取数据以及结果数据分别与历史数据集合进行对比;历史数据集合包括全量数据库中已存储的历史交易详情数据对应的历史读取数据或历史结果数据;
若存在与读取数据相同的历史数据集合,且存在与结果数据相同的历史数据集合,则对与读取数据相同的历史数据集合进行读标记处理,将携带读标记的历史数据集合确定为第一数据集合,对与结果数据相同的历史数据集合进行写标记处理,将携带写标记的历史数据集合确定为第二数据集合;
将第一数据集合以及第二数据集合确定为目标数据集合,将目标数据集合与交易详情数据关联存储于全量数据库中;
若不存在与读取数据相同的历史数据集合,且不存在与结果数据相同的历史数据集合,则将读取数据以及结果数据确定为目标数据集合,将目标数据集合与交易详情数据关联存储于全量数据库中。
12.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1至11任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1‑11任一项所述的方法。
说明书 :
一种数据同步方法、设备以及计算机可读存储介质
全部内容通过引用结合在本申请中。
技术领域
背景技术
区块头数据和部分授权可见的区块数据。所以全量节点需要通过点对点(Peer‑to‑Peer,
P2P)网络层广播共识完毕的新区块的区块头,以使轻节点对新区块进行数据同步。
节点,然后轻节点自行保留同步区块中自身需要的数据。明显地,传输同步区块存在同步数
据量大的缺陷,该缺陷会提高轻节点的空间成本。
的合法性。
发明内容
约信息;目标数据集合包括基于合约信息在执行交易详情数据时所得到的读取数据或结果
数据;
易数据以及交易详情数据对应的待验证结果数据的合法性。
量节点根据区块标识所确定的同步区块中的数据,且包括交易详情数据以及用于执行交易
详情数据的智能合约的合约信息;同步数据集合是全量节点根据交易详情数据、轻节点的
节点标识以及目标同步读交易执行函数,从目标数据集合中所确定的集合;目标同步读交
易执行函数是全量节点根据合约信息以及数据同步请求所确定的针对交易详情数据的函
数;目标数据集合是与同步交易数据相关联,且包括全量节点基于合约信息在执行交易详
情数据时所得到的读取数据或结果数据的集合;
数据的智能合约的合约信息;目标数据集合包括基于合约信息在执行交易详情数据时所得
到的读取数据或结果数据;
据集合,验证同步交易数据以及交易详情数据对应的待验证结果数据的合法性。
据;
约所调用的用于执行交易详情数据的交易执行函数的名称;
数据集合。
克尔树;
中,同步交易数据是全量节点根据区块标识所确定的同步区块中的数据,且包括交易详情
数据以及用于执行交易详情数据的智能合约的合约信息;同步数据集合是全量节点根据交
易详情数据、轻节点的节点标识以及目标同步读交易执行函数,从目标数据集合中所确定
的集合;目标同步读交易执行函数是全量节点根据合约信息以及数据同步请求所确定的针
对交易详情数据的函数;目标数据集合是与同步交易数据相关联,且包括全量节点基于合
约信息在执行交易详情数据时所得到的读取数据或结果数据的集合;
征智能合约所调用的用于执行交易详情数据的交易执行函数的名称;
一待验证根哈希,根据第一待验证根哈希,验证同步交易数据以及待验证结果数据的合法
性;
性。
同步交易数据为合法数据;
定待验证结果数据为合法数据;
计算机设备执行本申请实施例中的方法。
备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该
计算机设备执行本申请实施例中的方法。
据,然后获取针对该同步交易数据的目标数据集合,其中,同步交易数据包括交易详情数据
以及用于执行交易详情数据的智能合约的合约信息;本申请根据合约信息以及数据同步请
求,可以确定针对交易详情数据的目标同步读交易执行函数;基于节点标识以及目标同步
读交易执行函数,可以从目标数据集合中确定同步数据集合,实现完善同步给轻节点的数
据,可以减小数据传输量,从而可以降低轻节点的空间成本;进一步地,获取验证数据,将同
步交易数据、验证数据以及同步数据集合发送给轻节点,由于同步数据集合包括基于合约
信息在执行交易详情数据时所得到的读取数据或结果数据,所以轻节点可以通过同步数据
集合准确地得到交易详情数据对应的待验证结果数据,因此,通过验证数据和同步数据集
合,轻节点可以准确验证出同步交易数据以及待验证结果数据的合法性。
附图说明
申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
具体实施方式
本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他
实施例,都属于本申请保护的范围。
求;广义上,区块链还指代区块链结构实现的分布式记账技术,包括分布式共识、隐私与安
全保护、点对点通信技术、网络协议、智能合约等。区块链的目标是实现一个分布的数据记
录账本,此账本只允许添加,不允许删除。账本底层的基本结构是一个线性的链表。链表由
一个个“区块”串联组成,后继区块中记录前继区块的哈希(Hash)值,每个区块(以及区块中
的交易)是否合法,可通过计算哈希值的方式进行快速检验。若网络中的节点提议添加一个
新的区块,必须经过共识机制对区块达成共识确认。
数据,它是一个单向的加密函数。在区块链中,每个区块(除了初始区块)都包含前继区块的
哈希值,前继区块被称为当前区块的父区块。哈希值是区块链技术中的潜力核心基础和最
重要的方面,它保留了记录和查看数据的真实性,以及区块链作为一个整体的完整性。
并得到结果。在实际应用中,智能合约通过区块链上的交易来管理与试用。每条交易相当于
对区块链系统的一个远程过程调用(Remote Procedure Call,RPC)请求。如果说智能合约
相当于可执行程序,区块链就相当于提供运行环境的操作系统。区块链可以包含多个合约,
以合约账号(Identity,ID)、标识号或名称来区分。
约)的代码,从而改变合约的执行逻辑。
己的账本。最终各节点会互相验证执行结果是否一致(共识),若执行结果一致各节点将必
要结果存入各自账本中,并返回结果给用户。
例,税务总局是全量节点,省税务局是轻节点,市税局也是轻节点。最高法院是全量节点,地
方法院是轻节点。银行是全量节点,企业是轻节点等等。只要业务具有不对等关系,系统中
便需要有全量节点与轻节点用以保护数据隐私。
件的集合,在本申请实施例中,数据块可以理解成区块,文件可以包括区块中的交易详情数
据或交易详情数据的交易执行结果,或者交易详情数据对应的结果数据。
对数据的安全性考虑,在区块链体系中涉及个人隐私或者国家安全的相关数据时,也不适
用普遍的数据对等式的区块链部署方式。因此本申请提出一种既可以保障数据的隐私性,
又可以适当公开数据的方法。
证网络10a中的节点可以称为轻节点,拥有部分数据,轻节点主要进行业务执行,不参与记
账共识,通过身份认证的方式从共识网络10b中获得区块头数据和部分授权可见的区块数
据(包括上述的同步交易数据)。共识网络10b也可以称作核心网络,共识网络10b中的节点
可以称为全量节点,全量节点拥有全量数据。见证网络10a和共识网络10b处在不同网络环
境下,通常来说,见证网络10a处于公有网络中而共识网络10b处于私有网络中,二者通过路
由边界进行交互。
时,由于应用场景的不同,可以设置一种或多种类型的见证网络,这里将不对见证网络的数
量进行限制。上述见证网络10a可以包括一个或者多个轻节点,这里将不对轻节点的数量进
行限制。
络,在实际应用时,由于应用场景的不同,可以设置一种或多种类型的共识网络,这里将不
对共识网络的数量进行限制。上述共识网络10b可以包括一个或者多个全量节点,这里将不
对全量节点的数量进行限制。
向外界发送数据。为了保证各个节点之间的数据互通,每个节点之间可以存在数据连接,例
如轻节点101a与轻节点102a之间存在数据连接,轻节点101a与轻节点103a之间存在数据连
接,全量节点101b与全量节点104b之间存在数据连接。
101b与轻节点104a之间存在数据连接。
具有与其对应的节点标识,而且上述每个节点均可以存储与自身有相连关系的其他节点的
节点标识,以便后续根据其他节点的节点标识,将获取到的数据或生成的区块广播至其他
节点,例如轻节点101a中可以维护一个如表1所示的节点标识列表,该节点标识列表保存着
其他节点的节点名称和节点标识。
轻节点102a 117.114.151.174
轻节点103a 117.116.189.145
… …
轻节点104a 119.123.789.258
全量节点101b 117.114.151.183
全量节点102b 117.116.189.125
全量节点103b 119.250.485.362
全量节点104b 119.123.789.369
117.116.156.425,可以知道该数据同步请求是轻节点101a所发送的;同理,轻节点101a可
以通过节点标识117.116.189.145,向轻节点103a发送交易数据A,且轻节点103a通过节点
标识117.116.156.425,可以知道该交易数据A是轻节点101a所发送的,其他节点之间的数
据传输亦如此,故不再一一进行赘述。
方式,本申请在此不做限制。
脑、掌上电脑、智能音响、移动互联网设备(MID,mobile internet device)、POS(Point Of
Sales,销售点)机、可穿戴设备(例如智能手表、智能手环等)等。
上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分
布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中
间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服
务器。上述终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表
等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连
接,本申请在此不做限制。
点共同执行,在本申请实施例中,以该方法由全量节点执行为例进行说明。如图2所示,该数
据同步过程可以包括如下步骤。
史交易数据确定为读取数据;根据读取数据以及交易详情数据执行交易执行函数,得到交
易详情数据的交易执行结果;根据交易详情数据以及交易执行结果,对待上链区块进行上
链处理。
状态树,根据结果数据生成结果状态树,将交易状态树以及结果状态树添加至待上链区块;
将添加有交易状态树以及结果状态树的待上链区块确定为同步区块,将同步区块添加至区
块链。
在与读取数据相同的历史数据集合,且存在与结果数据相同的历史数据集合,则对与读取
数据相同的历史数据集合进行读标记处理,将携带读标记的历史数据集合确定为第一数据
集合,对与结果数据相同的历史数据集合进行写标记处理,将携带写标记的历史数据集合
确定为第二数据集合;将第一数据集合以及第二数据集合确定为目标数据集合,将目标数
据集合与交易详情数据关联存储于全量数据库中;若不存在与读取数据相同的历史数据集
合,且不存在与结果数据相同的历史数据集合,则将读取数据以及结果数据确定为目标数
据集合,将目标数据集合与交易详情数据关联存储于全量数据库中。
量节点所生成的待共识区块,也可以是区块链网络中的轻节点所生成的待出块区块,此处
不限定待上链区块30b的由来。可以理解的是,本申请实施例仅叙述区块头中的交易根哈希
(即图3中的哈希值HY(1234))以及结果根哈希(即图3中的哈希值HG(1234)),在实际应用时,
区块头存储有版本号、时间戳和难度值等基本数据,还可以存储有其他相关数据。
通过时,对交易1、交易2、交易3、…、交易n进行交易执行结果共识,具体过程可以如下描述。
全量节点30a首先根据函数名称调用用于执行交易详情数据的智能合约30c中的交易执行
函数,如图3所示,执行交易1的函数为交易执行函数1,执行交易2的函数为交易执行函数2,
执行交易3的函数为交易执行函数3,…,执行交易n的函数为交易执行函数n。可以理解的
是,函数(包括函数名称1、函数名称2、函数名称3、…、函数名称n分别对应的函数),可以在
同一个智能合约下被调用,也可以在不同的智能合约下被调用,例如函数名称1对应的函数
(即交易执行函数1)与函数名称2对应的函数(即交易执行函数2)在智能合约B中被调用,函
数名称3对应的函数(即交易执行函数3)与函数名称n对应的函数(即交易执行函数n)在智
能合约V中被调用。
过交易执行函数2获取交易2的历史交易数据2,通过交易执行函数3获取交易3的历史交易
数据3,…,通过交易执行函数n获取交易n的历史交易数据n。例如,交易1为甲方通过自己的
账户向乙方转账10元,交易执行函数1为转移执行函数,历史交易数据1为甲方账户上剩余
20元,针对交易1的交易执行结果1可以为20‑10=10元,即执行交易1后,甲方的账户上剩余
10元。
2,根据交易3、历史交易数据3以及交易执行函数3,可以得到交易2的交易执行结果3,…,根
据交易n、历史交易数据n以及交易执行函数n,可以得到交易n的交易执行结果n。
可以得到图4中的待共识数据40c。待共识数据40c可以包括相关联的交易1、交易执行结果1
以及函数名称1,相关联的交易2、交易执行结果2以及函数名称2,相关联的交易3、交易执行
结果3以及函数名称3,相关联的交易4、交易执行结果4以及函数名称4。
易1的哈希值HY(1)、交易2的哈希值HY(2)、交易3的哈希值HY(3),以及交易4的哈希值HY(4);
然后对哈希值HY(1)以及哈希值HY(2)进行哈希运算,得到包括上述两个哈希值的哈希值HY
(12),对哈希值HY(3)以及哈希值HY(4)进行哈希运算,得到包括上述两个哈希值的哈希值HY
(34);最后对哈希值HY(12)以及哈希值HY(34)进行哈希运算,得到包括哈希值HY(12)以及哈
希值HY(34)的哈希值HY’(1234),该哈希值HY’(1234)为待共识数据40c的待验证交易根哈希。
G4)分别进行哈希计算,得到交易执行结果1的哈希值HG(1)、交易执行结果2的哈希值HG(2)、
交易执行结果3的哈希值HG(3),以及交易执行结果4的哈希值HG(4);然后对哈希值HG(1)以
及哈希值HG(2)进行哈希运算,得到包括上述两个哈希值的哈希值HG(12),对哈希值HG(3)以
及哈希值HG(4)进行哈希运算,得到包括上述两个哈希值的哈希值HG(34);最后对哈希值HG
(12)以及哈希值HG(34)进行哈希运算,得到包括哈希值HG(12)以及哈希值HG(34)的哈希值
HG’(1234),该哈希值HG’(1234)为待共识数据40c的待验证结果根哈希。
值HG’(1234)与图3中的哈希值HG(1234)进行对比,若两者相同,可以确定待共识数据40c结
果共识通过,否则结果共识失败。请再参见图3,当交易详情数据以及交易执行结果均共识
通过时,全量节点30a根据交易执行结果生成结果数据。
结果数据的范围。
括如下步骤。
流出块,算力竞争出块等。
例的节点1从存储中读取历史交易数据。
果根哈希)放入区块头中,最终校验各节点区块hash一致即可。
能合约的合约信息;目标数据集合包括基于合约信息在执行交易详情数据时所得到的读取
数据或结果数据。
据的数据容量与结果数据的数据容量进行对比;若读取数据的数据容量小于结果数据的数
据容量,则将读取数据确定为目标数据集合;若读取数据的数据容量等于或大于结果数据
的数据容量,则将结果数据确定为目标数据集合。
的同步区块607b,其中区块标识可以为同步区块607b的区块高度,也可以为同步区块607b
的区块哈希,还可以为其他可以表征同步区块607b的标识。
易3以及合约信息3,…,关联存储的交易n以及合约信息n。
执行交易执行函数。全量节点60a首先获取全量数据库60d,然后获取全量数据库60d中的历
史数据集合60g,如图6所示,历史数据集合60g可以包括读取数据1&结果数据1、读取数据2&
结果数据2、读取数据3&结果数据3、读取数据4&结果数据4、读取数据5&结果数据5、…、读取
数据n&结果数据n,其中,符号“&”表示关联存储。
图6中的交易1、交易2、交易3、…、交易n),与全量数据库60d中的交易详情数据进行匹配,根
据匹配结果,可以确定同步交易数据60c的候选数据集合60e。假设交易1的目标数据集合为
读取数据1&结果数据1;交易2的目标数据集合为读取数据2&结果数据2,交易3的目标数据
集合为读取数据3&结果数据3,…,交易n的目标数据集合为读取数据n&结果数据n。
数据对应的待验证结果数据是否合法,故全量节点60a可以对交易1的读取数据1以及结果
数据1进行数据容量对比,若结果数据1的数据容量小一些,则将结果数据1确定为交易1的
目标数据集合;同理,全量节点60a可以对交易2的读取数据2以及结果数据2进行数据容量
对比,若读取数据2的数据容量小一些,则将读取数据2确定为交易2的目标数据集合;全量
节点60a可以对交易3的读取数据3以及结果数据3进行数据容量对比,若结果数据3的数据
容量小一些,则将结果数据3确定为交易3的目标数据集合;以此类推,生成目标数据集合
60f。
集合与交易详情数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存
在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
用于执行交易详情数据的交易执行函数的名称;根据数据同步请求获取同步读名称,根据
交易执行函数名称以及同步读名称,确定同步读交易执行函数名称;根据同步读交易执行
函数名称,在智能合约中确定目标同步读交易执行函数。
以参见下文的描述,不再一一展开描述。
合约,假设转账合约的合约名称为转账;在执行交易1时,转账合约调用的交易执行函数为
转移执行函数,假设转移执行函数的函数名称(即交易执行函数名称)为转移。假设交易1的
读取数据1为账户1111剩余20元,交易1的结果数据1为账户1111剩余10元。
执行函数,即图7中示例的同步读转移执行函数。可以理解的是,在本申请实施例中,以转移
执行函数以及同步读转移执行函数在同一个智能合约(即图7中示例的转账合约)中被调用
示例,在实际应用时,交易执行函数以及同步读交易执行函数可以不在同一个智能合约中
被调用,具体调用情况可以根据实际场景进行设置。
数据的同步权限为同步非法权限,则返回数据同步失败信息至轻节点;若轻节点针对同步
交易数据的同步权限为同步合法权限,则根据交易详情数据、节点标识以及目标同步读交
易执行函数,从目标数据集合中确定同步数据集合。
联的已有数据集合;从目标数据集合中过滤已有数据集合,将过滤后的目标数据集合确定
为同步数据集合。
数,根据同步读转移执行函数以及节点标识60h,确定轻节点针对同步交易数据的同步权
限,需要理解的是,本申请实施例不对确定同步权限的方法进行限定,可以以轻节点的节点
标识确定同步权限,也可以以轻节点的节点类型确定同步权限,还可以根据其他方法,在本
申请实施例中以节点标识为例进行叙述。
60h以及同步读转账执行函数,确定轻节点已储存的与交易1相关联的已有数据集合,如图7
中示例的账户1111剩余20元;假设目标数据集合1为交易1的读取数据1,结合步骤S103可知
读取数据1为账户1111剩余20元,从目标数据集合中过滤已有数据集合,可知同步数据集合
为空集。
数据集合,根据上述可知,同步数据集合的数据容量比目标数据集合的数据容量小,故可以
减小轻节点的空间成本。
行合并,得到返回给轻节点的同步数据集合。
证同步交易数据以及交易详情数据对应的待验证结果数据的合法性。
于交易详情数据从交易状态树中获取交易验证数据,基于结果数据从结果状态树中获取结
果验证数据;将交易验证数据以及结果验证数据确定为验证数据。
态树中的交易哈希值,结果验证数据可以对应于结果状态树中的结果哈希值。请再参见图
4,下面以图4中的交易状态树、结果状态树以及交易1为例进行叙述,针对交易1,其交易验
证数据可以包括交易状态树中的哈希值HY(2)以及哈希值HY(34),其结果验证数据可以包括
结果状态树中的哈希值HG(2)以及哈希值HG(34)。
值HY(34),以及,哈希值HG(2)以及哈希值HG(34),针对交易2,其验证数据可以包括哈希值HY
(1)以及哈希值HY(34),以及,哈希值HG(1)以及哈希值HG(34);也可以包括针对所有交易详
情数据的验证数据,例如针对交易1以及交易2,验证数据可以包括哈希值HY(34)以及哈希
值HG(34)。
待验证结果数据的合法性。其中,轻节点自校验同步交易数据交易详情数据对应的待验证
结果数据的合法性的具体过程请参见下文图8所对应的实施例。
据,然后获取针对该同步交易数据的目标数据集合,其中,同步交易数据包括交易详情数据
以及用于执行交易详情数据的智能合约的合约信息;本申请根据合约信息以及数据同步请
求,可以确定针对交易详情数据的目标同步读交易执行函数;基于节点标识以及目标同步
读交易执行函数,可以从目标数据集合中确定同步数据集合,实现完善同步给轻节点的数
据,可以减小数据传输量,从而可以降低轻节点的空间成本;进一步地,获取验证数据,将同
步交易数据、验证数据以及同步数据集合发送给轻节点,由于同步数据集合包括基于合约
信息在执行交易详情数据时所得到的读取数据或结果数据,所以轻节点可以通过同步数据
集合准确地得到交易详情数据对应的待验证结果数据,因此,通过验证数据和同步数据集
合,轻节点可以准确验证出同步交易数据以及待验证结果数据的合法性。此外,轻节点可以
在仅拥有部分数据(不是整个同步区块)的情况下执行智能合约,对数据进行业务逻辑运算
并处理复杂业务。上述过程让数据不对等的各节点(包括轻节点和全量节点)均可以执行合
约,实现在数据隐私保护的同时,充分发挥智能合约的能力,进而可以确定数据的准确性。
点共同执行,在本申请实施例中,以该方法由轻节点执行为例进行说明。如图8所示,该数据
同步过程包括如下步骤:
易数据是全量节点根据区块标识所确定的同步区块中的数据,且包括交易详情数据以及用
于执行交易详情数据的智能合约的合约信息;同步数据集合是全量节点根据交易详情数
据、轻节点的节点标识以及目标同步读交易执行函数,从目标数据集合中所确定的集合;目
标同步读交易执行函数是全量节点根据合约信息以及数据同步请求所确定的针对交易详
情数据的函数;目标数据集合是与同步交易数据相关联,且包括全量节点基于合约信息在
执行交易详情数据时所得到的读取数据或结果数据的集合。
息4)、验证数据(即图9中的H(3)、H(12)以及H(5678)),以及同步数据集合(即图9中的交易
执行结果4)。其中,验证数据H(3)可以包括哈希值HY(3)以及哈希值HG(3),验证数据H(12)可
以包括哈希值HY(12)以及哈希值HG(12),验证数据H(5678)可以包括哈希值HY(5678)以及哈
希值HG(5678),上述的哈希值HY(3)、哈希值HY(12)以及哈希值HY(5678)分别为交易默克尔
证明树中的交易哈希值,上述的哈希值HG(3)、哈希值HG(12)以及哈希值HG(5678)分别为结
果默克尔证明树中的结果哈希值。同理,图9的默克尔证明树80c(理解成交易默克尔证明树
以及结果默克尔证明树的结合体)中的任一哈希值H(E)均可以包括交易哈希值HY(E)以及
结果哈希值HG(E),E等于1,2,3,…,8。
所调用的用于执行交易详情数据的交易执行函数的名称;根据同步数据集合以及同步交易
数据获取同步写名称,根据交易执行函数名称以及同步写名称,确定同步写交易执行函数
名称;根据同步写交易执行函数名称,在智能合约中确定目标同步写交易执行函数;根据目
标同步写交易执行函数、同步数据集合以及验证数据,验证同步交易数据以及交易详情数
据对应的待验证结果数据的合法性。
账本中针对交易详情数据的已有数据集合;将已有数据集合与同步数据集合进行合并处
理,得到目标数据集合。
第一待验证根哈希,验证同步交易数据以及待验证结果数据的合法性。若目标数据集合为
读取数据,则根据交易执行函数名称确定交易执行函数;将读取数据以及交易详情数据输
入交易执行函数,得到交易详情数据的待验证交易执行结果,根据待验证交易执行结果生
成待验证结果数据;根据交易详情数据、待验证结果数据以及验证数据,得到第二待验证根
哈希,根据第二待验证根哈希,验证同步交易数据以及待验证结果数据的合法性。
据,得到第一待验证根哈希,根据第一待验证根哈希,验证同步交易数据以及待验证结果数
据的合法性的具体过程可以包括:根据交易详情数据以及交易验证数据,得到待验证交易
根哈希,根据待验证结果数据以及结果验证数据,得到待验证结果根哈希;获取针对同步区
块的区块头,从区块头中获取已验证交易根哈希以及已验证结果根哈希;将待验证交易根
哈希与已验证交易根哈希进行对比,将待验证结果根哈希与已验证结果根哈希进行对比;
若待验证交易根哈希与已验证交易根哈希不相同,则确定同步交易数据为非法数据,若待
验证交易根哈希与已验证交易根哈希相同,则确定同步交易数据为合法数据;若待验证结
果根哈希与已验证结果根哈希不相同,则确定待验证结果数据为非法数据,若待验证结果
根哈希与已验证结果根哈希相同,则确定待验证结果数据为合法数据;当同步交易数据为
合法数据且待验证结果数据为合法数据时,将待验证结果数据与同步交易数据进行关联存
储。
已验证交易根哈希以及已验证结果根哈希;将待验证交易根哈希与已验证交易根哈希进行
对比,若待验证交易根哈希与已验证交易根哈希不相同,则确定同步交易数据为非法数据,
此时不再将待验证结果根哈希与已验证结果根哈希进行对比;若待验证交易根哈希与已验
证交易根哈希相同,则确定同步交易数据为合法数据;进一步地,将待验证结果根哈希与已
验证结果根哈希进行对比,若待验证结果根哈希与已验证结果根哈希不相同,则确定待验
证结果数据为非法数据,若待验证结果根哈希与已验证结果根哈希相同,则确定待验证结
果数据为合法数据,将待验证结果数据与同步交易数据进行关联存储。
过程一致,故此处不再进行赘述。
的实施例中步骤S104中的交易1为例叙述,则已有数据集合为账户1111剩余20元。全量节点
返回给轻节点的目标数据集合为一个空集,对目标数据集合以及已有数据集合进行合并,
得到的目标数据集合则与已有数据集合相同,即账户1111剩余20元。
的待验证结果数据。轻节点可以根据结果数据、验证数据以及交易详情数据验证同步交易
数据的合法性。具体过程请再参见图9,轻节点80b可以根据交易4、哈希值HY(3)、哈希值HY
(12)、哈希值HY(5678)生成默克尔证明树80c中的交易默克尔证明树。轻节点80b首先对交
易4进行哈希运算,得到哈希值HY(4),根据哈希值HY(4)以及哈希值HY(3),可以得到哈希值
HY(34),再根据哈希值HY(34)以及哈希值HY(12),可以得到哈希值HY(1234),最后根据哈希
值HY(1234)以及验证数据中的哈希值HY(5678),可以得到哈希值HY(12345678),该哈希值HY
(12345678)即是待验证交易根哈希。
执行结果4)进行哈希运算,得到哈希值HG(4),根据哈希值HG(4)以及哈希值HG(3),可以得到
哈希值HG(34),再根据哈希值HG(34)以及哈希值HG(12),可以得到哈希值HG(1234),最后根
据哈希值HG(1234)以及验证数据中的哈希值HG(5678),可以得到哈希值HG(12345678),该哈
希值HG(12345678)即是待验证结果根哈希。
(12345678))与已验证交易根哈希进行对比,若待验证交易根哈希与已验证交易根哈希不
相同,则确定同步交易数据(包括交易4)为非法数据,若待验证交易根哈希与已验证交易根
哈希相同,则确定同步交易数据为合法数据。
数据,若待验证结果根哈希与已验证结果根哈希相同,则确定结果数据为合法数据。当同步
交易数据为合法数据且结果数据为合法数据时,轻节点80b将结果数据与同步交易数据进
行关联存储。
据待验证交易执行结果生成交易详情数据对应的待验证结果数据。由于全量节点已经执行
过交易详情数据,读取数据本身可以覆盖合约执行过程中的全部数据,所以在轻节点只有
部分数据的情况下,依然可以执行合约。得到待验证交易执行结果后,轻节点的自校验过程
与上文中根据结果数据进行自校验的过程基本一致,故此处不再赘述。
例进行叙述,实际应用时,轻节点可以根据场景设定自校验待验证结果数据或同步交易数
据或两者,此处不限定轻节点自校验范围。
据,然后获取针对该同步交易数据的目标数据集合,其中,同步交易数据包括交易详情数据
以及用于执行交易详情数据的智能合约的合约信息;本申请根据合约信息以及数据同步请
求,可以确定针对交易详情数据的目标同步读交易执行函数;基于节点标识以及目标同步
读交易执行函数,可以从目标数据集合中确定同步数据集合,实现完善同步给轻节点的数
据,可以减小数据传输量,从而可以降低轻节点的空间成本;进一步地,获取验证数据,将同
步交易数据、验证数据以及同步数据集合发送给轻节点,由于同步数据集合包括基于合约
信息在执行交易详情数据时所得到的读取数据或结果数据,所以轻节点可以通过同步数据
集合准确地得到交易详情数据对应的待验证结果数据,因此,通过验证数据和同步数据集
合,轻节点可以准确验证出同步交易数据以及待验证结果数据的合法性。此外,轻节点可以
在仅拥有部分数据(不是整个同步区块)的情况下执行智能合约,对数据进行业务逻辑运算
并处理复杂业务。上述过程让数据不对等的各节点(包括轻节点和全量节点)均可以执行合
约,实现在数据隐私保护的同时,充分发挥智能合约的能力,进而可以确定数据的准确性。
节点以及全量节点共同执行,在本申请实施例中,以该方法由轻节点以及全量节点共同执
行为例进行说明。如图10所示,该数据同步过程包括如下步骤:
以下两个问题:1、全量节点如何辨别并分发正确的数据给轻节点;2、区块链容忍作恶,那么
轻节点如何自校验以确定全量节点返回的数据未被篡改。请参见下文步骤2‑步骤8。
上文中的目标数据集合)主要指一些暂态数据,如转账前的账户余额或转账后的账户余额,
随着区块的增加,交易的执行,每时每刻余额都在变动;故当轻节点同步区块B时,全量节点
应该可以读取或者通过计算得出区块链网络处理至区块B时的账户余额,而不是最新的账
户余额。
储在全量数据库中,请一并参见图11,图11是本申请实施例提供的一种目标数据存储的场
景示意图。如图11所示,全量节点90a中的待存储数据集合90e可以包括读取数据1、读取数
据2、读取数据3、…、读取数据n,以及结果数据1、结果数据2、结果数据3、…、结果数据n。假
设读取数据1为交易1的历史交易数据,结果数据1为交易1的交易执行结果;读取数据2为交
易2的历史交易数据,结果数据2为交易2的交易执行结果;读取数据3为交易3的历史交易数
据,结果数据3为交易3的交易执行结果;…,读取数据n为交易n的历史交易数据,结果数据n
为交易n的交易执行结果。
中。
数据1的数据容量等于或大于结果数据1的数据容量,则将结果数据1&交易1关联存储于全
量数据库90b中。其余交易的目标数据集合的生成亦如此,此处不再一一进行赘述。
数据集合90c包括历史数据集合1、历史数据集合2、历史数据集合3、…、历史数据集合N。
数据集合2,则对历史数据集合1进行读标记处理,得到(历史数据集合1) ,其中读标记“1
读”可以表征历史数据集合1为交易1的读取数据;对历史数据集合2进行写标记处理,得到
1写
(历史数据集合2) ,其中写标记“1写”可以表征历史数据集合2为交易1的结果数据。
据集合1、携带针对交易1的写标记的历史数据集合2、历史数据集合3、…、历史数据集合N、
读取数据2&结果数据2、读取数据3&结果数据3、…、读取数据n&结果数据n。
将结果数据与交易详情数据关联存储于全量数据库中。
行,确定同步方(如轻节点)对同步区块B中的数据的同步权限,以及生成待返回数据。
同步交易数据为空集。
需要的同步数据集合,再由同步节点根据同步交易数据继续运算得到真正的结果数据。
由用户编写,实现最大的灵活性。
据,然后获取针对该同步交易数据的目标数据集合,其中,同步交易数据包括交易详情数据
以及用于执行交易详情数据的智能合约的合约信息;本申请根据合约信息以及数据同步请
求,可以确定针对交易详情数据的目标同步读交易执行函数;基于节点标识以及目标同步
读交易执行函数,可以从目标数据集合中确定同步数据集合,实现完善同步给轻节点的数
据,可以减小数据传输量,从而可以降低轻节点的空间成本;进一步地,获取验证数据,将同
步交易数据、验证数据以及同步数据集合发送给轻节点,由于同步数据集合包括基于合约
信息在执行交易详情数据时所得到的读取数据或结果数据,所以轻节点可以通过同步数据
集合准确地得到交易详情数据对应的待验证结果数据,因此,通过验证数据和同步数据集
合,轻节点可以准确验证出同步交易数据以及待验证结果数据的合法性。此外,轻节点可以
在仅拥有部分数据(不是整个同步区块)的情况下执行智能合约,对数据进行业务逻辑运算
并处理复杂业务。上述过程让数据不对等的各节点(包括轻节点和全量节点)均可以执行合
约,实现在数据隐私保护的同时,充分发挥智能合约的能力,进而可以确定数据的准确性。
例如该数据同步装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的
相应步骤。如图12所示,该数据同步装置1可以包括:第一获取模块11、第二获取模块12、第
一确定模块13、第二确定模块14以及第二获取模块15。
情数据的智能合约的合约信息;目标数据集合包括基于合约信息在执行交易详情数据时所
得到的读取数据或结果数据;
数据集合,验证同步交易数据以及交易详情数据对应的待验证结果数据的合法性。
S105,这里不再进行赘述。
数据;
智能合约所调用的用于执行交易详情数据的交易执行函数的名称;
步数据集合。
默克尔树;
据,然后获取针对该同步交易数据的目标数据集合,其中,同步交易数据包括交易详情数据
以及用于执行交易详情数据的智能合约的合约信息;本申请根据合约信息以及数据同步请
求,可以确定针对交易详情数据的目标同步读交易执行函数;基于节点标识以及目标同步
读交易执行函数,可以从目标数据集合中确定同步数据集合,实现完善同步给轻节点的数
据,可以减小数据传输量,从而可以降低轻节点的空间成本;进一步地,获取验证数据,将同
步交易数据、验证数据以及同步数据集合发送给轻节点,由于同步数据集合包括基于合约
信息在执行交易详情数据时所得到的读取数据或结果数据,所以轻节点可以通过同步数据
集合准确地得到交易详情数据对应的待验证结果数据,因此,通过验证数据和同步数据集
合,轻节点可以准确验证出同步交易数据以及待验证结果数据的合法性。此外,轻节点可以
在仅拥有部分数据(不是整个同步区块)的情况下执行智能合约,对数据进行业务逻辑运算
并处理复杂业务。上述过程让数据不对等的各节点(包括轻节点和全量节点)均可以执行合
约,实现在数据隐私保护的同时,充分发挥智能合约的能力,进而可以确定数据的准确性。
例如该数据同步装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的
相应步骤。如图13所示,该数据同步装置2可以包括:发送请求模块21、获取数据模块22以及
验证数据模块23。
中,同步交易数据是全量节点根据区块标识所确定的同步区块中的数据,且包括交易详情
数据以及用于执行交易详情数据的智能合约的合约信息;同步数据集合是全量节点根据交
易详情数据、轻节点的节点标识以及目标同步读交易执行函数,从目标数据集合中所确定
的集合;目标同步读交易执行函数是全量节点根据合约信息以及数据同步请求所确定的针
对交易详情数据的函数;目标数据集合是与同步交易数据相关联,且包括全量节点基于合
约信息在执行交易详情数据时所得到的读取数据或结果数据的集合;
用于表征智能合约所调用的用于执行交易详情数据的交易执行函数的名称;
到第一待验证根哈希,根据第一待验证根哈希,验证同步交易数据以及待验证结果数据的
合法性;
的合法性。
里不再进行赘述。
确定同步交易数据为合法数据;
则确定待验证结果数据为合法数据;
据,然后获取针对该同步交易数据的目标数据集合,其中,同步交易数据包括交易详情数据
以及用于执行交易详情数据的智能合约的合约信息;本申请根据合约信息以及数据同步请
求,可以确定针对交易详情数据的目标同步读交易执行函数;基于节点标识以及目标同步
读交易执行函数,可以从目标数据集合中确定同步数据集合,实现完善同步给轻节点的数
据,可以减小数据传输量,从而可以降低轻节点的空间成本;进一步地,获取验证数据,将同
步交易数据、验证数据以及同步数据集合发送给轻节点,由于同步数据集合包括基于合约
信息在执行交易详情数据时所得到的读取数据或结果数据,所以轻节点可以通过同步数据
集合准确地得到交易详情数据对应的待验证结果数据,因此,通过验证数据和同步数据集
合,轻节点可以准确验证出同步交易数据以及待验证结果数据的合法性。此外,轻节点可以
在仅拥有部分数据(不是整个同步区块)的情况下执行智能合约,对数据进行业务逻辑运算
并处理复杂业务。上述过程让数据不对等的各节点(包括轻节点和全量节点)均可以执行合
约,实现在数据隐私保护的同时,充分发挥智能合约的能力,进而可以确定数据的准确性。
备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,
存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通
信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),网络接口1004可选地
可以包括标准的有线接口、无线接口(如WI‑FI接口)。存储器1005可以是高速RAM存储器,也
可以是非不稳定的存储器(non‑volatile memory),例如至少一个磁盘存储器。存储器1005
可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图14所示,作为一种计
算机存储介质的存储器1005可以包括操作系统、网络通信模块、用户接口模块以及设备控
制应用程序。
设备控制应用程序,以实现:
约信息;目标数据集合包括基于合约信息在执行交易详情数据时所得到的读取数据或结果
数据;
易数据以及交易详情数据对应的待验证结果数据的合法性。
同步装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘
述。
备2000可以包括:处理器2001,网络接口2004和存储器2005,此外,上述计算机设备2000还
可以包括:用户接口2003,和至少一个通信总线2002。其中,通信总线2002用于实现这些组
件之间的连接通信。其中,用户接口2003可以包括显示屏(Display)、键盘(Keyboard),可选
用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选的可以包括标准
的有线接口、无线接口(如WI‑FI接口)。存储器2005可以是高速RAM存储器,也可以是非易失
性的存储器(non‑volatile memory),例如至少一个磁盘存储器。存储器2005可选的还可以
是至少一个位于远离前述处理器2001的存储装置。如图15所示,作为一种计算机可读存储
介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用
程序。
设备控制应用程序,以实现:
量节点根据区块标识所确定的同步区块中的数据,且包括交易详情数据以及用于执行交易
详情数据的智能合约的合约信息;同步数据集合是全量节点根据交易详情数据、轻节点的
节点标识以及目标同步读交易执行函数,从目标数据集合中所确定的集合;目标同步读交
易执行函数是全量节点根据合约信息以及数据同步请求所确定的针对交易详情数据的函
数;目标数据集合是与同步交易数据相关联,且包括全量节点基于合约信息在执行交易详
情数据时所得到的读取数据或结果数据的集合;
同步装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘
述。
图10中各个步骤所提供的数据同步方法,具体可参见上述图2、图5、图8以及图10各个步骤
所提供的实现方式,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘
述。
以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡
(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进
一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存
储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序
和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算
机设备可执行前文图2、图5、图8以及图10所对应实施例中对数据同步方法的描述,在此不
再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于
已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这
些过程、方法、装置、产品或设备固有的其他步骤单元。
和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这
些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专
业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不
应认为超出本申请的范围。
一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指
令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器
以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用
于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能
的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定
方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令
装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框
或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理
设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处
理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个
流程和/或结构示意一个方框或多个方框中指定的功能的步骤。