业务请求处理方法及装置与流程

文档序号:18901383发布日期:2019-10-18 21:59阅读:149来源:国知局
业务请求处理方法及装置与流程
本发明涉及网络
技术领域
,特别涉及一种业务请求处理方法及装置。
背景技术
:随着网络技术的发展,网络带宽得到大幅优化,服务器能够快捷地为终端处理所需业务,而为了给终端提供更为丰富的业务,多个机构往往以联合的方式为终端服务,例如,银行、监管机构和网络服务商的服务器共同为终端提供支付业务。在处理终端的业务请求的过程中,为了备份本次业务处理过程,当接收到终端的业务请求时,服务器可以存储业务请求。由于某些业务请求涉及一个机构的商业隐私,通常是多个机构的服务器中的部分服务器才具备这些业务请求的存储需求,则每个服务器可以按照自身的存储需求,存储符合其存储需求的业务请求,如,服务器a可以存储业务请求a,但由于不具备业务请求b的存储需求,不会存储数据b。在实现本发明的过程中,发明人发现现有技术至少存在以下问题:由于服务器存在被恶意分子侵入的安全隐患,某一服务器已存储的业务请求很可能被恶意篡改,如果其他服务器没有该业务请求的存储需求,则不会存储该业务请求,导致该服务器很难通过其他服务器发现被篡改的业务请求,业务请求的安全性差。技术实现要素:为了解决现有技术的问题,本发明实施例提供了一种业务请求处理方法及装置。本发明通过服务器使用区块链的方式存储业务请求,利用区块链上的数据被篡改之后能快速发现,并可以自动从配置该区块链的其他服务器上将数据正确恢复回来的特性,保证了业务请求的安全性。所述技术方案如下:第一方面,提供了一种业务请求处理方法,所述方法包括:接收终端发送的业务请求;根据所述业务请求的数据类型,从多条区块链中确定与所述业务请求对应的目标区块链;向配置有所述目标区块链的本地节点发送所述业务请求,以由所述本地节点将所述业务请求转发至配置有所述目标区块链的领导节点,所述领导节点用于在接收到配置有所述目标区块链的各个节点中预设数量的节点对存储所述业务请求的确认消息时,对所述业务请求进行响应,得到响应消息;接收所述响应消息,将所述响应消息返回给所述终端。第二方面,提供了一种业务请求处理装置,所述装置包括用于接收终端发送的业务请求;根据所述业务请求的数据类型,从多条区块链中确定与所述业务请求对应的目标区块链;向配置有所述目标区块链的本地节点发送所述业务请求,以由所述本地节点将所述业务请求转发至配置有所述目标区块链的领导节点,所述领导节点用于在接收到配置有所述目标区块链的各个节点中预设数量的节点对存储所述业务请求的确认消息时,对所述业务请求进行响应,得到响应消息;接收所述响应消息,将所述响应消息返回给所述终端的模块。第三方面,提供了一种业务请求处理方法,所述方法包括:逻辑节点接收终端发送的业务请求;所述逻辑节点根据所述业务请求的数据类型,从多条区块链中确定与所述业务请求对应的目标区块链;所述逻辑节点向配置有所述目标区块链的本地节点发送所述业务请求;所述本地节点将所述业务请求转发至配置有所述目标区块链的领导节点;所述领导节点在接收到配置有所述目标区块链的各个节点中预设数量的节点对存储所述业务请求的确认消息时,对所述业务请求进行响应,得到响应消息;所述逻辑节点接收所述响应消息,将所述响应消息返回给所述终端。第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述第一方面中任一种可能实现方式的业务请求处理方法。第五方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述第一方面中任一种可能实现方式的业务请求处理方法。本发明实施例通过按照业务需求在多个服务机构之间配置每一类业务请求对应的区块链,可以将每一类业务请求存储到与该类业务请求对应的区块链中,进而使得多条区块链上可以分别存储有不同数据类型的业务请求,使得任一服务机构可以按照业务需求,与一些合作服务机构在一条区块链上共享一类业务请求,与另一些合作服务机构在另一条区块链上共享另一类业务请求,且不同区块链上的数据互不影响,从而可以选择性地进行数据共享和数据隔离,而且,由于区块链中前后区块之间相关联,使得区块中任一业务请求被篡改时都能通过下一区块检测到,避免了恶意用户篡改或抵赖处理过的业务请求,也保证了业务请求的安全性。由于各个区块链在生成区块的过程互不影响,即使短期内接收到大量用户的业务请求,也能按照数据类型将业务请求分流至各个区块链中,进而并行地在各个区块链中存储业务请求,使得服务器的性能不再受限于单个区块链的链式结构,提高了服务器的运行效率。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图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,这两个节点分别配置有区块链a和区块链b;该子系统103可以包括银行y部署的节点1031和节点1032,这两个节点分别配置有区块链a和区块链c;该子系统104可以包括监管机构部署的节点1041、节点1042和节点1043,这三个节点分别配置有区块链a、区块链b和区块链c。需要说明的是,一个子系统中可以包括一条区块链对应的多个节点,例如,该子系统101还包括节点1014,该节点1014也配置有区块链c。本发明实施例中,多条区块链可以为至少一个第一服务机构提供数据服务,多条区块链中的部分区块链为至少一个第一服务机构和至少一个第二服务机构提供数据服务,例如,该至少一个第一服务机构可以为网络服务商或监管机构,区块链a、区块链b和区块链c均可以为这两个服务机构提供数据服务;该至少一个第二服务机构为银行x和银行y,区块链a可以为网络服务商、银行x、银行y和监管机构提供数据服务。或者,该多条区块链可以均为至少一个服务机构提供数据服务。例如,银行x配置了区块链c,银行y也配置了区块链b,其他服务机构的配置不变,则区块链a、区块链b和区块链c均为网络服务商、银行x、银行y和监管机构提供数据服务。也就是说,一个机构部署的子系统上可以配置多条区块链中的部分或者全部,进而基于子系统上所配置的区块链进行数据存储、数据查询等操作。其中,区块链a、区块链b和区块链c所存储的业务数据的数据类型各不相同,如,区块链a用于存储数据类型为a1和a2的业务数据,区块链b用于存储数据类型为b的业务数据,区块链c用于存储数据类型为c的业务数据。本发明实施例对业务数据的数据类型不做具体限定,例如,a1可以为用户关系链数据,a2可以为用户偏好数据,b可以为在银行x的用户账单,c可以为在银行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的业务数据,该四家机构需要共享数据类型b的业务数据,因此为了更好地隔离不同数据类型的业务数据的存储权限,可以按照业务数据的数据类型,将不同数据类型的业务数据存储到不同的区块链上。本发明实施例对数据类型的确定方式不做具体限定,具体地,可以参见以下举例1-举例3:举例1、服务器根据第一确定方式,将符合业务数据的描述对象的数据类型确定为业务数据的数据类型。例如,业务数据一般为用户身份数据或业务详情,该用户身份数据用于描述用户,业务详情用于描述业务,因此用户身份数据为一类业务数据,业务详情为另一类业务数据。例如,服务器上可以配置用户关系链数据和用户偏好数据为用户身份数据,账单数据和支付密码为业务详情。具体地,服务器可以将业务数据的协议格式与这两类业务数据的协议格式进行比较,将符合的协议格式对应的数据类型作为该业务数据的数据类型。该协议格式如业务数据所包括的字段数量、每个字段的长度或标志位。举例2、服务器根据第二确定方式,将符合业务数据的数据私密等级的数据类型确定为业务数据的数据类型。数据私密等级用于指示业务数据的私密程度。如,对于金融业务和理财业务等涉及用户财产的业务处理过程中,业务数据可能是好友添加请求、用户账单或支付密码,而这三项业务数据的私密程度逐渐递增,因此,服务器上可以配置每项业务数据的数据私密等级,并将符合该业务数据的数据私密等级的数据类型作为该业务数据的数据类型,如,好友删除请求的数据私密等级为1,用户账单的数据私密等级为2,支付密码的数据私密等级为3,好友添加请求的数据私密等级为1,则好友删除请求和好友添加请求可以为数据类型a,用户账单的数据类型可以为b,支付密码可以为数据类型c。举例3、服务器根据第三确定方式,将符合业务数据对应的服务机构的数据类型确定为业务数据的数据类型。具体地,服务器可以提取出业务数据中携带的服务机构标识,并查询该服务机构标识对应的数据类型。例如,用户发起从银行x的账户余额中充值游戏币的充值请求,则该充值请求对应的服务机构为银行x,该充值请求可以携带银行x的服务机构标识,使得服务器可以根据该服务机构标识在服务机构与数据类型的对应关系中查询该服务机构标识对应的数据类型。需要说明的是,由于服务器接收到的业务数据包中往往包括多项业务数据,因此也可以设置已配置的各个确定方式的优先级,根据各个确定方式的优先级,采用优先级最高的确定方式所确定的所述业务数据的数据类型。如,服务器可以按照该优先级的顺序,从优先级较高的确定方式开始确定数据类型,如果该确定方式有确定结果,将采用该确定方式所确定的数据类型,该确定方式没有确定结果,则继续采用优先级次之的确定方式进行确定。该步骤中,服务器可以根据业务数据的数据类型查询预设对应关系,判断预设对应关系中是否存在与该业务数据的数据类型匹配的区块链,如果是,则可以将与业务数据的数据类型匹配的区块链确定为目标区块链,该预设对应关系用于指示数据类型与区块链的对应关系,该预设对应关系可以人工地预先配置在服务器上。本发明实施例对预设对应关系不做具体限定。例如,参见表1所示的预设对应关系:表1数据类型区块链数据类型a(用户在银行x的账单)区块链a数据类型b(用户关系链数据、用户偏好数据)区块链b数据类型c(用户在银行y的账单)区块链c上述确定过程中,服务器可以根据已确定的数据类型,在预设对应关系中查询是否存在与该数据类型相同的数据类型,如果是,则获取该相同的数据类型对应的区块链标识,确定出目标区块链。事实上,为了减少服务器侧的参数配置,提高服务器查询预设对应关系的效率并减少对存储空间的占用,服务器所配置的预设对应关系也可以不涵盖全部的数据类型,而是配置具有特殊共享需求的几类业务数据与区块链的对应关系(如,一类业务数据在业务数据处理系统中的部分子系统之间共享),对于其他具有普遍共享需求的业务数据,均可以默认存储至共享区块链,也即是,如果不存在与业务数据的数据类型匹配的区块链,服务器可以将多条区块链中的共享区块链确定为目标区块链。例如,该业务数据为好友添加请求,确定的数据类型为用户关系链数据,而部署业务数据处理系统的多个服务机构之间均可以共享该用户关系链数据,因此可以将共享区块链确定为目标区块链。事实上,为了备份已接收到的业务数据,避免用户抵赖或篡改业务处理流程,如果服务器确定业务数据的数据类型失败,也可以将该业务数据存储至共享区块链。需要说明的是,确定目标区块链的设备也可以是图1所示的逻辑节点,进而由该逻辑节点将该业务数据转发至其所在子系统中存储该目标区块链的节点。对于逻辑节点来说,可以由节点标识来标识一个区块链,因此逻辑节点所配置的预设对应关系的形式可以为数据类型和节点标识的对应关系。203、服务器基于业务数据以及目标区块链中第一区块的区块头特征值,在目标区块链上生成第二区块,第一区块为第二区块的上一个区块,第二区块用于记录业务数据。该步骤中,服务器可以从目标区块链中获取第一区块的区块头中的所有信息,并基于该第一区块的区块头中的所有信息得到第一区块的区块头特征值,并对将要存入第二区块的区块主体中的业务数据进行特征值计算,得到第二区块的区块主体特征值,进而,将第一区块的区块头特征值、第二区块的区块主体特征值(还可以包括版本号、难度值和时间戳)存储至第二区块的区块头;将业务数据存储至第二区块的区块主体,生成该第二区块,使得第二区块与第一区块通过第一区块的区块头特征值相关,因而实现了将区块链中的区块串联起来的目的,使得对区块中任何信息(包括业务数据)的篡改,均能够通过区块的区块头中所存储的上一个区块的区块头特征值的追溯而检测到,从而保证了业务数据的安全。需要说明的是,将业务数据存储至目标区块链的可以是子系统中配置该目标区块链的节点,当该节点接收到逻辑节点转发的业务数据时,可以将该业务数据发送至该目标区块链对应的运行于领导状态的节点(简称领导节点),由该领导节点广播业务数据存储请求至该目标区块链对应的各个节点,如果领导节点能够接收到各个节点中预设数量的节点对该业务数据存储请求的确认消息,则可以将该业务数据存储至自身的目标区块链中,基于该业务数据对用户进行响应,并向该各个节点广播业务数据存储指令,使得目标区块链对应的各个节点(包括该节点)可以将该业务数据存储至自身的目标区块链中。其中,每个节点在发送确认消息时也发送该节点采用私钥对该确认消息的签名,使得领导节点能够将接收到的签名携带在业务数据存储指令中,进而使得接收到业务数据存储指令的节点可以通过签名对业务数据存储指令进行验证,如果签名的数量符合预设数量,且每个签名均通过对应节点的公钥验证通过,则可以将业务数据存储指令中携带的业务数据存储至自身的目标区块链中。参见图3,本发明实施例提供了一种业务请求处理流程图,该处理流程中,由逻辑节点接收终端的业务请求,并按照已配置的预设对应关系,选择与该业务请求对应的区块链,并将业务请求路由至配置该区块链的本地节点,由该本地节点将业务请求转发至配置该区块链的领导节点,直到领导节点接收到配置该区块链的各个节点中预设数量的节点对存储业务请求的确认消息,可以确认该区块链对该业务请求达成共识,可以对该业务请求进行响应,将响应消息发送至本地节点,本地节点将响应消息发送至逻辑节点,进而由逻辑节点将响应消息返回给终端。本发明实施例通过按照业务需求在多个服务机构之间配置每一类业务数据对应的区块链,可以将每一类业务数据存储到与该类业务数据对应的区块链中,进而使得多条区块链上可以分别存储有不同数据类型的业务数据,使得任一服务机构可以按照业务需求,与一些合作服务机构在一条区块链上共享一类业务数据,与另一些合作服务机构在另一条区块链上共享另一类业务数据,且不同区块链上的数据互不影响,从而可以选择性地进行数据共享和数据隔离,而且,由于区块链中前后区块之间相关联,使得区块中任一业务数据被篡改时都能通过下一区块检测到,避免了恶意用户篡改或抵赖处理过的业务数据,也保证了业务数据的安全性。而且,由于配置了相同区块链的每个节点存储的数据一致,即使某一节点的数据丢失或被篡改都能够根据该区块链对应的其他节点已存储的数据进行恢复,进而也提高了数据的安全性和可恢复性。而且,由于各个区块链在生成区块的过程互不影响,即使短期内接收到大量用户的业务数据,也能按照数据类型将业务数据分流至各个区块链中,进而并行地在各个区块链中存储业务数据,使得服务器的性能不再受限于区块链的链式结构,提高了服务器的运行效率。在实际的应用场景中,根据当前的业务需求,服务器所配置的区块链也可能更新,更新的情况可能有多种,本发明实施例以下述四种情况举例说明:情况1、当服务器接收到第一更新指令时,基于第一更新指令更新已配置的数据类型与待配置的区块链的对应关系。其中,第一更新指令携带已配置的数据类型和待配置的区块链标识。当接收到第一更新指令后,服务器可以从第一更新指令中提取出这两项数据,并在预设对应关系中查询是否存在与这两项数据中任一项数据相同的数据,如果存在与已配置的数据类型相同的数据类型,但不存在与该待配置的区块链标识相同的区块链标识,则可以将该已配置的数据类型对应的区块链修改为待配置的区块链。情况2、当服务器接收到第二更新指令时,基于第二更新指令更新已配置的数据类型与已配置的区块链的对应关系。其中,第二更新指令携带已配置的数据类型和已配置的区块链标识。当接收到第二更新指令后,服务器可以从第二更新指令中提取出这两项数据,并在预设对应关系中查询是否存在与这两项数据中任一项数据相同的数据,如果存在与已配置的数据类型相同的数据类型,且存在与该待配置的区块链标识相同的区块链标识,则可以删除该已配置的数据类型与原区块链的对应关系,并将该已配置的数据类型添加为该已配置的区块链对应的数据类型。情况3、当服务器接收到第三更新指令时,基于第三更新指令更新待配置的数据类型与待配置的区块链的对应关系。其中,第三更新指令携带待配置的数据类型和待配置的区块链标识。当接收到第三更新指令后,服务器可以从第三更新指令中提取出这两项数据,并在预设对应关系中查询是否存在与这两项数据中任一项数据相同的数据,如果不存在与待配置的数据类型相同的数据类型,也不存在与该待配置的区块链标识相同的区块链标识,可以添加一条待配置的数据类型与待配置的区块链的对应关系。情况4、当接收到第四更新指令时,基于第四更新指令更新待配置的数据类型与已配置的区块链的对应关系。其中,第四更新指令携带待配置的数据类型和已配置的区块链标识。当接收到第四更新指令后,服务器可以从第四更新指令中提取出这两项数据,并在预设对应关系中查询是否存在与这两项数据中任一项数据相同的数据,如果不存在与待配置的数据类型相同的数据类型,但存在与已待配置的区块链标识相同的区块链标识,可以将该待配置的数据类型添加为该已配置的区块链对应的数据类型。需要说明的是,在更新该服务器上的数据类型和区块链的对应关系时,为了保证整个业务数据处理系统能够正常工作,该涉及被更新的数据类型或被更新的区块链的其他服务器也会进行同步的更新过程。上述更新过程以添加一类用户征信数据为例,假设用户征信数据与已配置的用户关系链数据的共享需求相同(各个子系统之间都可以共享),则运营人员可以触发第四更新指令,使得服务器可以基于接收到的第四更新指令进行更新。通过对数据类型和区块链进行更新,可以按照当前的业务需求将新一类的业务数据存储到新的区块链中;也可以按照服务机构之间已有的合作关系(已配置的区块链),将新一类的业务数据存储到已配置的区块链中;也可以根据变化的共享需求,将已配置的数据类型与新的区块链对应;还可以变更已配置的数据类型与已配置的区块链的对应关系,使得多个服务机构之间可以按照业务需求或共享需求灵活地存储业务数据。在上述更新过程中,为了避免正在变化的数据类型与区块链的对应关系影响正常的业务数据处理过程,服务器可以在接收到更新指令时,停止处理该更新指令对应的区块链上业务数据的存储过程;直到完成已执行的合约且接收到更新完成消息时,按照更新后的预设对应关系存储业务数据。其中,合约是指运行在区块链上的代码,用于指示如何处理业务数据。由于接收到更新指令时可能正在执行某些合约,因此为了避免更新后合约无法正常执行,可以等待已执行的合约执行完成,再开始处理区块链或数据类型更新后的业务数据。图4是本发明实施例提供的一种业务数据存储装置的框图。参见图4,该装置具体包括:接收模块401,用于接收业务数据;确定模块402,用于根据业务数据的数据类型,从多条区块链中确定与业务数据对应的目标区块链;存储模块403,用于基于业务数据以及目标区块链中第一区块的区块头特征值,在目标区块链上生成第二区块,第一区块为第二区块的上一个区块,第二区块用于记录业务数据。本发明实施例通过按照业务需求在多个服务机构之间配置每一类业务数据对应的区块链,可以将每一类业务数据存储到与该类业务数据对应的区块链中,进而使得多条区块链上可以分别存储有不同数据类型的业务数据,使得任一服务机构可以按照业务需求,与一些合作服务机构在一条区块链上共享一类业务数据,与另一些合作服务机构在另一条区块链上共享另一类业务数据,且不同区块链上的数据互不影响,从而可以选择性地进行数据共享和数据隔离,而且,由于区块链中前后区块之间相关联,使得区块中任一业务数据被篡改时都能通过下一区块检测到,避免了恶意用户篡改或抵赖处理过的业务数据,也保证了业务数据的安全性。由于各个区块链在生成区块的过程互不影响,即使短期内接收到大量用户的业务数据,也能按照数据类型将业务数据分流至各个区块链中,进而并行地在各个区块链中存储业务数据,使得服务器的性能不再受限于区块链的链式结构,提高了服务器的运行效率。在一种可能实现方式中,确定模块402用于:根据业务数据的数据类型查询预设对应关系,预设对应关系用于指示数据类型与区块链的对应关系;如果预设对应关系中存在与业务数据的数据类型匹配的区块链,将与业务数据的数据类型匹配的区块链确定为目标区块链,。在一种可能实现方式中,确定模块402还用于:如果不存在与业务数据的数据类型匹配的区块链,将多条区块链中的共享区块链确定为目标区块链,共享区块链用于存储多个服务机构之间共享的业务数据。在一种可能实现方式中,基于图4的装置组成,参见图5a,该装置还包括:接收模块401,用于接收业务数据包;获取模块404,用于从业务数据包中获取业务数据和终端对业务数据的签名;确定模块402,用于如果对业务数据的签名验证通过,根据业务数据的数据类型,从多条区块链中确定与业务数据对应的目标区块链。在一种可能实现方式中,基于图4的装置组成,参见图5b,该装置还包括:更新模块405,用于当接收到第一更新指令时,基于第一更新指令更新已配置的数据类型与待配置的区块链的对应关系;或,更新模块405,用于当接收到第二更新指令时,基于第二更新指令更新已配置的数据类型与已配置的区块链的对应关系;或,更新模块405,用于当接收到第三更新指令时,基于第三更新指令更新待配置的数据类型与待配置的区块链的对应关系;或,更新模块405,用于当接收到第四更新指令时,基于第四更新指令更新待配置的数据类型与已配置的区块链的对应关系。上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。需要说明的是:上述实施例提供的业务数据存储装置在存储业务数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的业务数据存储装置与业务数据存储方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。图6是本发明实施例提供的一种电子设备600的框图。例如,电子设备600可以被提供为一服务器。参照图6,电子设备600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理部件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述业务数据存储方法。电子设备600还可以包括一个电源组件626被配置为执行电子设备600的电源管理,一个有线或无线网络接口650被配置为将电子设备600连接到网络,和一个输入输出(i/o)接口658。电子设备600可以操作基于存储在存储器632的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条指令、至少一段程序、代码集或指令集的存储器,上述至少一条指令、至少一段程序、代码集或指令集可由电子设备中的处理器加载并执行以完成上述实施例中的业务数据存储方法。例如,计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1