一种区块链扩链方法、***及电子设备和存储介质
技术领域
本申请涉及区块链技术领域,更具体地说,涉及一种区块链扩链方法、***及一种电子设备和一种计算机可读存储介质。
背景技术
在区块链***中,迅雷链之前总共是由64条链构成,每条链上都运行相同的程序,不同用户的请求会通过路由模块转发到不同的链上进行处理。当某条链的用户请求过多导致交易处理性能降低时,需要对此链进行扩展,最终的结果是旧链上的部分请求被路由到新链上处理。
因此,如何实现区块链的扩链操作是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种区块链扩链方法、***及一种电子设备和一种计算机可读存储介质,实现了区块链的扩链操作。
为实现上述目的,本申请提供了一种区块链扩链方法,包括:
确定待扩展链和所述待扩展链的扩链高度;
在区块链***中创建所述待扩展链对应的扩展链;
在所述扩展链中同步所述待扩展链中所述扩链高度之前的区块。
其中,确定所述待扩展链的扩链高度,包括:
确定所述待扩展链的当前区块高度和区块增长速度,并获取用户终端设置的所述待扩展链的期望扩链时长;
将所述期望扩链时长和所述区块增长速度的乘积与所述当前区块高度的和确定为所述待扩展链的扩链高度。
其中,所述区块链***中的区块链节点的数据结构包括所述区块链节点的标识、父节点的扩链高度、扩展链信息、用于计算扩展链的起始位、结束位和取模位数。
其中,还包括:
当接收到处理请求时,确定所述处理请求中用户账户对应的目标链;
判断所述目标链是否存在扩展链且当前区块高度是否达到所述目标链的扩展高度;
若均是,则根据所述用户账户确定所述处理请求的响应链,以便所述响应链处理所述处理请求。
其中,确定所述处理请求中用户账户对应的目标链,包括:
确定所述区块链***的基础链数量;其中,所述基础链数量为所述区块链***未进行扩链操作时的区块链数量;
对所述处理请求中的所述用户账户的第一目标位进行所述基础链数量的取模运算;
根据取模结果确定所述目标链。
其中,还包括:
若所述目标链不存在扩展链或当前区块高度未达到所述目标链的扩展高度,则将所述目标链作为所述处理请求的响应链。
其中,根据所述用户账户确定所述处理请求的响应链,包括:
确定所述目标链的扩展链数量,并对所述用户账户的第二目标位进行所述扩展链数量加一的取模运算;
根据取模结果确定候选响应链,判断所述候选响应链与所述目标链是否相同;
若是,则将所述目标链作为所述响应链;若否,则判断所述候选响应链是否存在扩展链;
若存在,则将所述候选响应链作为所述目标链,并重新执行判断所述目标链是否存在扩展链且当前区块高度是否达到所述目标链的扩展高度的步骤;
若不存在,则将所述候选响应链确定为所述响应链。
为实现上述目的,本申请提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的区块链扩链程序,所述区块链扩链程序被所述处理器执行时实现如上述区块链扩链方法的步骤。
为实现上述目的,本申请提供了一种区块链扩链***,包括:
确定模块,用于确定待扩展链和所述待扩展链的扩链高度;
创建模块,用于在区块链***中创建所述待扩展链对应的扩展链;
同步模块,用于在所述扩展链中同步所述待扩展链中所述扩链高度之前的区块。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有区块链扩链程序,所述区块链扩链程序被处理器执行时实现如上述区块链扩链方法的步骤。
为实现上述目的,本申请提供了一种计算机程序产品,包括计算机指令,当其在计算机上运行时,使得计算机可以执行上述任一项所述区块链扩链方法。
通过以上方案可知,本申请提供的一种区块链扩链方法,包括:确定待扩展链和所述待扩展链的扩链高度;在区块链***中创建所述待扩展链对应的扩展链;在所述扩展链中同步所述待扩展链中所述扩链高度之前的区块。
本申请提供的区块链扩链方法,当待扩展链需要进行扩链操作时,为该待扩展链建立对应的扩展链,扩展链的区块数据与待扩展链保持一致。在扩链完成前,路由到待扩展链的交易能够正常处理,扩链完成后,待扩展链上的部分请求被路由到扩展链上处理,实现了区块链的扩链操作。本申请还公开了一种区块链扩链***及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种区块链扩链方法的流程图;
图2为本申请实施例公开的另一种区块链扩链方法的流程图;
图3为本申请实施例公开的又一种区块链扩链方法的流程图;
图4为本申请实施例公开的一种区块链扩链***的结构图;
图5为本申请实施例公开的一种电子设备的结构图;
图6为本申请实施例公开的另一种电子设备的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
在现有技术中,区块链***中的某条链的用户请求过多会导致交易处理性能降低,因此,在本申请中,为用户请求较多的待扩展建立扩展链,扩展链的区块数据与待扩展链保持一致。在扩链完成前,路由到待扩展链的交易能够正常处理,扩链完成后,待扩展链上的部分请求被路由到扩展链上处理,实现了区块链的扩链操作。
本申请实施例公开了一种区块链扩链方法,实现了区块链的扩链操作。
参见图1,本申请实施例公开的一种区块链扩链方法的流程图,如图1所示,包括:
S101:确定待扩展链和所述待扩展链的扩链高度;
在本步骤中,首先确定用户请求较多的待扩展链,并确定其扩链高度。对于扩链高度,用户可以对其进行直接设置,也可以通过设置期望扩链时长的方式进行设置,本实施例不进行具体限定。
也就是说,确定待扩展链的扩链高度的步骤可以包括:确定所述待扩展链的当前区块高度和区块增长速度,并获取用户终端设置的所述待扩展链的期望扩链时长;将所述期望扩链时长和所述区块增长速度的乘积与所述当前区块高度的和确定为所述待扩展链的扩链高度。
期望扩链时长即为当前时刻到期望扩链时刻的间隔时长。例如,当前区块为100,区块增长速度为每秒1块,用户期望50秒后自动扩链,期望扩链时长为50,扩链高度为100+50=150。
S102:在区块链***中创建所述待扩展链对应的扩展链;
在本步骤中,为待扩展链创建对应的扩展链。需要说明的是,本实施例不对扩展链的数量限定进行限定,即一个待扩展链可以对应一个扩展链,也可以对应多个扩展链。本实施例也不对扩链的层次进行限定,即可以将扩展链重新作为待扩展链并对其继续进行扩链操作。
需要说明的是,待扩展链与扩展链的对应关系可以依据区块链节点的数据结构进行存储。本实施例中区块链节点的数据结构可以包括该区块链节点的标识、扩链高度、扩展链信息、用于计算扩展链的起始位、结束位和取模位数等。例如:
可以理解的是,Sbit、Ebit和Mod可用于计算扩展链,Mod即为该节点对应的扩展链数量加一,子节点信息即可存储扩展链的标识信息。
S103:在所述扩展链中同步所述待扩展链中所述扩链高度之前的区块。
可以理解的是,为保证扩展链可以与待扩展链响应相同的处理请求,在本步骤中,需要为扩展链需要同步待扩展链中扩链高度之前的区块,即同步上述数据结构中高度小于Height值的区块。
本实施例提供的区块链扩链方法,当待扩展链需要进行扩链操作时,为该待扩展链建立对应的扩展链,扩展链的区块数据与待扩展链保持一致。在扩链完成前,路由到待扩展链的交易能够正常处理,扩链完成后,待扩展链上的部分请求被路由到扩展链上处理,实现了区块链的扩链操作。
下面详细介绍本申请提供的区块链的路由规则,具体的:
参见图2,本申请实施例提供的另一种区块链扩链方法的流程图,如图2所示,包括:
S201:当接收到处理请求时,确定所述处理请求中用户账户对应的目标链;
在本步骤中,当接收到处理请求时,首先确定该处理请求中包含的用户账户,并根据该用户账户确定对应的目标链。作为一种优选实施方式,本步骤可以包括:确定所述区块链***的基础链数量;对所述处理请求中的所述用户账户的第一目标位进行所述基础链数量的取模运算;根据取模结果确定所述目标链。
其中,基础链数量为区块链***未进行扩链操作时的区块链数量。此处不对第一目标位进行具体限定,优选为用户账户的后两位。例如,区块链***中的基础链数量为64,处理请求中的用户账户为12345,对64的取模结果为57,该处理请求对应的目标链标识即为57。
S202:判断所述目标链是否存在扩展链且当前区块高度是否达到所述目标链的扩展高度;若均是,则进入S203;否则进入S204;
确定目标链后,判断该目标链是否存在扩展链,若否,则直接进入S204,若是,则判断该目标链的当前高度是否达到扩链高度,若达到则进入S203,若未达到则进入S204。
S203:根据所述用户账户确定所述处理请求的响应链,以便所述响应链处理所述处理请求。
在具体实施中,当目标链存在扩展链且达到扩链高度时,落入该目标链的处理请求会被分为几部分,即部分的处理请求由该目标链响应,其他的处理请求由扩展链响应。因此在本步骤中需要确定响应链,以便该响应链处理该处理请求。
S204:将所述目标链作为所述处理请求的响应链,以便所述响应链处理所述处理请求。
在本实施例中,当目标链不存在扩展链或当前区块高度未达到扩展高度时,将目标链作为处理请求的响应链,即利用目标链该用户账户的响应处理请求。
相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图3,本申请实施例提供的又一种区块链扩链方法的流程图,如图3所示,包括:
S301:当接收到处理请求时,确定所述区块链***的基础链数量;其中,所述基础链数量为所述区块链***未进行扩链操作时的区块链数量;
S302:对所述处理请求中的所述用户账户的第一目标位进行所述基础链数量的取模运算,并根据取模结果确定处理请求对应的目标链;
S303:判断所述目标链是否存在扩展链且当前区块高度是否达到所述目标链的扩展高度;若均是,则进入S304;否则进入S309;
S304:确定所述目标链的扩展链数量,并对所述用户账户的第二目标位进行所述扩展链数量加一的取模运算;
本实施例同样不对第二目标为进行具体限定,优选为用户账户的第二位,可以在区块链节点的数据结构中进行定义,即第一个实施例介绍的数据结构中的Sbit和Ebit。目标链和其扩展链均可以响应该处理请求,对该用户账户的第二目标位进行扩展链数量加一的取模运算,以确定候选响应链。相当于将该目标链和其扩展链的标识建立一个数组,取模结果对应该数组的元素位数。例如,当该目标区块链存在3个扩展链时,对用户账户的第二目标位对4取模,取模结果为0的候选响应链为该目标链,取模结果为1的候选响应链为第一个扩展链,取模结果为2的候选响应链为第二个扩展链,取模结果为3的候选响应链为第三个扩展链。
S305:根据取模结果确定候选响应链,判断所述候选响应链与所述目标链是否相同,若是,则进入S308;若否,则进入S306;
可以理解的是,当候选响应链为目标链时,不需要继续进行迭代过程,直接将该候选响应链(或目标链)作为响应链,当候选响应链不为目标链时,继续判断该候选响应链是否存在扩展链。
S306:判断所述候选响应链是否存在扩展链;若是,则进入S307;若否,则进入S308;
S307:将所述候选响应链作为所述目标链,并重新进入S303;
S308:将所述候选响应链确定为处理请求的响应链;
确定候选响应链后,需要判断该候选响应链是否存在扩展链,若是,则重新判断该候选响应链是否存在扩展链且达到扩链高度的步骤,若否,则将其确定为响应链。
S309:将目标链确定为处理请求的响应链;
本实施例同样不对第二目标为进行具体限定,优选为用户账户的第二位。在上述实施例举出的例子中,若标识为57的区块链存在2个扩展链,标识分别为70和71,且区块链57达到扩链高度,用户账户12345的第二位对3的取模结果为2,因此,将区块链70作为候选响应链。若区块链70存在扩展链72且达到扩链高度,此时将区块链70作为目标链,对用户账户12345的第二位2对2取模,取模结果为0,则将区块链70确定为候选响应链,由于候选响应链与目标链均为区块链70,不需要继续进行迭代,则区块链70即为最终的响应链,用于响应用户账户12345的处理请求。
下面在应用实施例中介绍本申请提供的区块链扩链方法。具体的,目前迅雷链的64条链中,zoneid 10的链处理压力过大,需要进行扩链操作。扩展方案为新扩展一条链zoneid 65,则需要将原来由zoneid 10处理的用户账号分成两组,其中一组继续由zoneid10处理,另一组由新链zoneid 65处理,分组规则为:
1、使用用户账号地址的某一位(假设是第2位)或多位对2进行取模,取模结果为0的由zoneid 10处理,取模结果为1的由新链zoneid 65处理;
2、假设zoneid 10当前区块高度为10000,一秒钟出一个区块,zoneid 10希望5000秒后自动扩链,则我将扩链时的区块高度设置为15000(10000+5000),新链zoneid 65至少要从zoneid 10同步15000及之前的区块,在15000区块以前,原由zoneid 10处理的账号继续由zoneid 10处理,从15001个区块开始,上一步取模为1的账号发送的交易就路由到新链zoneid 65处理。
路由规则为:先对用户地址的后2位对64取模,如果取模结果是10,再对用户地址第二位对2取模,取模结果如果是0,路由到zoneid 10,取模结果是1,则路由到新链zoneid65。
下面对本申请实施例提供的一种区块链扩链***进行介绍,下文描述的一种区块链扩链***与上文描述的一种区块链扩链方法可以相互参照。
参见图4,本申请实施例提供的一种区块链扩链***的结构图,如图4所示,包括:
确定模块401,用于确定待扩展链和所述待扩展链的扩链高度;
创建模块402,用于在区块链***中创建所述待扩展链对应的扩展链;
同步模块403,用于在所述扩展链中同步所述待扩展链中所述扩链高度之前的区块。
本实施例提供的区块链扩链***,当待扩展链需要进行扩链操作时,为该待扩展链建立对应的扩展链,扩展链的区块数据与待扩展链保持一致。在扩链完成前,路由到待扩展链的交易能够正常处理,扩链完成后,待扩展链上的部分请求被路由到扩展链上处理,实现了区块链的扩链操作。
在上述实施例的基础上,作为一种优选实施方式,所述确定模块401包括:
第一确定单元,用于确定待扩展链;
获取单元,用于确定所述待扩展链的当前区块高度和区块增长速度,并获取用户终端设置的所述待扩展链的期望扩链时长;
第二确定单元,用于将所述期望扩链时长和所述区块增长速度的乘积与所述当前区块高度的和确定为所述待扩展链的扩链高度。
在上述实施例的基础上,作为一种优选实施方式,所述区块链***中的区块链节点的数据结构包括所述区块链节点的标识、父节点的扩链高度、扩展链信息、用于计算扩展链的起始位、结束位和取模位数。
在上述实施例的基础上,作为一种优选实施方式,还包括:
接收模块,用于当接收到处理请求时,确定所述处理请求中用户账户对应的目标链;
判断模块,用于判断所述目标链是否存在扩展链且当前区块高度是否达到所述目标链的扩展高度;
第一确定响应链模块,用于当所述目标链存在扩展链且当前区块高度达到所述目标链的扩展高度时,根据所述用户账户确定所述处理请求的响应链,以便所述响应链处理所述处理请求。
在上述实施例的基础上,作为一种优选实施方式,所述接收模块包括:
确定基础链数量单元,用于当接收到处理请求时,确定所述区块链***的基础链数量;其中,所述基础链数量为所述区块链***未进行扩链操作时的区块链数量;
第一取模单元,用于对所述处理请求中的所述用户账户的第一目标位进行所述基础链数量的取模运算;
确定目标链单元,用于根据取模结果确定所述目标链。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第二确定响应链模块,用于若所述目标链不存在扩展链或当前区块高度未达到所述目标链的扩展高度,则将所述目标链作为所述处理请求的响应链。
在上述实施例的基础上,作为一种优选实施方式,所述第一确定响应链模块包括:
第二取模单元,用于确定所述目标链的扩展链数量,并对所述用户账户的第二目标位进行所述扩展链数量加一的取模运算;
确定候选响应链单元,用于根据取模结果确定候选响应链,判断所述候选响应链与所述目标链是否相同;若是,则将所述目标链作为所述响应链;若否,则启动判断单元的工作流程;
判断单元,用于判断所述候选响应链是否存在扩展链;若存在,则将所述候选响应链作为所述目标链,并重新启动判断模块的工作流程;若不存在,则将所述候选响应链确定为所述响应链。
本申请还提供了一种电子设备,该电子设备可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。该电子设备可以是组成CDN网络或者区块链网络的节点。
参见图5,本申请实施例提供的一种电子设备的结构图,如图5所示,可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的硬盘。存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装电子设备的应用软件及各类数据,例如区块链扩链程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,实现上述任一实施例提供的区块链扩链方法,例如执行区块链扩链程序01等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本实施例当待扩展链需要进行扩链操作时,为该待扩展链建立对应的扩展链,扩展链的区块数据与待扩展链保持一致。在扩链完成前,路由到待扩展链的交易能够正常处理,扩链完成后,待扩展链上的部分请求被路由到扩展链上处理,实现了区块链的扩链操作。
在上述实施例的基础上,作为优选实施方式,参见图6,所述电子设备还包括:
输入接口14,用于获取外部导入的计算机程序、参数和指令,经处理器12控制保存至存储器11中。该输入接口14可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘(Keyboard)、触控板或鼠标等。
显示单元15,用于显示处理器12处理的数据以及用于显示可视化的用户界面。该显示单元15可以为LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
网络端口16,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
图6仅示出了具有组件11-16以及区块链扩链程序01的电子设备,本领域技术人员可以理解的是,图6示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。