一种智能合约分簇并行的区块链实现方法及装置转让专利
申请号 : CN202110222612.5
文献号 : CN112598525B
文献日 : 2021-12-03
发明人 : 张建钢
申请人 : 北京全息智信科技有限公司
摘要 :
权利要求 :
1.一种智能合约分簇并行的区块链实现方法,其特征在于,包括:区块链的节点并行地处理各个合约簇的待执行交易池中的交易,生成各个合约簇的交易处理信息和各个合约簇的世界状态;其中,每个合约簇包括一个智能合约或多个存在依赖关系的智能合约,所述区块链的节点为每个合约簇维护独立的待执行交易池、待执行交易序列和合约状态库,所述待执行交易序列从所述待执行交易池获取,所述各个合约状态库存储各个合约簇的世界状态;
所述区块链的节点根据所述各个合约簇的交易处理信息和所述各个合约簇的世界状态,生成或者验证第一区块;其中,所述各个合约簇的交易处理信息和所述各个合约簇的世界状态分别地记录在所述第一区块;所述区块链的世界状态,是所述区块链的每一个合约簇的世界状态的集合。
2.如权利要求1所述的方法,其特征在于,所述各个合约簇的交易处理信息,包括:各个合约簇的第一待执行交易队列的已执行交易信息;
所述各个合约簇的世界状态,包括:各个合约簇在执行所述第一待执行交易队列后达成的世界状态。
3.如权利要求1所述的方法,其特征在于,所述各个合约簇的交易处理信息,包括:所述第一区块包括的各个合约簇的第二待执行交易队列和第二区块包括的各个合约簇的第三待执行交易队列对应的已执行交易信息;其中,所述第二区块包括所述第一区块和在所述第一区块之前生成的区块,或者,所述第二区块包括在所述第一区块之前生成的区块;
所述各个合约簇的世界状态,包括:各个合约簇在执行所述第三待执行交易队列后达成的世界状态。
4.如权利要求3所述的方法,其特征在于,所述第一区块和所述第二区块间隔预设个数的区块;
所述第二待执行交易队列在生成或验证第三区块时执行,所述第三区块在所述第一区块之后生成,所述第三区块与所述第一区块间隔所述预设个数的区块。
5.如权利要求1所述的方法,其特征在于,还包括:所述区块链的节点接收第一交易;
所述区块链的节点获取所述第一交易包括的智能合约信息;
所述区块链的节点根据所述第一交易包括的智能合约信息,查询第一状态库,确定所述第一交易对应的合约簇;其中,所述第一状态库包括智能合约与合约簇的关系;
所述区块链的节点将所述第一交易放入所述第一交易对应的合约簇的待执行交易池。
6.如权利要求5所述的方法,其特征在于,所述第一状态库包括:智能合约标识和智能合约所属的合约簇标识;或者,智能合约标识、智能合约当前所属的合约簇标识和智能合约原先所属的合约簇标识。
7.如权利要求1所述的方法,其特征在于,还包括:所述区块链的节点接收第二交易;
所述区块链的节点获取所述第二交易包括的待部署智能合约的信息;
所述区块链的节点根据所述待部署智能合约的信息,确定所述待部署智能合约对应的合约簇;
所述区块链的节点根据所述待部署智能合约对应的合约簇部署所述待部署智能合约。
8.如权利要求7所述的方法,其特征在于,所述区块链的节点根据所述待部署智能合约对应的合约簇部署所述待部署智能合约之后,还包括:所述区块链的节点更新所述待部署智能合约对应的合约簇的第一状态库,以及,更新第二状态库;
其中,所述第一状态库包括智能合约与合约簇的关系;所述第二状态库包括单个合约簇的智能合约信息和世界状态。
9.如权利要求7所述的方法,其特征在于,所述区块链的节点根据所述待部署智能合约的信息,确定所述待部署智能合约对应的合约簇,包括:所述区块链的节点为所述待部署智能合约创建第一合约簇,将所述第一合约簇作为所述待部署智能合约对应的合约簇;或者,所述区块链的节点确定所述待部署智能合约仅与第二合约簇包括的智能合约存在依赖关系,将所述第二合约簇作为所述待部署智能合约对应的合约簇;或者,所述区块链的节点确定所述待部署智能合约与至少两个第三合约簇包括的智能合约存在依赖关系,合并所述至少两个第三合约簇,形成第四合约簇,将所述第四合约簇作为所述待部署智能合约对应的合约簇。
10.如权利要求9所述的方法,其特征在于,所述区块链的节点在合并所述至少两个第三合约簇之前,还包括:
所述区块链的节点将所述第二交易放入所述至少两个所述第三合约簇的待执行交易队列的队头。
11.如权利要求9所述的方法,其特征在于,所述区块链的节点合并所述至少两个第三合约簇,包括:
所述区块链的节点合并所述至少两个第三合约簇的待执行交易池、待执行交易队列、第二状态库,分别形成第四合约簇的待执行交易池、待执行交易队列、第二状态库;以及,根据所述待部署智能合约的信息更新第一状态库;
其中,所述第一状态库包括智能合约与合约簇的关系;所述第二状态库包括单个合约簇的智能合约信息和世界状态。
12.如权利要求1所述的方法,其特征在于,所述合约簇的标识根据所述合约簇包括的智能合约的地址按照预设规则形成。
13.如权利要求1所述的方法,其特征在于,所述区块链的节点预先为各个合约簇分配独立的进程或者线程,分别用于处理各个合约簇的交易。
14.如权利要求1所述的方法,其特征在于,还包括:所述区块链的节点触发区块回滚或区块修剪;
所述区块链的节点更新与回滚或修剪的区块关联的合约簇的待执行交易池和待执行交易队列;或者,所述区块链的节点更新与回滚或修剪的区块关联的合约簇的待执行交易池、待执行交易队列和第二状态库;
其中,所述第二状态库包括单个合约簇的智能合约信息和世界状态。
15.一种区块链的节点装置,其特征在于,包括:交易处理模块,用于并行地处理各个合约簇的待执行交易池中的交易,生成各个合约簇的交易处理信息和各个合约簇的世界状态;其中,每个合约簇包括一个智能合约或多个存在依赖关系的智能合约,所述区块链的节点为每个合约簇维护独立的待执行交易池、待执行交易序列和合约状态库,所述待执行交易序列从所述待执行交易池获取,所述各个合约状态库存储各个合约簇的世界状态;
区块处理模块,用于根据所述各个合约簇的交易处理信息和所述各个合约簇的世界状态,生成或者验证第一区块;其中,所述各个合约簇的交易处理信息和所述各个合约簇的世界状态分别地记录在所述第一区块;所述区块链的世界状态,是所述区块链的每一个合约簇的世界状态的集合。
16.如权利要求15所述的装置,其特征在于,所述各个合约簇的交易处理信息,包括:各个合约簇的第一待执行交易队列的已执行交易信息;
所述各个合约簇的世界状态,包括:各个合约簇在执行所述第一待执行交易队列后达成的世界状态。
17.如权利要求15所述的装置,其特征在于,所述各个合约簇的交易处理信息,包括:所述第一区块包括的各个合约簇的第二待执行交易队列和第二区块包括的各个合约簇的第三待执行交易队列对应的已执行交易信息;其中,所述第二区块包括所述第一区块和在所述第一区块之前生成的区块,或者,所述第二区块包括在所述第一区块之前生成的区块;
所述各个合约簇的世界状态,包括:各个合约簇在执行所述第三待执行交易队列后达成的世界状态。
18.如权利要求17所述的装置,其特征在于,所述第一区块和所述第二区块间隔预设个数的区块;
所述区块处理模块还用于在生成或验证第三区块时执行所述第二待执行交易队列,所述第三区块在所述第一区块之后生成,所述第三区块与所述第一区块间隔所述预设个数的区块。
19.如权利要求15所述的装置,其特征在于,还包括交易接收模块,用于:接收第一交易;
获取所述第一交易包括的智能合约信息;
根据所述第一交易包括的智能合约信息,查询第一状态库,确定所述第一交易对应的合约簇;其中,所述第一状态库包括智能合约与合约簇的关系;
将所述第一交易放入所述第一交易对应的合约簇的待执行交易池。
20.如权利要求19所述的装置,其特征在于,所述第一状态库包括:智能合约标识和智能合约所属的合约簇标识;或者,智能合约标识、智能合约当前所属的合约簇标识和智能合约原先所属的合约簇标识。
21.如权利要求15所述的装置,其特征在于,还包括智能合约部署模块,用于:接收第二交易;
获取所述第二交易包括的待部署智能合约的信息;
根据所述待部署智能合约的信息,确定所述待部署智能合约对应的合约簇;
根据所述待部署智能合约对应的合约簇部署所述待部署智能合约。
22.如权利要求21所述的装置,其特征在于,所述智能合约部署模块还用于:在根据所述待部署智能合约对应的合约簇部署所述待部署智能合约之后,更新所述待部署智能合约对应的合约簇的第一状态库,以及,更新第二状态库;
其中,所述第一状态库包括智能合约与合约簇的关系;所述第二状态库包括单个合约簇的智能合约信息和世界状态。
23.如权利要求21所述的装置,其特征在于,所述智能合约部署模块用于根据所述待部署智能合约的信息,确定所述待部署智能合约对应的合约簇时,具体用于:为所述待部署智能合约创建第一合约簇,将所述第一合约簇作为所述待部署智能合约对应的合约簇;或者,
确定所述待部署智能合约仅与第二合约簇包括的智能合约存在依赖关系,将所述第二合约簇作为所述待部署智能合约对应的合约簇;或者,确定所述待部署智能合约与至少两个第三合约簇包括的智能合约存在依赖关系,合并所述至少两个第三合约簇,形成第四合约簇,将所述第四合约簇作为所述待部署智能合约对应的合约簇。
24.如权利要求23所述的装置,其特征在于,所述智能合约部署模块还用于:在合并所述至少两个第三合约簇之前,将所述第二交易放入所述至少两个所述第三合约簇的待执行交易队列的队头。
25.如权利要求23所述的装置,其特征在于,所述智能合约部署模块用于合并所述至少两个第三合约簇时,具体用于:合并所述至少两个第三合约簇的待执行交易池、待执行交易队列、第二状态库,分别形成第四合约簇的待执行交易池、待执行交易队列、第二状态库;以及,根据所述待部署智能合约的信息更新第一状态库;
其中,所述第一状态库包括智能合约与合约簇的关系;所述第二状态库包括单个合约簇的智能合约信息和世界状态。
26.如权利要求15所述的装置,其特征在于,所述合约簇的标识根据所述合约簇包括的智能合约的地址按照预设规则形成。
27.如权利要求15所述的装置,其特征在于,所述交易处理模块预先为各个合约簇分配独立的进程或者线程,分别用于处理各个合约簇的交易。
28.如权利要求15所述的装置,其特征在于,还包括区块异常处理模块,用于:触发区块回滚或区块修剪;
更新与回滚或修剪的区块关联的合约簇的待执行交易池和待执行交易队列;或者,所述区块链的节点更新与回滚或修剪的区块关联的合约簇的待执行交易池、待执行交易队列和第二状态库;
其中,所述第二状态库包括单个合约簇的智能合约信息和世界状态。
29.一种电子设备,包括存储器和处理器,所述存储器用于存储计算机指令,其特征在于,所述计算机指令被所述处理器执行以实现如权利要求1‑14的任一项所述的方法。
30.一种可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器执行时实现如权利要求1‑14的任一项所述的方法。
说明书 :
一种智能合约分簇并行的区块链实现方法及装置
技术领域
背景技术
以执行,然后把这些交易、执行这些交易达成的新的世界状态(或其哈希值),上一个区块的
哈希值,连同其他必要信息,生成新的区块并把该区块发送给区块链网络上的其他节点,进
而对该区块完成显式或隐式的共识。
的所有交易并达成的新的世界状态(或其哈希值),然后与区块中声称的新的世界状态进行
比较。比较成功之后,该区块链节点会依共识流程对该区块完成显式或隐式的共识(即接受
或拒绝该区块)。
复杂、交易执行的耗时甚至可能超过区块生成、验证和共识可能允许的最大交易执行时长,
甚至导致这样的场景不被区块链协议栈直接支持。还有,如果区块链网络上的各个节点软
硬件配置和负载不完全相同,在给定的时间敏感的共识机制下,一个长耗时的交易可能在
一组节点上能够完成运行,但在另一组节点上则不能,从而因为出现本应避免的不确定性
而造成区块链协议栈的瘫痪。
发明内容
在依赖关系的智能合约;
述第二区块包括在所述第一区块之前生成的区块;
与此同时,区块内不仅包含一组当前生成的待执行交易队列,还包含了在先的区块的待执
行交易队列对应的已执行交易信息。
为所述待部署智能合约对应的合约簇。
及,根据所述待部署智能合约的信息更新第一状态库;
交易池、待执行交易队列和第二状态库;
多个存在依赖关系的智能合约;
述第二区块包括在所述第一区块之前生成的区块;
个数的区块。
合约对应的合约簇。
智能合约的信息更新第一状态库;
库;
法。
了包括多个智能合约的区块链的交易管理效率。进一步地,修改区块组成,将交易序列和结
果状态按合约簇分组,把每个合约簇的交易排序的共识(交易计入区块)和结果状态的共识
(状态哈希计入区块)异步处理、区块生成/验证/共识过程和交易执行过程并行处理,确保
合约簇的世界状态“用时即有”,在做到不相关的智能合约交易互不干扰、完全消除区块链
对智能合约交易耗时的显式或隐式限制的同时,大大提高区块链的并发和吞吐能力。
附图说明
说明书的一部分。
具体实施方式
了便于描述,附图中仅示出了与本发明相关的部分。
一个合约的合约簇(有新的未执行交易序列或已执行交易序列的合约簇)的新的未执行交
易序列、已执行交易序列及达至的合约簇的世界状态(合约簇状态)的哈希值。整个区块链
的世界状态,是该区块链网络上每一个合约簇状态的集合。
互不读写对方的状态。一个智能合约,或者单独组成合约簇(即不依赖其他任何智能合约、
也不被其他任何智能合约依赖),或者依赖其所属合约簇内的一个或多个其他智能合约,或
被其所属合约簇内的一个或多个其他智能合约依赖。智能合约在部署时可以声明其对其他
智能合约的依赖,区块链协议栈可以自动对违反依赖关系的交易和智能合约以失败处理或
自动更新依赖关系。
提交的或从同一区块链网络上的其他区块链节点同步过来的目标为本合约簇中的智能合
约的交易。
交易序列,然后将其“打包”生成新区块。每一个合约簇将其提供给新区块的待执行交易序
列添加到该合约簇的待执行交易队列,以便该合约簇的交易执行线程顺次执行交易。
的已执行交易序列,是以待执行交易序列的形式包含在本区块之前的区块中的,本地节点
在收到那些区块时,已经提交给该合约簇的交易执行线程异步执行了,所以该合约簇很大
可能已经在本地完全执行了新区块中的已执行交易序列(如果还没有全部执行,则完成该
序列中剩余的交易)实现合约簇的状态“用时即有”、无需等待,该合约簇只要验证本地状态
与区块中的状态是否相符即可。如果相符,就将新区块中的、属于该合约簇的待执行交易序
列添加到该合约簇的待执行交易队列,等待该合约簇的交易执行线程异步执行。
状态清除即可。
结果状态,同时修改区块组成将每个合约簇的交易序列的共识和执行结果的共识分开并异
步进行,在做到支持任意长耗时的智能合约交易、无依赖关系的智能合约互不干扰的同时,
通过区块生成和验证时交易执行无等待或短等待和分属不同合约簇的交易并行执行的方
式,大幅度缩短区块链协议栈的整体时延,提高区块链协议栈的并发能力和吞吐能力。
的哈希值、前一区块哈希值等信息。如图1中图块100所示,在本发明之前,第x个区块(即Bx)
包含以下信息:
行并达成新的世界状态(WSx),然后生成Bx,发送其到整个区块链网络并与其他节点一起完
成共识流程。
交易,并达成新的世界状态(WSx)并与该区块中声称的世界状态比较。如果一致,再参与完
成后续的共识流程。
成、验证和共识可能允许的最大交易执行时长,直接导致这样的场景不被区块链协议栈支
持。还有,如果区块链网络上的各个节点软硬件配置和负载不完全相同,在给定的时间敏感
的共识机制下,一个长耗时的交易可能在一组节点上能够完成运行,但在另一组节点上则
不能,从而因为出现本应避免的不确定性而可能造成区块链协议栈的瘫痪。
合约B,即智能合约A和B相关。合约依赖可以在部署时由部署方声明或区块链协议栈在运行
时发现。
关联,所以分属不同智能合约的交易可以并行执行。有鉴于此,本发明将一个区块链网络上
部署的智能合约按其相关性分簇,称为合约簇。
行交易时不读写任何其他智能合约的状态,C在执行交易时可能会读取B的状态、而B在执行
交易时可能读写A的状态,则A,B,C必须进入同一个合约簇,D进入一个只有D组成的另外一
个合约簇。
希得到。比如,智能合约A,B,C的区块链地址分别是0xA…A、0xB…B、0xC…C,则由A,B,C组成
的合约簇的标识为:SHA256(0xA…AB…BC…C)。
执行交易序列,而无需互相等待和彼此干扰,这样可以大大提高交易执行的并发和吞吐能
力。
以实现跨合约簇的状态隔离。这样在交易执行时无需和其他合约簇的交易执行线程竞争状
态库的访问权,能够进一步提高各个合约簇的交易执行线程的效率。
之后的世界状态WSx(图块104)。传统的区块链协议栈,在对每一个区块进行共识的过程中,
同时共识该区块包含的交易序列以及执行该交易序列之后的结果状态,所以在区块生成和
验证时需要等待该区块的交易序列执行结束。
的全部或部分交易序列之后达至的世界状态。比如,第x个区块包含的世界状态,不是执行
完成第x个区块包含的交易序列之后达至的世界状态,而是包含执行完成第(x‑d)个区块中
的第m个交易之后达至的世界状态。这样,如果交易序列的执行线程和区块的生成/验证/传
播/共识线程是并行进行,则在生成第x个区块时,交易执行线程已经完成执行第(x‑d)个区
块中的第m个交易并达至相应的世界状态,在第x块中只要填入该世界状态(的哈希值)即
可,无需等待。在区块验证中,亦是如此(当然如果本地区块链节点还没有完成执行,则需稍
稍等待)。
约簇),分别包含其(待执行的)交易序列和(已执行交易序列达至的)结果状态。本发明的第
x个区块的构成如图2的图块200所示,图块201是前一区块的哈希,图块202、图块203是该区
块包含的属于合约簇C1的交易序列的第一个和最后一个交易,图块204、图块205是该区块
包含的属于合约簇C2的交易序列的第一个和最后一个交易。图块206是合约簇u在执行完成
第m个区块中该合约簇的第i个交易之后达至的该合约簇的世界状态(用WSu:m:i表示,实现
中可以是一个编程结构体),图块207是合约簇v在执行完成第n个区块中该合约簇的第j个
交易之后达至的该合约簇的世界状态(用WSv:n:j表示)。
态,生成区块即可。在区块验证时,区块验证节点的区块链协议栈的区块验证模块,向区块
中包含的每一个合约簇的合约簇管理器,提交区块中的属于该合约簇的待执行交易序列和
已执行交易序列及结果状态。合约簇的合约簇管理器,检查区块中的合约簇状态对应的交
易序列是否已经执行完成(如果没有,则等待其完成)。完成之后,验证本地状态和区块中的
合约簇状态是否匹配。如果不匹配,则验证失败。如果匹配,则将新的待执行交易序列附加
到其待执行交易队列的队尾,以便该合约簇的交易执行线程异步执行。
他区块链节点的网络接可(比如交易TCP或TLS的P2P网络),以便实现区块链节点组网,向其
他区块链节点请求/同步交易、区块和状态等信息,或响应来自其他节点的交易、区块和状
态等信息请求。
支修剪,以及通过网络服务(图块312)与其他区块链节点同步交易、区块、状态等信息,实现
全链共识,并将共识区块计入区块链账本(图块308)。
制(图块311)读取分簇状态库以确定一个交易的目标合约簇。每个合约簇在分簇状态库中
有一条以该合约簇的ID为索引的记录(合约簇组成记录),记录内容至少包括:原合约簇ID
(如果没有,则为空)、智能合约列表。每个智能合约在分簇状态库中有一条以该智能合约地
址为索引的记录(智能合约簇属记录),记录内容至少包括:原合约簇ID(如果没有,则为
空)、当前合约簇ID。
所属的目标合约簇。在部署时,如果所属的目标合约簇不存在,则创建一个新的合约簇作为
目标合约簇,然后将智能合约部署交易或业务交易转发给所属目标合约簇的待执行交易池
(图块304)。
在的区块号、区块哈希和交易在该区块内的该合约簇的待执行交易序列的位置表示),及达
至的合约簇的世界状态,然后将这些信息连同前一个区块的哈希等其他信息,生成新区块
并交给共识机制模块(图块301)参与共识流程。
行交易序列、已执行交易序列及其达至的合约簇状态的哈希值,交由该合约簇验证并返回
验证结果(验证成功或者验证失败)。
能合约(图块303)、交易执行线程(图块302)和合约簇管理器(图块305)。
状态库(图块306)获取在当前账本分支上已执行的交易序列的最后一笔交易(用交易所在
的区块号、区块哈希和交易在该区块内的该合约簇的待执行交易序列的位置表示),及达至
的合约簇的世界状态,然后返回这些信息给区块生成模块。在验证区块时,应区块验证模块
(图块309)的请求,从该合约簇的合约状态库(图块306)获取该合约簇在当前账本分支上、
待验证区块中指定的已执行的交易序列的最后一笔交易达至的合约簇的世界状态,并与区
块中声称的合约簇的状态进行比对。因为新区块中的已执行交易序列,是以待执行交易序
列的形式包含在本区块之前的区块中的,本地节点在收到那些区块时,已经提交给该合约
簇的交易执行线程异步执行了,所以该合约簇很大可能已经在本地完全执行了新区块中的
已执行交易序列,无需等待状态就绪(如果还没有全部执行,则等待完成该序列中剩余的交
易)。如果二者不同,则返回匹配失败给区块验证模块。如果匹配相同,则将区块中的该合约
簇的待执行交易序列添加到该合约簇的待执行交易队列的队尾,以便该合约簇的交易执行
线程(图块302)适时执行。合约簇管理器,也应共识机制模块(图块310)的请求,回滚、修剪
作废的区块,并相应的更新该合约簇的待执行交易池、待执行交易队列和合约状态库(如果
需要的话)。
簇ID(如果没有,则为空)等。通常以默克尔树的形式实现。
易,则调用相应的目标智能合约(图块303)执行该交易。交易执行线程由合约簇管理器(图
块305)在待执行交易队列不为空时启动、在待执行交易队列为空时暂停或终止。实现上,交
易执行线程可以以操作系统线程、操作系统进程等方式实现。
作为目标合约簇;如果是业务交易,分簇机制模块,根据交易的目标智能合约地址,从分簇
状态库(图块313)查询其目标合约簇;
程,安装启动智能合约。如果该合约簇是待合并合约簇(即该合约簇不是待部署智能合约的
目标合约簇但是其依赖的智能合约的所属合约簇),则停止终止交易执行线程等待合并;
易执行线程,即以上的第(1)和(2)步;
库中更新合约簇组成记录和智能合约簇属记录。
该合约簇的待执行交易序列中的序号,当前账本分支上未汇报的最后一个已执行交易所在
的区块号码、区块哈希和该交易在该区块中该合约簇的待执行交易序列中的序号)及其世
界状态的哈希值(无需等待),以及新一组的待执行的交易序列(交易ID的列表)。
之前的区块中的,本地节点在收到那些区块时,已经提交给该合约簇的交易执行线程异步
执行了,所以该合约簇很大可能已经在本地完全执行了新区块中的已执行交易序列,所以
合约簇的状态很大可能是“用时即有”、无需等待,可以立即验证本地状态和区块中的合约
簇状态是否匹配(即便等待也是短时等待以完成执行该序列中剩余的交易);
组成,将交易序列和结果状态按合约簇分组,把每个合约簇的交易排序的共识(交易计入区
块)和结果状态的共识(状态哈希计入区块)异步处理、区块生成/验证/共识过程和交易执
行过程并行处理确保合约簇的世界状态“用时即有”,在做到不相关的智能合约交易互不干
扰、完全消除区块链对智能合约交易耗时的显式或隐式限制的同时,大大提高区块链的并
发和吞吐能力。
介,例如软盘、CD‑ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指
令)的形式,其中当程序被载入诸如计算机之类的机器,并被该机器执行时,该机器变成实
践本发明的设备。
少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器
中存储的该程序代码中的指令,执行本发明的各种方法。
数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调
制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传
递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个
子模块。
块或组件组合成一个模块或模块或组件,以及此外可以把它们分成多个子模块或子模块或
子组件。除了这样的特征和/或过程或者模块中的至少一些是相互排斥之外,可以采用任何
组合对本说明书(包括伴随的权利要求、摘要和附图)中发明的所有特征以及如此发明的任
何方法或者设备的所有过程或模块进行组合。除非另外明确陈述,本说明书(包括伴随的权
利要求、摘要和附图)中发明的每个特征可以由提供相同、等同或相似目的的替代特征来代
替。
范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一
都可以以任意的组合方式来使用。
本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限
定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本
技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本
发明所做的发明是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。