在区块链系统中进行业务处理的方法和装置与流程

文档序号:23093075发布日期:2020-11-27 12:48阅读:111来源:国知局
在区块链系统中进行业务处理的方法和装置与流程
本说明书实施例涉及区块链
技术领域
,更具体地,涉及一种在区块链系统中进行业务处理的方法和装置。
背景技术
:区块链技术也被称之为分布式账本技术,是一种去中心化的分布式数据库技术,其特点是去中心化、公开透明、不可篡改、可信任。区块链的每笔交易,都会广播到全网的区块链节点,每个全节点都有全量的、一致的数据。在联盟链中,通常,用户终端通过区块链平台使用区块链进行业务处理,例如存证、转账等处理。然而,在单条链的场景下,长时间的运行积累大量的存储数据,并且账户规模越来越大,使得该单条链的处理能力下降。另外,在并发交易较多的时段(例如双十一时段),单条链的访问压力增大,使得单条链的处理不能满足业务需求。技术实现要素:本说明书实施例旨在提供一种更有效的在区块链系统中进行业务处理的方法,以解决现有技术中的不足。为实现上述目的,本说明书一个方面提供一种在区块链系统中进行业务处理的方法,所述区块链系统包括n个相互独立的区块链,所述方法包括:基于接收的业务处理请求获取第一交易;基于预定规则确定第一交易与所述n个区块链中的第一区块链相对应;将所述第一交易发送给所述第一区块链,以用于进行业务处理。在一种实施方式中,所述方法还包括,在基于预定规则确定第一交易与所述n个区块链中的第一区块链相对应之后,记录所述第一交易与所述第一区块链的对应关系。在一种实施方式中,所述方法由区块链平台执行,所述区块链平台与所述n个区块链分别连接,其中,所述接收的业务处理请求为所述第一交易。在一种实施方式中,基于预定规则确定第一交易与所述n个区块链中的第一区块链相对应包括,基于所述第一交易的编号,确定所述第一交易与所述第一区块链相对应。在一种实施方式中,基于预定规则确定第一交易与所述n个区块链中的第一区块链相对应包括,通过基于预定哈希算法计算所述第一交易的哈希值,确定所述第一交易与所述第一区块链相对应。在一种实施方式中,将所述第一交易发送给所述第一区块链,以用于进行业务处理包括,将所述第一交易发送给所述第一区块链,以用于进行存证业务处理。在一种实施方式中,所述第一交易中调用第一合约,所述方法还包括:接收用于部署第一合约的第三交易;将所述第三交易分别发送给所述n个区块链,以在所述n个区块链中分别部署所述第一合约。在一种实施方式中,所述方法还包括,在基于预定规则确定第一交易与所述n个区块链中的第一区块链相对应之后,获取所述第一交易的标识,所述第一交易的标识的预定位用于指示所述第一区块链。在一种实施方式中,获取所述第一交易的标识包括,计算所述第一交易的哈希值,基于所述第一交易的哈希值生成所述第一交易的标识。本说明书另一方面提供一种在区块链系统中进行业务处理的装置,所述区块链系统包括n个相互独立的区块链,所述装置包括:获取单元,配置为,基于接收的业务处理请求获取第一交易;确定单元,配置为,基于预定规则确定第一交易与所述n个区块链中的第一区块链相对应;第一发送单元,配置为,将所述第一交易发送给所述第一区块链,以用于进行业务处理。在一种实施方式中,所述装置还包括,记录单元,用于在基于预定规则确定第一交易与所述n个区块链中的第一区块链相对应之后,记录所述第一交易与所述第一区块链的对应关系。在一种实施方式中,所述装置部署于区块链平台,所述区块链平台与所述n个区块链分别连接,其中,所述接收的业务处理请求为所述第一交易。在一种实施方式中,所述确定单元还配置为,基于所述第一交易的编号,确定所述第一交易与所述第一区块链相对应。在一种实施方式中,所述确定单元还配置为,通过基于预定哈希算法计算所述第一交易的哈希值,确定所述第一交易与所述第一区块链相对应。在一种实施方式中,所述第一发送单元还配置为,将所述第一交易发送给所述第一区块链,以用于进行存证业务处理。在一种实施方式中,所述第一交易中调用第一合约,所述装置还包括:接收单元,配置为,接收用于部署第一合约的第三交易;第二发送单元,配置为,将所述第三交易分别发送给所述n个区块链,以在所述n个区块链中分别部署所述第一合约。在一种实施方式中,所述装置还包括,获取单元,配置为,在基于预定规则确定第一交易与所述n个区块链中的第一区块链相对应之后,获取所述第一交易的标识,所述第一交易的标识的预定位用于指示所述第一区块链。在一种实施方式中,所述获取单元包括,计算子单元,配置为,计算所述第一交易的哈希值,生成子单元,配置为,基于所述第一交易的哈希值生成所述第一交易的标识。本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。通过根据本说明书实施例的在区块链系统中进行业务处理的方案,将交易平均分配到多个区块链中进行处理,从而可通过多个区块链为区块链系统提供平行扩展的容量和处理能力,相比于单条区块链,减小了读写压力,提高了区块链系统的处理效率,尤其在流量突增时期能够快速扩展,平行分散压力。附图说明通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:图1示出根据本说明书实施例的区块链系统的示意图;图2示出根据本说明书实施例的一种在区块链系统中进行业务处理的方法流程图;图3示出交易1(tx1)的内容示意图;图4示出生成交易1的标识的过程示意图;图5示出根据本说明书实施例的一种在区块链系统中进行业务处理的装置500。具体实施方式下面将结合附图描述本说明书实施例。图1示出根据本说明书实施例的区块链系统的示意图。如图1所示,该区块链系统中包括区块链平台11、多个用户终端(图中示意示出用户终端12、13和14),所述区块链平台即区块链平台服务器。用户终端与区块链平台11连接,并通过区块链平台11对区块链进行操作。区块链平台11与多个相互独立的区块链连接,图1中示意示出区块链1、区块链2和区块链3。区块链1、区块链2和区块链3可以称为一个区块链系统的平行链,其相互独立的运行,从而分别进行对用户请求的处理,并分别存储交易数据,从而提高系统的处理能力和数据存储容量。所述包括区块链1~区块链3的区块链系统例如为用于存证的系统,用户a可通过例如用户终端12向区块链平台11发送请求,以向区块链系统中发送交易,区块链平台11接收到该请求之后,将相应的交易发送给区块链1~区块链3中的一个区块链,以将该交易存储到相应的区块链中,并向用户终端12返回该交易的标识,这里,交易的标识可以为该交易的哈希值。后续,当用户a希望查询该交易时,用户a可向区块链平台11提供交易的标识以进行对该交易的查询。通过将交易分别分配到区块链1、区块链2和区块链3进行处理,从而起到均衡负载的效果。可以理解,图1所示的区块链系统仅仅是示意性的,根据本说明书实施例的区块链系统不限于此。例如,各个用户终端可通过本地的客户端将交易分配到一个区块链并与该区块链连接,从而不需要通过区块链平台11进行分配。下面将详细描述上述处理过程。图2示出根据本说明书实施例的一种在区块链系统中进行业务处理的方法流程图,所述区块链系统包括n个相互独立的区块链,所述方法包括:步骤s202,基于接收的业务处理请求获取交易1;步骤s204,基于预定规则确定交易1与区块链1相对应;步骤s206,将交易1发送给区块链1,以用于进行业务处理。在一种实施方式中,图2所示方法由图1中的区块链平台11执行。首先,在步骤s202,基于接收的业务处理请求获取交易1。所述区块链系统可用于处理单一的业务,或者可用于处理多个业务。例如,所述区块链系统用于处理存证业务。例如,用户a可以使用其账户a通过用户终端12向区块链平台11发送将数据1存证到区块链系统中的请求。在一种实施方式中,所述账户a可以为用户a在区块链平台11中注册的唯一账户。也就是说,该账户a由区块链平台11进行管理,并不是某个区块链中的账户,例如,账户a的账户名称为alice。在该情况中,区块链平台11在接收到该存证请求之后,生成与该存证请求对应的交易1,该交易1中可调用区块链1中部署的用于存证的合约,并且该交易1中包括待存证的数据1。图3示出交易1(tx1)的内容示意图。如图3所示,该交易1的发送账户(见图3中的“from”字段)为账户b,其中“0x507a…”为账户b的账户地址,所述账户b为区块链平台11拥有的区块链1中的账户。该交易1的接收账户字段(即图3中的“to”字段)为交易1中调用的合约1的地址,交易1的数据字段中表示对合约1中的store函数的调用,并且该数据字段中包括将传入store函数的数据1。另外,区块链平台11还生成账户b对交易1的数字签名。在另一种实施方式中,所述账户a也可以为用户a申请的区块链账户(区块链中的即账户地址),从而所述业务处理请求可以为交易1。也就是说,用户终端12生成交易1并将交易1发送给区块链平台11。在该情况中,交易1的形式与图3所示的交易1的形式基本相同,所不同的是,该实施方式中的交易1的发送账户为账户a,并且用户终端12将通过账户a对交易1的数字签名一起发送给区块链平台11。在一种实施方式中,在所述账户a为区块链账户的情况中,各个区块链中都可以预先获取账户a的公钥,从而各个区块链都可以接收由账户a发送的交易,并且,各个区块链可在首次接收到由账户a发送的交易之后在本地记录账户a的状态信息。上述合约1可预先部署到区块链1~区块链3中的每个区块链中。例如,可由用户终端12向区块链平台11发送用于在区块链中部署合约1的交易,区块链平台11在接收到该交易之后,可将交易发送给每个区块链,从而使得在每个区块链中都部署合约1,从而使得后续的用于进行存证业务的交易可被分配到任一个区块链并通过调用该区块链中的合约1进行存证处理。在步骤s204,基于预定规则确定交易1与区块链1相对应。可以设定多种预定分配规则将交易1分配给区块链1~区块链3中的一个区块链,只要该预定分配规则使得将交易基本均匀地分配到区块链1~区块链3即可,从而使得区块链1~区块链3负载均衡。在一种实施方式中,区块链平台11可对接收的交易进行编号,并根据该编号除以3的余数来分配,例如,余数为0时,分配给区块链1,余数为1时分配给区块链2,余数为2时分配给区块链3。在另一种实施方式中,区块链平台11可对交易1的交易体进行哈希运算,该哈希运算例如为某种随机运算,并且其运算结果为1、2、3中的任一值,从而可根据该哈希运算的结果将交易1分配给一个区块链。在另一种实施方式中,区块链平台11可对交易1的交易体进行哈希运算,该哈希运算例如为sha256哈希运算,通过该哈希运算获取的交易1的哈希值可用作为交易1的唯一标识。在进行该哈希运算之后,可根据该哈希值的预定位将交易1分配给一个区块链。例如,如果该哈希值的前两位为01,则将交易1分配给区块链1,如果该哈希值的前两位为10,则将交易1分配给区块链2,如果该哈希值的前两位为11,则将交易1分配给区块链3。在另一种实施方式中,在由用户终端将交易1发送给区块链平台11的情况中,区块链平台11可根据交易1的发送账户的地理位置来确定将交易1分配给哪个区块链。例如,可预设将来自北京的交易分配给区块链1,将来自上海的交易分配给区块链2,将来自深圳的交易分配给区块链3。在步骤s206,将交易1发送给区块链1,以用于进行业务处理。区块链平台11可将交易1发送给区块链1中的任一节点。区块链1中的节点在接收到交易1之后,将交易1广播到区块链1中。区块链1中的节点在对交易1进行共识之后,区块链1中的各个全节点中都将执行交易1,从而执行交易1中调用的合约1,更新合约1的状态数据,即将通过执行合约1处理数据1所获取的数据2存入合约1的账户状态中,并且将交易1存入到区块数据库中。另外,也可以将所述数据2存入交易1的收据中,以供查询。区块链1中的节点在将交易1存入到区块链1中之后,可计算交易1的哈希值作为交易1的标识,并记录交易1的哈希值与交易1的存储位置的关联关系,从而可基于该哈希值来查询交易1的交易内容。区块链1中的各节点在存入交易1之后,区块链平台11可从区块链1中的任一节点获取交易1的标识(例如哈希值)和/或数据2的标识,或者区块链1中的任一节点在执行交易1并在区块链1中存入交易1之后,可向区块链平台11主动推送交易1的标识和/或数据2的标识。从而区块链平台11可将该交易1的标识和/或数据2的标识发送给用户终端12,从而,用户终端12在后续可基于该交易1的标识和/或数据2的标识进行对数据2的查询。在一种实施方式中,在基于预定规则确定交易1与区块链1相对应之后,区块链平台11记录交易1与区块链1的对应关系。为了记录交易1与区块链1的对应关系,区块链平台11需要记录交易1的唯一标识与区块链1的唯一标识的对应关系,以用于后续进行对交易1的查询。如上文所述,区块链平台11在向区块链1发送交易1之后,区块链1可将交易1的哈希值(例如0x487b…)返回给区块链平台11,从而,区块链平台11可记录如表1所示的交易的哈希值与区块链的映射关系表。表1交易区块链0x487b…区块链10x768a…区块链20x3876…区块链3……如表1所示,区块链平台11可在本地存储的表1中记录交易1的哈希值与区块链1的对应关系,以用于后续的对交易1的查询。例如,当用户a希望对交易1进行查询时,用户a可通过用户终端12向区块链平台发送查询交易1的请求,该查询请求中包括交易1的哈希值,从而,区块链平台11可基于表1确定交易1被分配到区块链1,并从区块链1读取到交易1。在另一种实施方式中,在基于预定规则确定交易1与区块链1相对应之后,区块链平台11可获取交易1的标识。在一种实施方式中,区块链平台11可从区块链1中任一节点获取交易1的标识。图4示出生成交易1的标识的过程示意图。如图4所示,区块链1中的节点在接收到交易1(tx1)之后,首先可通过步骤①计算交易1的交易体的哈希值。区块链1中的节点在计算交易1的哈希值之后,可如步骤②所示,在该哈希值的一串字符串的预定位置(例如首位置)添加预定位(如图4中的“01”),从而生成交易1的标识,所述预定位用于指示区块链1。可以理解,虽然图4中以添加两位作为示例进行描述,本说明书实施例不限于此,例如,在实际中,当区块链系统中包括的区块链较多的情况下,可添加更多的位数,如4位、8位等。或者,区块链1中的节点可如步骤③所示修改该串字符串中包含的预定位(如图4中所示的该串字符串中的前两位),从而生成交易1的标识,所述预定位用于指示区块链1。之后,区块链平台11和可从区块链1的任一节点获取交易1的标识。在该情况中,由于交易1的标识中指示了交易1所分配的区块链1,因此,将不需要如上文所述记录交易与区块链的映射关系表。在另一种实施方式中,区块链平台11可自行基于预定计算规则生成交易1的地址。例如,区块链平台首先计算交易1的哈希值,并将该哈希值的预定位修改为用于指示区块链,从而获取交易1的标识。区块链平台11在获取交易1的标识之后可将交易1的标识发送给用户终端,以由用户终端基于该标识进行对交易1的查询。区块链1中在生成交易1的标识之后,可记录该标识与交易1的存储位置的映射关系,从而可基于该标识读取交易1。在另一种实施方式中,图2所示方法可由用户终端执行。在该情况中,用户终端12可直接与区块链1~区块链3分别连接,而不需要通过区块链平台11与各个区块链连接。用户终端12中的客户端在接收到用户a的进行业务处理的指示之后生成交易1,基于预定规则确定交易1与区块链1对应,并向区块链1发送交易1,之后,在用户终端12本地记录交易1与区块链1的对应关系。在其它用户也可能查询交易1的情况中,用户终端12、13和14之间可相互通信,以使得各个用户终端存储的交易与区块链的映射关系表是一致的。其中,用户终端12、13和14可通过底层直接通信。或者,用户终端12、13和14之间可通过区块链平台相互通信,从而起到统一映射表的目的。在另一种实施方式中,如上文所示,区块链平台11可计算交易1的哈希值作为交易1的标识,并基于该哈希值的预定位来分配交易1,例如,该哈希值的前两位为01,则把交易1分配到区块链1。因此,在后续查询交易1时,可从该哈希值直接确定交易1所分配的区块链。图5示出根据本说明书实施例的一种在区块链系统中进行业务处理的装置500,所述区块链系统包括n个相互独立的区块链,所述装置500包括:获取单元51,配置为,基于接收的业务处理请求获取第一交易;确定单元52,配置为,基于预定规则确定第一交易与所述n个区块链中的第一区块链相对应;第一发送单元53,配置为,将所述第一交易发送给所述第一区块链,以用于进行业务处理。在一种实施方式中,所述装置500还包括,记录单元54,用于在基于预定规则确定第一交易与所述n个区块链中的第一区块链相对应之后,记录所述第一交易与所述第一区块链的对应关系。在一种实施方式中,所述装置500部署于区块链平台,所述区块链平台与所述n个区块链分别连接,其中,所述接收的业务处理请求为所述第一交易。在一种实施方式中,所述确定单元52还配置为,基于所述第一交易的编号,确定所述第一交易与所述第一区块链相对应。在一种实施方式中,所述确定单元52还配置为,通过基于预定哈希算法计算所述第一交易的哈希值,确定所述第一交易与所述第一区块链相对应。在一种实施方式中,所述第一发送单元53还配置为,将所述第一交易发送给所述第一区块链,以用于进行存证业务处理。在一种实施方式中,所述第一交易中调用第一合约,所述装置500还包括:接收单元55,配置为,接收用于部署第一合约的第三交易;第二发送单元56,配置为,将所述第三交易分别发送给所述n个区块链,以在所述n个区块链中分别部署所述第一合约。在一种实施方式中,所述装置500还包括,获取单元57,配置为,在基于预定规则确定第一交易与所述n个区块链中的第一区块链相对应之后,获取所述第一交易的标识,所述第一交易的标识的预定位用于指示所述第一区块链。在一种实施方式中,所述获取单元57包括,计算子单元571,配置为,计算所述第一交易的哈希值,生成子单元572,配置为,基于所述第一交易的哈希值生成所述第一交易的标识。本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。通过根据本说明书实施例的在区块链系统中进行业务处理的方案,将交易平均分配到多个区块链中进行处理,从而可通过多个区块链为区块链系统提供平行扩展的容量和处理能力,相比于单条区块链,减小了读写压力,提高了区块链系统的处理效率,尤其在流量突增时期能够快速扩展,平行分散压力。需要理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。其中,软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
内所公知的任意其它形式的存储介质中。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1