一种块链式账本中的权重分配方法、装置及设备
技术领域
本说明书实施例涉及信息技术领域,尤其涉及一种块链式账本中的权重分配方法、装置及设备。
背景技术
在服务端以块链式账本对外提供服务时,可能需要多名用户同时对数据记录进行签名。此时,基于业务需要,需要在服务端中加入新的一些监管用户或者监管节点,并对其进行合理的权重分配。
基于此,需要一种在块链式账本中灵活的进行权重分配的方案。
发明内容
本申请实施例的目的是提供一种在块链式账本中灵活的进行权重分配的方案。
为解决上述技术问题,本申请实施例是这样实现的:
一种块链式账本中的权重分配方法,包括:
获取待授权的监管用户,确定所述监管用户所对应的块链式账本;
获取所述块链式账本所对应的签名配置记录,其中,所述签名配置记录包含多个签名用户;
从所述多个签名用户中选取出一个目标签名用户,确定所述目标签名用户的用户权重;
确定在所述用户权重下进行用户操作时所需要的最高的操作指令权重,计算所述用户权重与所述最高的操作指令权重的权重差值;
生成应用于所述块链式账本中的不超过所述权重差值的目标权重,将所述目标权重分配给所述待授权的监管用户,并根据所述目标权重更新所述目标签名用户的用户权重。
对应的,本说明书实施例还提供一种块链式账本中的权重分配装置,包括:
账本确定模块,获取待授权的监管用户,确定所述监管用户所对应的块链式账本;
签名配置记录获取模块,获取所述块链式账本所对应的签名配置记录,其中,所述签名配置记录包含多个签名用户;
用户权重确定模块,从所述多个签名用户中选取出一个目标签名用户,确定所述目标签名用户的用户权重;
权重差值确定模块,确定在所述用户权重下进行用户操作时所需要的最高的操作指令权重,计算所述用户权重与所述最高的操作指令权重的权重差值;
权重分配模块,生成应用于所述块链式账本中的不超过所述权重差值的目标权重,将所述目标权重分配给所述待授权的监管用户,并根据所述目标权重更新所述目标签名用户的用户权重。
通过本说明书实施例所提供的方案,在需要加入监管用户时,通过选取目标签名用户,并根据目标签名用户的权重值和其所需要的操作指令权重确定出权重差值,从而在权重差值的范围内分配相应的目标权重至监管用户,以实现在对监管用户进行有限授权的同时,保证目标签名用户的相关操作不受影响,实现在块链式账本中灵活的进行权重分配。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本说明书实施例所提供的一种块链式账本中的数据块生成方法的流程示意图;
图2为本说明书实施例所提供的一种数据块的块头的示意图;
图3是本说明书实施例提供的一种块链式账本中的权重分配方法的流程示意图;
图4是本说明书实施例提供的一种块链式账本中的权重分配装置的结构示意图;
图5是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
首先对本说明书实施例中所涉及的块链式账本进行简要说明,如图1所示,图1为本说明书实施例所提供的一种块链式账本中的数据块生成方法的流程示意图,该流程具体包括如下步骤:
S101,接收待存储的数据记录,确定各数据记录的哈希值。此处的待存储的数据记录,可以是客户端个人用户的各种消费记录,也可以是应用服务器基于用户的指令,在执行业务逻辑时产生的业务结果、中间状态以及操作记录等等。具体的业务场景可以包括消费记录、审计日志、供应链条、政府监管记录、医疗记录等等。
S103,当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块。
所述预设的成块条件包括:待存储的数据记录数量达到数量阈值,例如,每接收到一千条数据记录时,生成一个新数据块,将一千条数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的数据记录写入块中。
此处的N指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第N个数据块的块高即为N;块高也可以其它方式生成,例如,将数据块的成块时间戳转换为单调递增的大整型数据,以该大整型数据作为数据块的块高。
当N=1时,即此时的数据块为为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含数据记录,哈希值则为任一给定的哈希值,块高blknum=0;又例如,初始数据块的生成触发条件与其它数据块的触发条件一致,但是初始数据块的哈希值由对初始数据块中的所有内容取哈希确定。
当N>1时,由于前一数据块的内容和哈希值已经确定,则此时,可以基于前一数据块(即第N-1个数据块)的哈希值生成当前数据块(第N个数据块)的哈希值。
具体而言,可以确定每一条将要写入第N个块中的数据记录的哈希值,按照在块中的排列顺序,生成一个默克尔树,将默克尔树的根哈希值和前一数据块的哈希值拼接在一起,再次采用哈希算法,生成当前块的哈希值,以及还可以根据默克尔树的根哈希值和其它一些元数据(例如版本号、数据块的生成时间戳等等)生成当前快的哈希值。并且,将所述数据记录写入数据块的块体中,将所述根哈希写入数据块的块头中,其中,数据块的块高基于成块时间的先后顺序单调递增。
块链式账本中的数据块,可以包括块头和块体两个部分。块体中可以用于存储拼接数据的明文,或者拼接数据的哈希值等等;块头中可以用于存储有关本数据块的元数据,例如,账本的版本号,前一数据块的哈希值,自身数据块中的拼接数据所组成的默克尔树的根哈希值,自身数据块的哈希值,用于记录拼接数据的被操作状态的状态数组、自身数据块的块高,生成的时间戳等等。如图2所示,图2为本说明书实施例所提供的一种数据块的块头的示意图。
用户在上传数据成功后,即可以得到对应的数据记录的哈希值以及所处的数据块的哈希值,并保存,并且可以基于该哈希值发起完整性验证。
完整性验证包括对于一个数据块的完整性验证,即,根据数据块中数据记录的哈希值重新组成默克尔树,计算默克尔树的根哈希值,并且根据默克尔树的根哈希值与前一数据块的哈希值重新计算该数据块的哈希值,与事先保存的数据块的哈希值进行一致性对比。
完整性验证还可以包括对于若干连续数据块的完整性验证,即根据数据块的块头中所保存的默克尔树的根哈希值与前一数据块的哈希值重新计算该数据块的哈希值,并与事先保存的数据块的哈希值进行对比。
通过前述的数据块的生成方式,每一个数据块通过哈希值确定,数据块的哈希值由数据块中的数据记录的内容、顺序以及前一数据块的哈希值决定。用户可以随时基于数据块的哈希值或者数据记录的哈希值发起验证,对于数据块中任何内容(包括对于数据块中数据记录内容或者顺序的修改)的修改都会造成在验证时计算得到的数据块的哈希值和数据块生成时的哈希值不一致,而导致验证失败,从而实现了中心化下的不可篡改。
在本说明书实施例中,用户还可以对于自己在数据库中的相关操作和数据记录进行数字签名。例如,用户在服务端中对整个账本进行完整性验证,在验证之后,数据库服务端首先进行签名,并发送包含服务端数字签名的验证结果至用户,而用户则对于该验证结果进行进一步的数字签名,生成同时包含有用户签名和服务端签名的验证结果,并保存至服务端中。
在实际应用中,块链式账本的服务对象(即各用户)可以通过操作指令的形式对块链式账本进行诸如增加、查询、验证、清除等操作。
例如,由于用户的数据不断的增加,导致存储空间占用的越来越多,或者一些较长时间的历史数据对于用户已经不再有价值此时,数据库服务方还可以基于用户的需求,对数据块进行相应的部分清除。部分清除时,可以基于块高或者时间点进行。用户指定账本ID以及块高,服务方基于块高确定块高之前的数据块均为需要清除的数据块,然后清除这些确定需要清除的数据块,具体的,可以由清除指令PURGE(lgid,d-a,blkbound) 实现。
又例如,在实际应用中,有些数据(本文称之为敏感数据)一旦被写入数据块中,就会造成危害性后果。例如,A公司上传的数据中,有一条数据记录中的内容为“叶XX,性别男,身份证号为123456”,该数据记录中的身份证号涉及泄露了用户隐私,需要对其进行隐匿。
一种示例性的隐匿信息指令可以是Occult(blkheight,txoff),在这条指令下,隐匿的是由指定块高blkheight和指定偏移量txoff所对应的一条数据记录。对隐匿信息进行替换或者清除后得到的信息,已经不再作为数据记录使用,可以称为备注信息。在隐匿信息的过程中,一种可行的方式为,确定待隐匿信息所处的数据记录的哈希值,将预设的前标记字符拼接到所述哈希值的首部,将预设的后标记字符拼接到所述哈希值的尾部,并且,将备注信息拼接到所述后标记字符的尾部,然后,将所述前标记字符、所述交易哈希、所述后标记字符以及所述备注信息拼接成的数据确定为所述隐匿化数据记录。
容易理解,不同的用户可能需要分配不同的权限,一种实施方式可以是,对每个用户分配给相应的用户权重,同时对操作指令也给与相应的操作指令权重。若用户权重不低于操作指令权重,即认为该用户有权限执行该操作,否则,不予执行。
例如,对于增加指令(Append),给定操作指令权重20,用户P1的用户权重为25,则,可以知道用户P1有权限执行增加指令。
又例如,对于清除指令(Purge),给定操作指令权重100,若用户P1、P2、P3和P4的用户权重均为25,则需要用户P1、P2、P3和P4的用户权重之和才不低于操作指令权重,即需要四名用户同时同意才可以执行清除指令。
容易理解,对于历史数据记录的清除或者隐匿是一项比较严格的操作。特别在隐匿操作中,其往往象征某些触发法律法规或者违背道德的信息公开,也往往是在多方调节或者审判之后得出需要对信息进行强制处理的结论。因此,在执行上述清除操作时,通常会需要给诸如清除或者隐匿操作需要较高的操作指令权重,以使得需要多方共同的确认才可以实现诸如清除或者隐匿等操作。
在实际应用中,处于业务需要,还往往会临时加入一些具有监管职能的节点。例如,法院或者政府机构需要以监管用户的身份加入到账本中进行账本监管。监管用户本身并不需要对账本进行任何操作,仅仅在账本发生异动时(例如有用户发起清除/隐匿/重置等等操作时)进行确认。
换言之,监管用户需要这样的一种权限:对于账本本身并不能进行诸如增加、验证这样的操作,但是,在对于某些特殊的操作指令时则需要其进行配合,若没有监管用户的配合,很多操作就无法进行。由于每个账本的权重配置是用户可以事先自行确定的,如果不对监管用户进行恰当的权重赋值,将会不利于账本监管的进行。
基于此,本说明书实施例提供一种块链式账本中灵活的进行权重分配的方案,以灵活的分配给监管用户相应的用户权重。
如图3所示,图3是本说明书实施例提供的一种块链式账本中的权重分配方法的流程示意图,该流程具体包括如下步骤:
S301,获取待授权的监管用户,确定所述监管用户所对应的块链式账本。
如前所述,待监管用户通常是具有强制执行力的机构,例如法院或者政府部分等等。其加入账本的目的仅仅是为了对账本中的数据记录进行实时监测,防止多方用户串通。换言之,监管用户不需要在账本中拥有较高的权限,仅需要在某些特殊的操作指令下具有一票否决的权限即可。
具体而言,在块链式账本的服务端中,可以预设一个监管用户。在任何一个块链式账本创建的时候,即将该监管用户作为账本用户中的一员添加至该块链式账本中,并等待其它用户分配权限。在一种实施方式中,也可以是在账本已经创建并且运行一段时间之后,中途创建一个监管用户并加入该账本中,等待权限分配。例如,可以通过创建监管用户和块链式账本的标识的对应关系的形式,确定一名监管用户所需要进行监管的块链式账本。
S303,获取所述块链式账本所对应的签名配置记录,其中,所述签名配置记录包含多个签名用户。
如前所述,在每一个账本中,对于在账本中的各用户已经事先分配了相应的权限。其中,签名用户指的是单个用户就能实行数字签名的用户。
例如,假设机构A、B、C和D分别拥有权重25、25、30和50,单个用户进行数字签名所需要的权重为28,则可以知道C和D可以单独实行数字签名,即为签名用户。
用户权重和操作指令权重通常均会以配置文件的形式存储于服务端相应的配置文件中。例如,在一种实施方式中,可以将用户权重和用户标识存储在用于用户权限配置文件中,而将操作指令权重存储在服务端的系统配置文件中,在需要时可以联合前述两个配置文件查询得到签名用户;在另一中实施方式中,则可以在签名配置记录中可以直接记载具有单独签名权限的签名用户,以及,确定签名用户的数量,并写入签名配置记录中。
S305,从所述多个签名用户中选取出一个目标签名用户,确定所述目标签名用户的用户权重。
目标签名用户指的是需要对监管用户进行权重分配的签名用户。目标签名用户的用户权重可以从前述的用户权重配置文件中查询得到,或者从前述的签名配置记录中查询得到。权重分配指的是从目标签名用户中分离一部分权重至监管用户中。
具体而言,可以有多种方式确定出目标签名用户。例如,从所述多个签名用户中随机选取一个签名用户作为目标签名用户。采用随机选取的方式可以提高目标签名用户的选取效率。
在一种实施方式中,还可以分别比较各签名用户的用户权重,并且将用户权重最高的签名用户确定为目标签名用户。
在一种实施方式中,还可以确定每个签名用户的权重差值,将权重差值最大的签名用户确定为目标签名用户。权重差值指的是用户操作时所需要的最高的操作指令权重与用户权重的差值。
例如,假设账本中一名管理员的用户权重为80,其可以进行如下操作:增加(操作权重25)、查询(操作权重25)、签名(操作权重30)、验证(操作权重50)、创建用户(权重75)等等。从而可以知道用户权重为80,该管理员的最高的操作指令权重为75,从而权重差值=80-75=5。
如果账户中的另一普通签名用户的用户权重为80为35,则可以知道该普通签名用户的权重差值=35-25=10。
在这种实施方式下,具有该普通签名用户将会被选中为目标签名用户,即
具有较大的权限分配空间的用户将会被选中为目标签名用户。
S307,确定在所述用户权重下进行用户操作时所需要的最高的操作指令权重,计算所述用户权重与所述最高的操作指令权重的权重差值。权重差值的计算方式在前文已经进行了描述,此处不再赘述。
S309,生成应用于所述块链式账本中的不超过所述权重差值的目标权重,将所述目标权重分配给所述待授权的监管用户,并根据所述目标权重更新所述目标签名用户的用户权重。
具体而言,即可以根据权重差值生成一个权重分配区间,例如,生成一个从(0,权重差值)的权重分配区间,并且从中任一的挑选一个数值作为目标权重即可。例如,选取最小的正整数为目标权重(即,1);或者,选取权重差值的一半为目标权重等等;或者从区间中随机选取一个数值为目标权重等等。
需要说明的是,由于,在没有监管用户之前,签名用户本身已经可以通过联合签名的形式来完成特定操作指令的执行。此时,为了不影响后续通过联合签名的形式来完成特定操作指令的执行,此时,还需要降低所述目标签名用户的用户权重。具体而言,即计算所述目标签名用户的用户权重与所述目标权重的差值,将所述差值确定为所述目标签名用户更新后的用户权重。
续前例而言,假设目标签名用户的用户权重为80,目标权重被确定为1,则此时,还需要计算所述目标签名用户的用户权重80与所述目标权重1的差值79,并且将目标签名用户更新后的用户权重确定为79。通过前述的权重分配方式,一方面不会影响目标签名用户对于单个操作指令的执行(即更新后的用户权重仍将大于该用户最大的操作指令权重),另一方面在加入了监管用户之后也不会影响后续的需要联合签名的操作执行的执行。
通过本说明书实施例所提供的方案,在需要加入监管用户时,通过选取目标签名用户,并根据目标签名用户的权重值和其所需要的操作指令权重确定出权重差值,从而在权重差值的范围内分配相应的目标权重至监管用户,以实现在对监管用户进行有限授权的同时,保证目标签名用户的相关操作不受影响,实现在块链式账本中灵活的进行权重分配。
在一种实施方式中,在签名配置记录中不仅包含了各签名用户,还同时包含了签名用户的数量N。由于数量N可能是基于权重配置文件中的用户权查询得到的,而监管用户的权重可能不符合其要求。例如,在权重配置文件中,可能认为用户权重不低于30才被认可为签名用户,而监管用户往往权重都较低而不会被认可为签名用户。则此时,需要在将所述待授权的监管用户写入所述签名配置记录,并且,根据所述待授权的监管用户的数量M,更新所述当前签名用户数量为N+M。
进而,如果任一用户发起诸如清除、隐匿或者重置等等需要联合签名的操作指令时,服务端则可以基执行如下的签名阈值权重检测,接收任一签名用户所发送的联合签名请求;将所述联合签名请求发送至所述签名配置记录中所包含的每一签名用户;接收签名用户所返回的对于所述联合签名请求的确认信息;监测返回确认信息的签名用户的权重之和,当所述权重之和不低于所述签名权重阈值时,生成联合签名,以执行前述需要联合签名的操作指令。
在一种实施方式中,服务端不但可以要求各签名用户的权重之和不低于签名权重阈值,还可以要求签名用户的数量也要符合要求。具体而言,在签名配置记录中存储了当前签名用户数量,那么则可以要求返回确认信息的签名用户的数量是否等于当前签名用户数量,如果等于,才进行联合签名,并执行前述需要联合签名的操作指令,否则,不予执行。通过前述的权重之和严格相等,可以最大限度的实现有效监管。
例如,假设对于机构A、B、C和D的联合账本中,已经每人都赋予了用户权重25,签名权重为20,并且在执行清除或者隐匿类操作时需要各签名用户权重之和严格等于100,当前签名用户数量为4。这样通过A、B、C和D的联合授权,则可以实现清除或者隐匿类操作。
现在需要加入一名监管用户,并且尽量较少改变账本中的配置,维持签名用户权重之和严格等于100。则此时,可以随机选取一个目标签名用户,并且确定出权重差值为5,从而可以从区间(0,5)之间随机选取一个数字作为监管用户的目标权重,例如,随机选取为1.1,并且将目标签名用户的权重根据目标权重降低为23.9。并且在监管用户的权重确定之后,在签名配置记录中将当前签名用户数量修改为5。如果需要加入多名监管用户,则可以针对每一个监管用户均执行前述流程即可。
这样一方面不会影响目标签名用户的业务操作,另一方面,在进行联合签名时则可以严格的保证签名用户权重之和严格等于100,且当前签名用户数量为5。由于目标权重的选取是基于目标签名用户的权重差值随机得到的,所以实际上也很难被其他用户得知以及伪造。通过前述方式单独的监管用户无法执行任何业务操作,而如果没有监管用户,即使有更多的签名用户加入进来也无法实现联合签名,确保在账本中进行特殊操作时无法绕开监管用户,保障了监管用户的监管能力。
对应的,本说明书实施例还提供一种块链式账本中的权重分配装置,如图4所示,图4是本说明书实施例提供的一种块链式账本中的权重分配装置的结构示意图,包括:
账本确定模块401,获取待授权的监管用户,确定所述监管用户所对应的块链式账本;
签名配置记录获取模块403,获取所述块链式账本所对应的签名配置记录,其中,所述签名配置记录包含多个签名用户;
用户权重确定模块405,从所述多个签名用户中选取出一个目标签名用户,确定所述目标签名用户的用户权重;
权重差值确定模块407,确定在所述用户权重下进行用户操作时所需要的最高的操作指令权重,计算所述用户权重与所述最高的操作指令权重的权重差值;
权重分配模块409,生成应用于所述块链式账本中的不超过所述权重差值的目标权重,将所述目标权重分配给所述待授权的监管用户,并根据所述目标权重更新所述目标签名用户的用户权重。
进一步地,所述用户权重确定模块405,包括:从所述多个签名用户中随机选取一个签名用户作为目标签名用户;或者,确定每个签名用户的用户权重,将用户权重最高的签名用户确定为目标签名用户;或者,确定每个签名用户的权重差值,将权重差值最大的签名用户确定为目标签名用户。
进一步地,所述权重分配模块409,计算所述目标签名用户的用户权重与所述目标权重的差值,将所述差值确定为所述目标签名用户更新后的用户权重。
进一步地,所述签名配置记录中还包括当前签名用户数量N;相应的,所述装置还包括写入模块411,将所述待授权的监管用户写入所述签名配置记录,并且,根据所述待授权的监管用户的数量M,更新所述当前签名用户数量为N+M。
进一步地,所述装置还包括签名模块413,接收任一签名用户所发送的联合签名请求;将所述联合签名请求发送至所述签名配置记录中所包含的每一签名用户;接收签名用户所返回的对于所述联合签名请求的确认信息;监测返回确认信息的签名用户的权重之和,当所述权重之和不低于所述签名权重阈值时,生成联合签名。
进一步地,当签名配置记录中包含当前签名用户数量时,所述签名模块413,验证返回确认信息的签名用户的数量是否等于所述当前签名用户数量,若否,不进行联合签名。
进一步地,所述装置还包括数据块生成模块415,接收用户所发送的待存储的数据记录,确定所述数据记录的哈希值;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块:当N=1时,初始数据块的哈希值和块高基于预设方式给定;当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
进一步地,在所述装置中,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图3所示的权重分配方法。
图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图3所示的权重分配方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。