业务数据存储方法、装置、存储介质及电子设备与流程

文档序号:12034751阅读:236来源:国知局
业务数据存储方法、装置、存储介质及电子设备与流程

本发明涉及网络技术领域,特别涉及一种业务数据存储方法、装置、存储介质及电子设备。



背景技术:

随着网络技术的发展,网络带宽得到大幅优化,网络业务趋于多样化,服务器能够为用户提供丰富的业务并快捷地为用户处理所需业务。

在处理用户的业务数据的过程中,为了备份本次业务处理过程,当接收到用户的业务数据时,服务器可以将业务数据存储到一条区块链中。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

由于区块链的数据结构是按照时间顺序相连的区块,服务器需要串行地将业务数据存储到该区块链中,导致服务器的运行效率低。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种业务数据存储方法、装置、存储介质及电子设备。采用多条区块链存储业务数据的方式,基于各个区块链的区块生成过程互不影响的特征,能够并行地在各个区块链上处理大量用户的业务数据,提高了服务器的运行效率。所述技术方案如下:

第一方面,提供了一种业务数据存储方法,所述方法包括:

接收用户的业务数据;

根据所述用户的用户属性,从多条区块链中确定与所述业务数据对应的目标区块链;

基于所述业务数据以及所述目标区块链中第一区块的区块头特征值,在所述目标区块链上生成第二区块,所述第一区块为所述第二区块的上一个区块,所述第二区块用于记录所述业务数据。

第二方面,提供了一种业务数据存储装置,所述装置包括:

接收模块,用于接收用户的业务数据;

确定模块,用于根据所述用户的用户属性,从多条区块链中确定与所述业务数据对应的目标区块链;

存储模块,用于基于所述业务数据以及所述目标区块链中第一区块的区块头特征值,在所述目标区块链上生成第二区块,所述第一区块为所述第二区块的上一个区块,所述第二区块用于记录所述业务数据。

第三方面,提供了一种存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述第一方面中任一种可能实现方式的业务数据存储方法。

第四方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述第一方面中任一种可能实现方式的业务数据存储方法。

本发明实施例通过在一个服务器或一个业务数据处理系统中配置多条区块链,可以将相同用户属性的用户的业务数据存储到与一条区块链中,进而使得多条区块链上可以分别存储有不同用户属性的用户的业务数据,一方面,由于各个区块链在生成区块的过程互不影响,即使短期内接收到大量用户的业务数据,也能按照用户属性将业务数据分流至各个区块链中,进而并行地在各个区块链中存储业务数据,使得服务器的性能不再受限于区块链的链式结构,提高了服务器的运行效率。另一方面,能够针对性地分析一类用户群的业务数据,且相同用户属性的用户往往在业务数据上具有相似性,因此依据用户属性也可以更方便地处理业务数据。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种业务数据处理系统的示意图;

图2是本发明实施例提供的一种业务数据存储方法的流程图;

图3是本发明实施例提供的一种业务请求处理流程图;

图4是本发明实施例提供的一种业务数据存储装置的框图;

图5a是本发明实施例提供的一种业务数据存储装置的框图;

图5b是本发明实施例提供的一种业务数据存储装置的框图;

图6是本发明实施例提供的一种电子设备600的框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种业务数据处理系统的示意图,如图1所示,该业务数据处理系统可以由多个子系统构成,每个子系统可以按照业用户的用户属性配置有多条区块链,任两个子系统之间可以配置相同的一条区块链,使得配置有同一区块链的多个子系统可以针对该区块链所存储的业务数据达成共识,并基于业务数据为用户提供服务。

例如,该业务数据处理系统可以为支付业务数据处理系统,该支付业务数据处理系统包括子系统101、子系统102、子系统103和子系统104。该子系统101可以包括网络服务商部署的节点1011、节点1012和节点1013,这三个节点分别配置有区块链a、区块链b和区块链c;该子系统102可以包括银行x部署的节点1021、节点1022和节点1023,这三个节点分别配置有区块链a、区块链b和区块链c;该子系统103可以包括银行y部署的节点1031、节点1032和节点1033,这三个节点分别配置有区块链a、区块链b和区块链c;该子系统104可以包括监管机构部署的节点1041、节点1042和节点1043,这三个节点分别配置有区块链a、区块链b和区块链c。当然,各个子系统也可以由同一个服务机构部署,每个节点可以被提供为一个服务器。

其中,区块链a、区块链b和区块链c所存储的业务数据对应的用户属性各不相同,如,区块链a用于存储用户属性为a1的用户的业务数据和用户属性为a2的用户的业务数据,区块链b用于存储用户属性为b的用户的业务数据,区块链c用于存储用户属性为c的用户的业务数据。本发明实施例可以采用多种用户属性来划分各个区块链,例如,当前的用户位置、用户登录的用户设备或用户等级等,以用户位置划分区块链为例,a1可以为地区1,a2可以为地区2,b可以为地区3,c可以为地区4,也就是说,区块链a可以存储位于地区1和地区2的用户的业务数据,区块链b可以存储位于地区3的用户的业务数据,区块链c可以存储位于地区4的用户的业务数据。事实上,为了便于多个服务机构之间共享数据,该多个子系统之间配置的多条区块链中也可以包括一条共享区块链,该共享区块链用于存储多个服务机构之间共享的业务数据,例如,该区块链a为共享区块链,除了可以存储位于地区1的用户的业务数据,也可以存储位于地区2的用户的业务数据,且对于不能确定具体位置的用户的业务数据,也可以存储到该共享区块链中。

本发明实施例中,该多条区块链可以均为至少一个服务机构提供数据服务。例如,区块链a、区块链b和区块链c均为网络服务商、银行x、银行y和监管机构提供数据服务。或者,多条区块链可以为至少一个第一服务机构提供数据服务,多条区块链中的部分区块链为至少一个第一服务机构和至少一个第二服务机构提供数据服务,例如,银行y未配置区块链c,其他服务机构的配置不变,则该至少一个第一服务机构可以为网络服务商、银行x和监管机构,区块链a、区块链b和区块链c均可以为这三个服务机构提供数据服务;该至少一个第二服务机构为银行y,区块链a和区块链b均可以为网络服务商、银行x、监管机构和银行y提供数据服务。也就是说,一个机构部署的子系统上可以配置多条区块链中的部分或者全部,进而基于子系统上所配置的区块链进行数据存储、数据查询等操作。

在实际的应用场景中,每个子系统还可以包括至少一个逻辑节点,该逻辑点与其所在子系统中的各个节点之间设置有网络连接,用于接收用户的业务数据,并按照该用户的用户属性将该业务数据转发给该子系统中对应的节点。该子系统中配置区块链的节点用于将接收到的业务数据存储至区块链中,并基于该业务数据进行响应。本发明实施例中,每条区块链对应的多个节点可以独立运行,任两条区块链对应的节点互不影响,如,在当前时刻,节点1011为运行于领导状态的节点,用于指示区块链a对应的运行于跟随状态的节点如何工作;节点1022也为运行于领导状态的节点,用于指示区块链b对应的运行于跟随状态的节点。在区块链a的选举过程中,运行于领导状态的节点正在发生切换,但并不影响其他区块链对应的节点如何工作,如,此时区块链b对应的节点可能正在基于领导状态的节点正常工作。

在业务数据处理过程中,以节点1011接收到用户的业务数据为例,节点1011可以将该业务数据重定向至配置有区块链a、且运行于领导状态的节点(假设为1021),由1021向配置有区块链a的各个节点广播业务数据存储请求,该业务数据存储请求用于请求将该业务数据存储至区块链a中,如果节点1021可以接收到区块链a对应的所有节点中预设数量的节点对该业务数据存储请求的确认消息,则可以将该业务数据存储至自身的区块链a中,基于该业务数据对用户进行响应,并向该各个节点广播业务数据存储指令,使得区块链a对应的各个节点将该业务数据也存储至自身的区块链a中。其中,预设数量是指已配置的达成共识所要求的节点数量,本发明实施例不限定该预设数量的具体值,例如,以区块链基于pbft(practicalbyzantinefaulttolerancealgorithm,拜占庭容错共识算法)为例,一条区块链对应的全部节点数量为3f+1,则预设数量可以为大于等于2f+1小于等于3f+1的数值,f为任意正整数。

需要说明的是,上述子系统也可以为一个节点,也即是,可以在该一个节点上配置有多条区块链,并执行一个子系统所执行的功能。

图2是本发明实施例提供的一种业务数据存储方法的流程图,该方法可以应用于图1所示的业务数据处理系统中的任一子系统,以该子系统为服务器为例,包括以下步骤:

201、服务器接收用户的业务数据。

该业务数据是指基于用户所需业务生成的数据。在实际的应用场景中,该业务数据可以有多种形式,如,该业务数据可以为用户对某一业务的发起请求、用户对该业务的确认请求、用户需要上传至服务器的本地数据或用户输入数据等。以支付业务的应用场景为例,用户a向用户b转账时,该业务数据可以是用户a发起的转账请求、用户b的确认转账请求,也可以是用户a上传的用于支付转账金额的支付密码。

为了进一步提高业务数据处理过程的安全性,避免接收到恶意用户伪装成正常用户发来的业务数据,可以验证发送业务数据的用户身份。因此,该步骤也可以具体为:服务器接收业务数据包;从业务数据包中获取业务数据和用户对业务数据的签名。该业务数据包是指用户发送的完整数据,该签名可以是用户所在设备基于用户私钥对业务数据的签名,使得服务器能够基于与该用户私钥配对的用户公钥对该签名进行验证,具体地,服务器可以采用该用户公钥解析签名,得到摘要信息,并按照与用户侧约定的算法计算出业务数据的摘要信息,将两个摘要信息进行匹配,如果匹配成功,则确定该签名验证通过,进行步骤202,如果匹配失败,则确定该签名验证失败,说明该业务数据很可能来自于恶意用户或经过了恶意用户的篡改,则服务器可以忽略该业务数据,或者将该业务数据存储至黑名单业务数据库,该黑名单业务数据库用于存储恶意用户操作过的业务数据。

需要说明的是,接收业务数据的设备也可以是图1所示的逻辑节点。

202、服务器根据用户的用户属性,从多条区块链中确定与业务数据对应的目标区块链。

该步骤中,目标区块链是指本次用于存储该业务数据的区块链。由于用户属性可以表现用户的特征,同一用户属性的多个用户可以作为一类用户群,为了针对性地分析一类用户群的业务数据,可以将同一用户属性的用户的业务数据确定到一条区块链上。而且,相同用户属性的用户往往在业务数据上具有相似性,因此依据用户属性可以更方便地处理业务数据。例如,用户a的用户属性值为x1,用户b的用户属性为x2,用户c的用户属性为x1,因此可以将相同属性的用户a和用户c的业务数据确定到一条区块链上,将用户b的业务数据确定到另一条区块链上。

具体地,服务器可以获取用户的用户属性,根据该用户的用户属性查询预设对应关系,判断预设对应关系中是否存在与该用户的用户属性匹配的区块链,如果是,将与该用户的用户属性匹配的区块链确定为目标区块链,该预设对应关系用于指示用户属性与区块链的对应关系,该预设对应关系可以人工地预先配置在服务器上。本发明实施例对预设对应关系不做具体限定。例如,参见表1所示的预设对应关系:

表1

上述确定过程中,服务器可以根据用户的用户属性,在预设对应关系中查询是否存在与该用户的用户属性相同的用户属性,如果是,则获取该相同的用户属性对应的区块链标识,确定出目标区块链。

事实上,为了减少服务器侧的参数配置,提高服务器查询预设对应关系的效率并减少对存储空间的占用,服务器所配置的预设对应关系也可以不涵盖用户属性的所有可能取值,而是根据服务需求配置几个用户属性值与区块链的对应关系(如,用户属性取值范围为国内的各个地区,但按照服务需求配置地区a和地区b分别对应的区块链即可),对于未配置对应用户属性的区块链,可以将用户的业务数据默认存储至共享区块链,也即是,如果不存在与该用户的用户属性匹配的区块链,服务器可以将多条区块链中的共享区块链确定为目标区块链。或者,为了备份已接收到的业务数据,避免用户抵赖或篡改业务处理流程,如果服务器获取某一用户的用户属性失败,也可以将该业务数据存储至共享区块链。

需要说明的是,确定目标区块链的设备也可以是图1所示的逻辑节点,进而由该逻辑节点将该业务数据转发至其所在子系统中存储该目标区块链的节点。对于逻辑节点来说,可以由节点标识来标识一个区块链,因此逻辑节点所配置的预设对应关系的形式可以为数据类型和节点标识的对应关系。

在获取用户属性时,服务器既可以从业务数据包中获取用户属性,也可以根据用户的用户标识查询对应的用户属性。进而,可以根据获取的用户属性确定目标区块链。本发明实施例对采用哪一种用户属性进行确定不做具体限定,例如,具体确定方式可以参见以下确定方式1-确定方式4:

确定方式1、根据第一确定方式,服务器将匹配用户的用户位置的区块链确定为与业务数据对应的目标区块链。

该确定方式中,用户位置是指用户所在的地理位置。服务器可以采用多种方法获取用户位置,例如,从业务数据包中提取出用户的用户位置;或者,根据业务数据包中的网络地址,获取该网络地址对应的用户位置;或者,根据该用户的用户标识,获取该用户最近上报的用户位置;或者根据该用户的用户标识,获取该用户的常用位置作为该用户的用户位置。进而,服务器可以在预设对应关系中查询是否存在该用户的用户位置匹配的区块链,如果是,则将配置的区块链确定为与目标区块链。其中,服务器可以将用户上报的用户位置存储到已配置的用户数据库中,使得服务器可以分析出已上报的用户位置中数量最多的用户位置作为用户的常用位置。该用户位置在存储时可以附带当前的时间戳,以方便服务器按照时间戳获取用户最近上报的用户位置。

在采用用户位置这一用户属性时,该预设对应关系可以为地理位置与区块链标识之间的对应关系,如,地区a对应区块链a,地区b对应区块链b。

通过将与用户的用户位置匹配的区块链作为目标区块链,相同用户位置的用户的业务数据可以确定到同一区块链中,进而可以针对性地对同一地区的用户的业务数据进行分析,从而制定该地区的运营策略。当然,为了尽可能缩短交互所需的路由距离,高效地为该地区的用户提供服务,同时减少不同区块链对应用户之间的交互,使业务数据处理过程更简便,对于每条区块链,可以将配置该区块链的服务器部署在该区块链对应的地区。

确定方式2、根据第二确定方式,服务器将匹配用户的用户设备的区块链确定为与业务数据对应的目标区块链。

该确定方式中,用户设备是指用户登录的设备,如手机、平板电脑或台式电脑等,进一步地,还可以具体到哪个品牌的设备,如品牌a的手机、品牌b的手机。服务器可以从业务数据包中确定用户登录的用户设备,进而确定与该用户设备匹配的目标区块链。在采用用户设备这一用户属性时,该预设对应关系可以为用户设备类型与区块链标识之间的对应关系,如,品牌a的手机对应区块链a,品牌b的手机对应区块链b,台式电脑对应区块链c。

通过将与用户的用户设备匹配的区块链作为目标区块链,使用同类用户设备的用户的业务数据可以确定到同一区块链中,进而可以针对性地对使用同类设备的用户的业务数据进行分析,从而制定相应手机用户群、品牌用户群或固定端台式电脑用户群的运营策略。

确定方式3、根据第三确定方式,服务器将匹配用户的用户等级的区块链确定为与业务数据对应的目标区块链。

其中,该用户等级可以为用户征信等级、用户会员等级或用户经验等级等,用户征信等级用于指示用户的信用高低,用户会员等级用于指示用户在应用中的使用功能权限,用户经验等级用于指示用户使用应用的程度。服务器可以根据该用户的用户标识,从公安机关或金融机构的征信数据库获取该用户征信等级;根据该用户标识从用户数据库中获取用户会员等级或用户经验等级。具体以哪一种用户等级作为确定依据本发明实施例不做限定,可以视服务器的服务需求人工决策。例如,提供金融应用或租赁应用的服务器可以采用用户征信等级;提供社交应用或多媒体资源应用的服务器可以采用用户会员等级;提供社交应用或游戏应用的服务器可以采用用户经验等级。在采用用户等级这一用户属性时,该预设对应关系可以为用户等级值与区块链标识之间的对应关系,如,用户征信等级1对应区块链a,用户征信等级2对应区块链b。

通过将与用户的用户等级匹配的区块链作为目标区块链,同一用户等级的用户的业务数据可以确定到同一区块链中,进而可以针对性地对相同用户等级的用户的业务数据进行分析,从而制定相应每个用户等级的用户群的运营策略。

确定方式4、根据第四确定方式,服务器将匹配用户的用户账号的区块链确定为与业务数据对应的目标区块链。

考虑到合作的多个服务器之间可以采用合作账号机制,也即是,即使用户没有在服务器a上注册账号,但可以采用在已注册的服务器b上的账号登录该服务器a,因此,服务器可以获取业务数据包中的用户账号,并确定该用户的用户账号归属的服务器,如,依据每个服务器提供的账号格式进行确定,将与该归属的服务器对应的区块链确定为目标区块链。在采用用户账号这一用户属性时,该预设对应关系可以为服务器标识与区块链之间的对应关系,如,该服务器1对应区块链a,该服务器的合作服务器2对应区块链b。

通过将与用户的用户账号匹配的区块链作为目标区块链,归属于同一服务器的用户的业务数据可以确定到同一区块链中,进而可以针对性地对某一服务器所服务用户的业务数据进行分析,从而制定相应该服务器的用户群的运营策略。

需要说明的是,对于需要用户上报的用户属性或者服务器查询的用户属性,为了便于后续高效地为该用户确定目标区块链,服务器也可以在确定该用户的业务数据对应的目标区块链之后,存储该用户与该目标区块链的对应关系,使得再次接收到该用户的业务数据时,可以直接根据该用户的用户标识,从已存储的对应关系中查询到目标区块链,而无需用户上报或服务器查询用户属性后再次查询预设对应关系。

203、服务器基于业务数据以及目标区块链中第一区块的区块头特征值,在目标区块链上生成第二区块,第一区块为第二区块的上一个区块,第二区块用于记录业务数据。

该步骤中,服务器可以从目标区块链中获取第一区块的区块头中的所有信息,并基于该第一区块的区块头中的所有信息得到第一区块的区块头特征值,并对将要存入第二区块的区块主体中的业务数据进行特征值计算,得到第二区块的区块主体特征值,进而,将第一区块的区块头特征值、第二区块的区块主体特征值(还可以包括版本号、难度值和时间戳)存储至第二区块的区块头;将业务数据存储至第二区块的区块主体,生成该第二区块,使得第二区块与第一区块通过第一区块的区块头特征值相关,因而实现了将区块链中的区块串联起来的目的,使得对区块中任何信息(包括业务数据)的篡改,均能够通过区块的区块头中所存储的上一个区块的区块头特征值的追溯而检测到,从而保证了业务数据的安全。

需要说明的是,将业务数据存储至目标区块链的可以是子系统中配置该目标区块链的节点,当该节点接收到逻辑节点转发的业务数据时,可以将该业务数据发送至该目标区块链对应的运行于领导状态的节点(简称领导节点),由该领导节点广播业务数据存储请求至该目标区块链对应的各个节点,如果领导节点能够接收到各个节点中预设数量的节点对该业务数据存储请求的确认消息,则可以将该业务数据存储至自身的目标区块链中,基于该业务数据对用户进行响应,并向该各个节点广播业务数据存储指令,使得目标区块链对应的各个节点(包括该节点)可以将该业务数据存储至自身的目标区块链中。其中,每个节点在发送确认消息时也发送该节点采用私钥对该确认消息的签名,使得领导节点能够将接收到的签名携带在业务数据存储指令中,进而使得接收到业务数据存储指令的节点可以通过签名对业务数据存储指令进行验证,如果签名的数量符合预设数量,且每个签名均通过对应节点的公钥验证通过,则可以将业务数据存储指令中携带的业务数据存储至自身的目标区块链中。

参见图3,本发明实施例提供了一种业务请求处理流程图,该处理流程中,由逻辑节点接收用户的业务请求,并按照已配置的预设对应关系,选择与该用户对应的区块链,并将业务请求路由至配置该区块链的本地节点,由该本地节点将业务请求转发至配置该区块链的领导节点,直到领导节点接收到配置该区块链的各个节点中预设数量的节点对存储业务请求的确认消息,可以确认该区块链对该业务请求达成共识,可以对该业务请求进行响应,将响应消息发送至本地节点,本地节点将响应消息发送至逻辑节点,进而由逻辑节点将响应消息返回给终端。

本发明实施例通过在一个服务器或一个业务数据处理系统中配置多条区块链,可以将相同用户属性的用户的业务数据存储到与一条区块链中,进而使得多条区块链上可以分别存储有不同用户属性的用户的业务数据,一方面,由于各个区块链在生成区块的过程互不影响,即使短期内接收到大量用户的业务数据,也能按照用户属性将业务数据分流至各个区块链中,进而并行地在各个区块链中存储业务数据,使得服务器的性能不再受限于区块链的链式结构,提高了服务器的运行效率。例如,在产权登记业务的处理过程中,基于一条区块链可以处理十万人的业务请求,而基于十条区块链可以处理一百万人的业务请求。另一方面,能够针对性地分析一类用户群的业务数据,且相同用户属性的用户往往在业务数据上具有相似性,因此依据用户属性也可以更方便地处理业务数据。

而且,由于区块链中前后区块之间相关联,使得区块中任一业务数据被篡改时都能通过下一区块检测到,避免了恶意用户篡改或抵赖处理过的业务数据,也保证了业务数据的安全性。

在实际的应用场景中,根据当前的业务需求,服务器所配置的区块链也可能更新,更新的情况可能有多种,本发明实施例以下述四种情况举例说明:

情况1、当服务器接收到第一更新指令时,基于第一更新指令更新已配置的用户属性与待配置的区块链的对应关系。

其中,第一更新指令携带已配置的用户属性和待配置的区块链标识。当接收到第一更新指令后,服务器可以从第一更新指令中提取出这两项数据,并在预设对应关系中查询是否存在与这两项数据中任一项数据相同的数据,如果存在与已配置的用户属性相同的用户属性,但不存在与该待配置的区块链标识相同的区块链标识,则可以将该已配置的用户属性对应的区块链修改为待配置的区块链。

情况2、当服务器接收到第二更新指令时,基于第二更新指令更新已配置的用户属性与已配置的区块链的对应关系。

其中,第二更新指令携带已配置的用户属性和已配置的区块链标识。当接收到第二更新指令后,服务器可以从第二更新指令中提取出这两项数据,并在预设对应关系中查询是否存在与这两项数据中任一项数据相同的数据,如果存在与已配置的用户属性相同的用户属性,且存在与该待配置的区块链标识相同的区块链标识,则可以删除该已配置的用户属性与原区块链的对应关系,并将该已配置的用户属性添加为该已配置的区块链对应的用户属性。

情况3、当服务器接收到第三更新指令时,基于第三更新指令更新待配置的用户属性与待配置的区块链的对应关系。

其中,第三更新指令携带待配置的用户属性和待配置的区块链标识。当接收到第三更新指令后,服务器可以从第三更新指令中提取出这两项数据,并在预设对应关系中查询是否存在与这两项数据中任一项数据相同的数据,如果不存在与待配置的用户属性相同的用户属性,也不存在与该待配置的区块链标识相同的区块链标识,可以添加一条待配置的用户属性与待配置的区块链的对应关系。

情况4、当接收到第四更新指令时,基于第四更新指令更新待配置的用户属性与已配置的区块链的对应关系。

其中,第四更新指令携带待配置的用户属性和已配置的区块链标识。当接收到第四更新指令后,服务器可以从第四更新指令中提取出这两项数据,并在预设对应关系中查询是否存在与这两项数据中任一项数据相同的数据,如果不存在与待配置的用户属性相同的用户属性,但存在与已待配置的区块链标识相同的区块链标识,可以将该待配置的用户属性添加为该已配置的区块链对应的用户属性。

需要说明的是,在更新该服务器上的用户属性和区块链的对应关系时,为了保证整个业务数据处理系统能够正常工作,涉及被更新的用户属性或被更新的区块链的其他服务器也会进行同步的更新过程。

上述更新过程以添加地区c这一用户属性为例,假设地区c待对应的区块链与已配置的地区b对应的区块链相同,则运营人员可以触发第四更新指令,使得服务器可以基于接收到的第四更新指令进行更新。

通过对用户属性和区块链进行更新,可以按照当前的业务需求将新一类用户群的业务数据存储到新的区块链中;也可以将新一类用户群的业务数据存储到已配置的区块链中;也可以根据变化的服务需求,将已配置的用户属性与新的区块链对应;还可以变更已配置的用户属性与已配置的区块链的对应关系,从而能够灵活地控制业务数据的存储方式。

在上述更新过程中,为了避免正在变化的用户属性与区块链的对应关系影响正常的业务数据处理过程,服务器可以在接收到更新指令时,停止处理该更新指令对应的区块链上业务数据的存储过程;直到完成已执行的合约且接收到更新完成消息时,按照更新后的预设对应关系存储业务数据。其中,合约是指运行在区块链上的代码,用于指示如何处理业务数据。由于接收到更新指令时可能正在执行某些合约,因此为了避免更新后合约无法正常执行,可以等待已执行的合约执行完成,再开始处理区块链或用户属性更新后的业务数据。

图4是本发明实施例提供的一种业务数据存储装置的框图。参见图4,该装置具体包括:

接收模块401,用于接收用户的业务数据;

确定模块402,用于根据用户的用户属性,从多条区块链中确定与业务数据对应的目标区块链;

存储模块403,用于基于业务数据以及目标区块链中第一区块的区块头特征值,在目标区块链上生成第二区块,第一区块为第二区块的上一个区块,第二区块用于记录业务数据。

本发明实施例通过在一个服务器或一个业务数据处理系统中配置多条区块链,可以将相同用户属性的用户的业务数据存储到与一条区块链中,进而使得多条区块链上可以分别存储有不同用户属性的用户的业务数据,一方面,由于各个区块链在生成区块的过程互不影响,即使短期内接收到大量用户的业务数据,也能按照用户属性将业务数据分流至各个区块链中,进而并行地在各个区块链中存储业务数据,使得服务器的性能不再受限于区块链的链式结构,提高了服务器的运行效率。另一方面,能够针对性地分析一类用户群的业务数据,且相同用户属性的用户往往在业务数据上具有相似性,因此依据用户属性也可以更方便地处理业务数据。

在一种可能实现方式中,确定模块402用于:

根据用户的用户属性查询预设对应关系,预设对应关系用于指示用户属性与区块链的对应关系;如果预设对应关系中存在与用户的用户属性匹配的区块链,将与用户的用户属性匹配的区块链确定为目标区块链。

在一种可能实现方式中,确定模块402还用于:

如果不存在与用户的用户属性匹配的区块链,将多条区块链中的共享区块链确定为目标区块链,共享区块链用于存储多个服务机构之间共享的业务数据。

在一种可能实现方式中,基于图4的装置组成,参见图5a,该装置还包括:

接收模块401,用于接收业务数据包;

获取模块404,用于从业务数据包中获取业务数据和用户对业务数据的签名;

确定模块402,用于如果对业务数据的签名验证通过,根据用户的用户属性,从多条区块链中确定与业务数据对应的目标区块链。

在一种可能实现方式中,基于图4的装置组成,参见图5b,该装置还包括:

更新模块405,用于当接收到第一更新指令时,基于第一更新指令更新已配置的用户属性与待配置的区块链的对应关系;或,

更新模块405,用于当接收到第二更新指令时,基于第二更新指令更新已配置的用户属性与已配置的区块链的对应关系;或,

更新模块405,用于当接收到第三更新指令时,基于第三更新指令更新待配置的用户属性与待配置的区块链的对应关系;或,

更新模块405,用于当接收到第四更新指令时,基于第四更新指令更新待配置的用户属性与已配置的区块链的对应关系。

在一种可能实现方式中,确定模块402用于:根据第一确定方式,将匹配用户的用户位置的区块链确定为与业务数据对应的目标区块链;和/或,

确定模块402用于:根据第二确定方式,将匹配用户的用户设备的区块链确定为与业务数据对应的目标区块链;和/或,

确定模块402用于:根据第三确定方式,将匹配用户的用户等级的区块链确定为与业务数据对应的目标区块链;和/或,

确定模块402用于:根据第四确定方式,将匹配用户的用户账号的区块链确定为与业务数据对应的目标区块链。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

需要说明的是:上述实施例提供的业务数据存储装置在存储业务数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的业务数据存储装置与业务数据存储方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图6是本发明实施例提供的一种电子设备600的框图。例如,电子设备600可以被提供为一服务器。参照图6,电子设备600包括处理器622和存储器632,存储器632中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器622加载并执行以实现上述业务数据存储方法。

电子设备600还可以包括一个电源组件626被配置为执行电子设备600的电源管理,一个有线或无线网络接口650被配置为将电子设备600连接到网络,和一个输入输出(i/o)接口658。电子设备600可以操作基于存储在存储器632的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

在示例性实施例中,还提供了一种存储介质,例如包括至少一条指令、至少一段程序、代码集或指令集的存储器,上述至少一条指令、至少一段程序、代码集或指令集可由电子设备中的处理器加载并执行以完成上述实施例中的业务数据存储方法。例如,存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1