基于区块链的业务记账方法及终端设备与流程

文档序号:17149101发布日期:2019-03-19 23:15阅读:143来源:国知局
基于区块链的业务记账方法及终端设备与流程

本发明属于数据处理技术领域,尤其涉及基于区块链的业务记账方法、终端设备以及计算机可读存储介质。



背景技术:

随着信息技术的更新,区块链作为新兴的存储方式逐渐成为应用热门,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并用密码学的方式保证数据不被篡改和伪造,现今已有许多企事业单位将产生的业务信息存储至区块链中进行记账。

在现有技术中,一些较为复杂的业务信息面向区块链上的多个账户,在将业务信息在区块链中进行记账时,由于业务信息较为庞大,故在已对业务信息中位于前列的信息进行记账后,如果判断业务信息中位于中间的信息不符合记账条件,如某个账户无法支持位于中间的信息的交易过程,则需要对已进行记账的信息进行反记账,导致区块链记账的成功率较低,并且容易对区块链造成数据污染。



技术实现要素:

有鉴于此,本发明实施例提供了基于区块链的业务记账方法、终端设备以及计算机可读存储介质,以解决现有技术中在区块链上对较为复杂的业务进行记账的成功率较低,容易造成数据污染的问题。

本发明实施例的第一方面提供了一种基于区块链的业务记账方法,包括:

对接收到的复杂业务信息进行串行顺序拆分,得到多个业务子信息,其中,所述复杂业务信息包含开始标识和结束标识,所述开始标识用于指示位于首位的所述业务子信息,所述结束标识用于指示位于末尾的所述业务子信息;

将多个所述业务子信息提交至背书节点集,所述背书节点集中的背书节点用于对多个所述业务子信息逐个进行模拟交易验证,并在模拟交易验证成功后返回背书成功的背书结果;

若接收到的所述背书结果都为背书成功,且返回所述背书结果的所述背书节点满足预设条件,则将包含所述背书结果的多个所述业务子信息提交至预设的共识节点,所述共识节点用于将包含所述背书结果的多个所述业务子信息在区块链中进行记账。

本发明实施例的第二方面提供了一种终端设备,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:

对接收到的复杂业务信息进行串行顺序拆分,得到多个业务子信息,其中,所述复杂业务信息包含开始标识和结束标识,所述开始标识用于指示位于首位的所述业务子信息,所述结束标识用于指示位于末尾的所述业务子信息;

将多个所述业务子信息提交至背书节点集,所述背书节点集中的背书节点用于对多个所述业务子信息逐个进行模拟交易验证,并在模拟交易验证成功后返回背书成功的背书结果;

若接收到的所述背书结果都为背书成功,且返回所述背书结果的所述背书节点满足预设条件,则将包含所述背书结果的多个所述业务子信息提交至预设的共识节点,所述共识节点用于将包含所述背书结果的多个所述业务子信息在区块链中进行记账。

本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:

对接收到的复杂业务信息进行串行顺序拆分,得到多个业务子信息,其中,所述复杂业务信息包含开始标识和结束标识,所述开始标识用于指示位于首位的所述业务子信息,所述结束标识用于指示位于末尾的所述业务子信息;

将多个所述业务子信息提交至背书节点集,所述背书节点集中的背书节点用于对多个所述业务子信息逐个进行模拟交易验证,并在模拟交易验证成功后返回背书成功的背书结果;

若接收到的所述背书结果都为背书成功,且返回所述背书结果的所述背书节点满足预设条件,则将包含所述背书结果的多个所述业务子信息提交至预设的共识节点,所述共识节点用于将包含所述背书结果的多个所述业务子信息在区块链中进行记账。

本发明实施例与现有技术相比存在的有益效果是:

本发明实施例首先对复杂业务信息进行串行顺序拆分得到多个业务子信息,然后将多个拆分出的业务子信息提交至背书节点,如果接收到的背书节点关于多个业务子信息的背书结果都为背书成功,则将背书结果和多个业务子信息打包提交至共识节点,共识节点在对背书结果和多个业务子信息共识验证成功后,将包含背书结果的多个业务子信息在区块链中进行记账,本发明实施例通过将复杂业务信息拆分出的多个业务子信息逐个在背书节点进行背书,并在所有的背书结果都为背书成功时才进行记账,提升了业务信息的记账成功率,避免因反记账造成的数据污染。

附图说明

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

图1是本发明实施例一提供的基于区块链的业务记账方法的实现流程图;

图2是本发明实施例二提供的基于区块链的业务记账方法的实现流程图;

图3是本发明实施例三提供的基于区块链的业务记账方法的实现流程图;

图4是本发明实施例四提供的基于区块链的业务记账方法的实现流程图;

图5是本发明实施例五提供的终端设备的结构框图;

图6是本发明实施例六提供的终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

图1示出了本发明实施例提供的基于区块链的业务记账方法的实现流程,详述如下:

在s101中,对接收到的复杂业务信息进行串行顺序拆分,得到多个业务子信息,其中,所述复杂业务信息包含开始标识和结束标识,所述开始标识用于指示位于首位的所述业务子信息,所述结束标识用于指示位于末尾的所述业务子信息。

在本发明实施例中,终端设备首先获取上游系统产生的待记账的复杂业务信息,复杂业务信息中包含多个业务子信息,为了便于说明,后文以复杂业务信息为转账交易信息进行阐述,但这并不构成对本发明实施例的限定。为了规范复杂业务信息的生成及检测机制,本发明实施例中设定一个完整的复杂业务信息包含开始标识和结束标识,开始标识用于指示位于首位的业务子信息(位于首位的业务子信息包含开始标识),结束标识用于指示位于末尾的业务子信息(位于末尾的业务子信息包括结束标识)。开始标识和结束标识的具体内容可根据实际情况自定义设置。此外,由于终端设备可能同时接收到多个不同的复杂业务信息,故可设置上游系统根据不同的业务随机生成配套的开始标识和结束标识,比如在随机生成过程中,上游系统生成的开始标识为“start-numstart”,其中numstart为业务在上游系统中的业务编号,start用于指示该标识为开始标识;与其配套的结束标识则为“end-numstart”,end用于指示该标识为结束标识。同时,设置终端设备根据开始标识中的业务编号识别不同的复杂业务信息,如在接收到包含开始标识“start-1”的信息和包含开始标识“start-2”的信息后,则可识别出上述两个信息不属于同一个复杂业务信息。

一笔完整的复杂业务信息包含有多个业务子信息,比如复杂业务信息为“账户accounta向账户accountb转账100元(包含开始标识),账户accountb向账户accountc转账500元(包含结束标识)”,则业务子信息则为“账户accounta向账户accountb转账100元”以及“账户accountb向账户accountc转账500元”。终端设备在接收到完整的复杂业务信息后,对复杂业务信息进行串行顺序拆分,拆分依据为时间依据或发起方依据,其中,时间依据针对复杂业务信息中包含多个时间点的场景,依照时间依据进行串行顺序拆分时,根据复杂业务信息中的各个时间点从前到后的顺序,将时间点对应的业务子信息拆分出来;依照发起方依据进行串行顺序拆分时,根据复杂业务信息中的各个发起方从前到后的顺序,将发起方对应的业务子信息进行顺序拆分,比如对于为“账户accounta向账户accountb转账100元,账户accountb向账户accountc转账500元”的复杂业务信息来说,其第一个发起方为账户accounta,第二个发起方为账户accountb,故可拆分出第一个发起方对应的业务子信息为“账户accounta向账户accountb转账100元”,第二个发起方对应的业务子信息为“账户accountb向账户accountc转账500元”。通常来说,由于业务实施(如转账)具有顺序性,故分别依照时间依据和发起方依据拆分出的业务子信息和业务子信息的顺序通常是相同的,根据实际应用场景的不同可应用上述的或其他的依据进行串行顺序拆分。值得一提的是,若在包含开始标识的业务子信息和包含结束标识的业务子信息之间还存在其他的业务子信息,则可设置其他的业务子信息包含相同的开始标识,便于进行识别,比如一个复杂业务信息可为“账户accounta向账户accountb转账100元(包含开始标识start-1),账户accountb向账户accountc转账500元(包含开始标识start-1),账户accountc向账户accountd转账400元(包含结束标识end-1)”。

可选地,若在接收到包含开始标识的业务子信息之后的冻结时长内,未接收到包含相同的开始标识的业务子信息,并且未接收到包含与开始标识对应的结束标识的业务子信息,则将包含开始标识的业务子信息置入冻结数据库。在本发明实施例中,可在终端设备设置冻结时长(如30分钟),若在接收到包含开始标识的业务子信息后的冻结时长内,未接收到包含相同的开始标识的业务子信息,并且未接收到包含与开始标识对应的结束标识的业务子信息,证明对应的业务已处于停滞状态,故将终端设备本地的包含该开始标识的业务子信息存入冻结数据库,暂时不进行处理,防止停滞业务占用终端设备的处理资源。后续若接收到包含相同开始标识的业务子信息或者包含对应结束标识的业务子信息,则可从冻结数据库中查找出匹配的业务子信息,继续进行处理。

在s102中,将多个所述业务子信息提交至背书节点集,所述背书节点集中的背书节点用于对多个所述业务子信息逐个进行模拟交易验证,并在模拟交易验证成功后返回背书成功的背书结果。

将多个业务子信息提交至区块链中的背书节点集,背书节点集中包含一个或一个以上的背书节点,该背书节点用于对多个业务子信息逐个进行模拟交易验证。在区块链中,节点(peer)指的是区块链的通信实体,用于维护区块链账本的副本,节点属于逻辑概念,不同类型的多个节点可以运行在同一个物理机器上。在本发明实施例中,可在区块链的多个节点中预先进行指定背书节点,并在背书节点上部署模拟交易验证功能,模拟交易验证功能具体是在接收到多个业务子信息后,在区块链账本的副本中按照多个业务子信息逐个进行模拟交易验证(该验证过程仅为副本验证,即验证过程中进行的交易并不是真实交易,不会对区块链中的数据造成影响),并在所有业务子信息的模拟交易验证都成功后,返回背书成功的背书结果。

举例来说,背书节点在接收到第一个业务子信息为“账户accounta向账户accountb转账100元”,第二个业务子信息为“账户accountb向账户accountc转账500元”后,首先按照第一个业务子信息进行模拟交易验证,具体验证区块链账本的副本中,账户accounta的账户余额是否大于或等于100元,若账户accounta的账户余额大于或等于100元,则区块链账本的副本能够支持第一个业务子信息的交易,背书节点继续验证第二个业务子信息;若账户accounta的账户余额小于100元,则直接返回背书失败的背书结果。背书节点是在第一个业务子信息已模拟交易完成的基础上进行第二个业务子信息的验证,即在验证第二个业务子信息时,账户accountb已接收到账户accounta的100元转账,然后再结合区块链账本的副本,判断账户accountb的账户余额是否大于或等于500元,若账户accountb的账户余额大于或等于500元,则模拟交易验证成功,返回背书成功的背书结果;若该账户余额小于500元,则模拟交易验证失败,返回背书失败的背书结果。

可选地,将预设的智能合约部署至背书节点,由背书节点将复杂业务信息拆分为多个业务子信息,并对多个业务子信息逐个进行模拟交易验证。在本发明实施例中,可将对复杂业务信息进行串行顺序拆分的过程集成至背书节点中进行,具体地,基于串行顺序拆分的功能逻辑以及模拟交易验证的功能逻辑编写智能合约,并将智能合约部署至背书节点。部署完成后,终端设备在接收到复杂业务信息时,直接将复杂业务信息提交至背书节点集中的背书节点,由背书节点完成复杂业务信息的拆分以及对拆分出的多个业务子信息的模拟交易验证,从而减小了终端设备的工作量,提升了终端设备对复杂业务信息的处理效率。值得一提的是,终端设备可在接收到的复杂业务信息达到预设的数量或预设的数据量时,再将已有的复杂业务信息统一提交至背书节点集进行模拟交易验证,防止因频繁提交造成的通信资源损耗。

在s103中,若接收到的所述背书结果都为背书成功,且返回所述背书结果的所述背书节点满足预设条件,则将包含所述背书结果的多个所述业务子信息提交至预设的共识节点,所述共识节点用于将包含所述背书结果的多个所述业务子信息在区块链中进行记账。

终端设备获取背书节点集中的背书节点经模拟交易验证后返回的背书结果,若终端设备接收到的背书结果都为背书成功,且返回背书结果的背书节点满足预设条件,则将包含背书结果的多个业务子信息提交至预设的共识节点;若存在背书失败的背书结果,则停止对复杂业务信息的记账。其中,预设条件可根据实际应用场景进行确定,举例来说,预设条件可为返回背书结果的背书节点达到预设的背书数量(比如背书节点集中包括10个背书节点,则可设置背书数量为7个),还可为接收到指定的某个或某几个背书节点返回的背书结果等。区块链的共识节点在接收到包含背书结果的多个业务子信息后,将包含背书结果的多个业务子信息在区块链中进行共识验证。在本发明实施例中,区块链优选为联盟链,故共识节点可为组建联盟链的机构中指定机构的指定节点,共识节点进行共识验证的算法可采用实用拜占庭容错(practicalbyzantinefaulttolerance,pbft)算法或委托权益证明(delegatedproofofstake,dpos)算法等。共识节点在共识验证通过后,通知区块链中的所有节点将包含背书结果的多个业务子信息以区块形式加入区块链中,完成复杂业务信息在区块链账本中的记账。

通过图1所示实施例可知,在本发明实施例中,通过将复杂业务信息拆分为多个业务子信息,将多个业务子信息提交至背书节点,逐个进行模拟交易验证,若接收到的背书节点返回的背书结果都为背书成功,且返回的背书结果的背书节点满足预设条件,则将包含背书结果的多个业务子信息提交至共识节点进行记账,本发明实施例通过对复杂业务信息进行串行顺序拆分,并按照拆分出的顺序对多个业务子信息进行逐个模拟交易验证,提升了复杂业务信息在区块链中记账的成功率,并且终端设备在背书结果为背书失败时停止对整个复杂业务信息的记账,避免了区块链中的数据污染。

图2所示,是在本发明实施例一的基础上,对将多个业务子信息提交至背书节点集之后的过程进行扩展后得到的一种方法。本发明实施例提供了基于区块链的业务记账方法的实现流程图,如图2所示,该业务记账方法可以包括以下步骤:

在s201中,若接收到的所述背书结果都为背书成功,但返回所述背书结果的所述背书节点未满足所述预设条件,则将未返回所述背书结果的所述背书节点确定为目标节点,并再次将多个所述业务子信息提交至所述目标节点,其中所述目标节点处于在线状态。

在本发明实施例中,若终端设备将多个业务子信息提交至背书节点集后,接收到的背书结果都为背书成功,但是返回背书结果的背书节点未满足预设条件,比如返回背书结果的背书节点未达到预设的背书数量,则终端设备将未返回背书结果的背书节点确定为目标节点,并再次将多个业务子信息提交至目标节点。值得一提的是,由于终端设备无法与处于离线状态的背书节点建立通信连接,自然也无法接收到来自处于离线状态的背书节点返回的背书结果,故在确定目标节点时,先确定出背书节点集中处于在线状态的背书节点,再将处于在线状态的且未返回背书结果的背书节点确定为目标节点。

在s202中,若接收到所述目标节点关于多个所述业务子信息的接受背书提示,则监控所述目标节点,并在预设时间段内仍未收到所述目标节点返回的所述背书结果时进行告警。

终端设备在将多个业务子信息提交至目标节点后,若接收到目标节点返回的接受背书提示(该接受背书提示用于提示目标节点将对多个业务子信息进行背书),则对目标节点返回的数据进行监控。若终端设备在预设时间段内仍未收到目标节点返回的背书结果,证明该目标节点在背书过程中出现了问题(如该目标节点的计算资源被其他程序大幅占用),则终端设备基于该目标节点进行告警。其中,预设时间段可基于以往的多个复杂业务信息的平均背书时长进行确定,例如平均背书时长为8分钟,则可将预设时间段设置为稍大于平均背书时长,如设置为10分钟。

在s203中,若接收到所述目标节点关于多个所述业务子信息的拒绝背书提示,则每隔预设的提交间隔将多个所述业务子信息重复提交至所述目标节点,直到接收到所述目标节点的所述接受背书提示为止。

另一方面,若终端设备在将多个业务子信息提交至目标节点后,接收到目标节点返回的拒绝背书提示,由于目标节点可能处于占用率过高,无法进行背书的情形,故终端设备每隔预设的提交间隔(如1分钟)将多个业务子信息重复提交至目标节点,直到目标节点的占用率下降,能够进行背书,即终端设备接收到目标节点返回的接受背书提示为止。

通过图2所示实施例可知,在本发明实施例中,若终端设备接收到的背书结果都为背书成功,但返回背书结果的背书节点未满足预设条件,则将未返回背书结果的背书节点确定为目标节点,并再次将多个业务子信息提交至目标节点,提交完成后,若终端设备接收到目标节点返回的接受背书提示,则在预设时间段内仍未收到背书结果时进行告警;若终端设备接收到目标节点返回的拒绝背书提示,则每隔预设的提交间隔将多个业务子信息重复提交至目标节点,直到接收到目标节点的接受背书提示为止,本发明实施例针对背书成功的背书节点未满足预设条件的场景,对未返回背书结果的目标节点再度提交业务子信息,完善了背书流程,并且为无法背书的情况提供了应对机制。

图3所示,是在本发明实施例一的基础上,并在多个业务子信息按照发起方等级从低到高的顺序进行排列,背书节点集包括多个背书节点,每个背书节点都对应一个发起方等级的基础上,对将多个业务子信息提交至背书节点集的过程进行细化后得到的一种方法。本发明实施例提供了基于区块链的业务记账方法的实现流程图,如图3所示,该业务记账方法可以包括以下步骤:

在s301中,对多个所述业务子信息中位于首位的所述业务子信息进行分析,得到所述业务子信息的发起方等级。

在本发明实施例中,对于业务中可能出现的多个发起方都预设有一个发起方等级,在对复杂业务信息进行串行顺序拆分时,拆分得到的多个业务子信息是按照发起方等级从低到高的顺序进行排列的(因为通常的业务如转账都是自底向上的)。举例来说,用户在进行手机转账时,首先要在移动终端上调用应用程序,然后由应用程序将转账请求发送至银行机构,再由银行机构对转账请求进行最终确认,在上述例子中,按照对应的发起方等级从低到高的顺序对发起方进行排列的结果为移动终端,应用程序,银行机构。另一方面,在本发明实施例中,对于背书节点集中的背书节点,每个背书节点都对应一个发起方等级,也即每个背书节点虽然都维护区块链账本的副本,但是每个背书节点都设置有背书权限,只能对与对应发起方等级相关的业务信息进行模拟交易验证,比如移动终端对应的背书节点只能对发起方为移动终端的业务信息进行模拟交易验证。基于上述情况,在将多个业务子信息提交至背书节点集时,首先对多个业务子信息中位于首位的业务子信息进行分析,得到该业务子信息的发起方等级。

在s302中,将所述背书节点集中与所述发起方等级相符的所述背书节点确定为第一节点,并将位于首位的所述业务子信息提交至所述第一节点进行模拟交易验证。

在确定出位于首位的业务子信息的发起方等级后,在背书节点集中查找与该发起方等级相符的背书节点,并将之确定为第一节点。由于第一节点具有对该发起方等级相关的业务信息的背书权限,故将位于首位的业务子信息提交至第一节点进行模拟交易验证。其中,第一节点的数量可为一个或一个以上。

在s303中,在接收到所述第一节点返回的所述背书结果以及模拟交易结果后,分析出下一个所述业务子信息对应的第二节点,并将所述背书结果、所述模拟交易结果以及下一个所述业务子信息提交至所述第二节点进行模拟交易验证,直到所有所述业务子信息都被提交完毕为止。

在本发明实施例中,背书节点集中的背书节点在模拟交易验证完成后,除了要生成背书结果之外,还要生成模拟交易结果。比如位于首位的业务子信息为“账户accounta向账户accountb转账100元”,则在将该业务子信息提交至第一节点后,若第一节点对其的模拟交易验证成功,则第一节点生成的背书结果为背书成功,在第一节点生成的模拟交易结果中,账户accounta的账户余额已减少100元,账户accountb的账户余额已增加100元。终端设备在接收到第一节点返回的背书结果以及模拟交易结果后,若背书结果为成功,则对位于首位的业务子信息的下一个业务子信息进行分析,得到背书节点集中与下一个业务子信息对应的第二节点,并将背书结果、模拟交易结果以及下一个业务子信息提交至第二节点进行背书,重复上述过程直到所有的业务子信息都背书完毕为止。此外,在本发明实施例中,可对每一个发起方等级都设置一个节点条件,多个发起方等级的节点条件可设置为相同或不同,对于某一个业务子信息的背书结果,终端设备在判断出返回背书结果的背书节点满足对应的节点条件后,再执行对下一个业务子信息的背书。

可选地,若第一节点返回的背书结果为背书失败,则停止对多个业务子信息的记账,并基于模拟交易结果以及模拟交易结果对应的业务子信息生成并输出错误信息。若第一节点(或其他发起方等级对应的背书节点)返回的背书结果为背书失败,则终端设备停止对多个业务子信息的记账,并基于该第一节点生成的模拟交易结果以及该模拟交易结果对应的业务子信息生成并输出错误信息,便于用户从错误信息中查找记账失败的原因,如用户账户余额不足等,完善了对记账失败情况的应对机制。

通过图3所示实施例可知,在本发明实施例中,对多个业务子信息中位于首位的业务子信息进行分析得到发起方等级,将背书节点集中与该发起方等级相符的背书节点确定为第一节点,并将位于首位的业务子信息提交至第一节点进行模拟交易验证,在接收到第一节点返回的背书结果以及模拟交易结果后,分析出下一个业务子信息对应的第二节点,并将背书结果、模拟交易结果以及下一个业务子信息提交至第二节点进行模拟交易验证,直到所有业务子信息都被提交完毕为止,本发明实施例针对背书节点设置有背书权限的场景,将各个业务子信息分别提交至对应的背书节点进行背书,提升了背书的保密性,并且,在提交非首位的业务子信息时还要提交已有的模拟交易结果,提升了背书的完整性。

图4所示,是在本发明实施例三的基础上,并在每个发起方等级对应一个预设的密钥对,密钥对包括公钥和私钥,背书节点持有与自身的发起方等级对应的私钥的基础上,对将背书节点集中与发起方等级相符的背书节点确定为第一节点,并将位于首位的业务子信息提交至第一节点进行模拟交易验证的过程进行细化后得到的一种方法。本发明实施例提供了基于区块链的业务记账方法的实现流程图,如图4所示,该业务记账方法可以包括以下步骤:

在s401中,将多个所述业务子信息按照所述发起方等级对应的所述公钥进行分别加密,根据位于首位的所述业务子信息对应的所述公钥对预设的验证信息进行加密,并将加密后的所述验证信息发送至所述背书节点集中的各个所述背书节点,所述背书节点用于根据自身的所述私钥对加密后的所述验证信息进行解密,得到解密结果。

在本发明实施例中,每个发起方等级都对应一个密钥对,每个密钥对都包括公钥和私钥,密钥优选通过非对称加密算法生成,如椭圆曲线加密算法(ellipticcurvecryptography,ecc)或rsa加密算法等。背书节点持有与自身的发起方等级对应的私钥,终端设备至少持有与各个发起方等级对应的公钥。终端设备在将复杂业务信息拆分为多个业务子信息后,将每个业务子信息按照发起方等级对应的公钥进行加密,并根据位于首位的业务子信息对应的公钥对预设的验证信息进行加密。在加密完成后,终端设备将加密后的验证信息发送至背书节点集中的多个背书节点,其中验证信息可自定义设置。对于背书节点集中的多个背书节点,预先设置其根据持有的私钥对接收到的加密后的验证信息进行解密,并将解密结果返回终端设备。

在s402中,在接收到所述背书节点返回的所述解密结果后,若所述解密结果与所述验证信息相同,则将返回所述解密结果的所述背书节点确定为所述第一节点,并将加密后的位于首位的所述业务子信息提交至所述第一节点。

终端设备在接收到背书节点返回的解密结果后,若解密结果与加密前的验证信息相同,则将返回该解密结果的背书节点确定为第一节点,即通过验证信息来确定背书节点集中的第一节点。确定第一节点后,终端设备将加密后的位于首位的业务子信息提交至第一节点,第一节点基于自身持有的私钥对加密后的业务子信息进行解密,并对得到的业务子信息进行模拟交易验证。在本发明实施例的另一种背书方式中,终端设备还可在确定出第一节点后,将加密后多个业务子信息都提交至第一节点,由于第一节点只持有与自身发起方等级对应的私钥,故第一节点只能实现对加密后的位于首位的业务子信息的成功解密,提升了信息的保密性。

通过图4所示实施例可知,在本发明实施例中,将多个业务子信息分别按照发起方等级对应的公钥进行加密,根据位于首位的业务子信息对应的公钥对预设的验证信息进行加密,并将加密后的验证信息发送至背书节点集中的各个背书节点,在接收到背书节点返回的解密结果后,若解密结果与验证信息相同,则将返回解密结果的背书节点确定为第一节点,并将加密后的位于首位的业务子信息提交至第一节点,本发明实施例以密码学的方式实现了第一节点的确认以及各个业务子信息在背书时的隔离,提升了信息的保密性。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

图5示出了本发明实施例提供的终端设备的结构框图,该终端设备包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。

参见图5,所述终端设备包括:

拆分单元51,用于对接收到的复杂业务信息进行串行顺序拆分,得到多个业务子信息,其中,所述复杂业务信息包含开始标识和结束标识,所述开始标识用于指示位于首位的所述业务子信息,所述结束标识用于指示位于末尾的所述业务子信息;

第一提交单元52,用于将多个所述业务子信息提交至背书节点集,所述背书节点集中的背书节点用于对多个所述业务子信息逐个进行模拟交易验证,并在模拟交易验证成功后返回背书成功的背书结果;

第二提交单元53,用于若接收到的所述背书结果都为背书成功,且返回所述背书结果的所述背书节点满足预设条件,则将包含所述背书结果的多个所述业务子信息提交至预设的共识节点,所述共识节点用于将包含所述背书结果的多个所述业务子信息在区块链中进行记账。

可选地,第一提交单元52包括:

确定单元,用于若接收到的所述背书结果都为背书成功,但返回所述背书结果的所述背书节点未满足所述预设条件,则将未返回所述背书结果的所述背书节点确定为目标节点,并再次将多个所述业务子信息提交至所述目标节点,其中所述目标节点处于在线状态;

监控单元,用于若接收到所述目标节点关于多个所述业务子信息的接受背书提示,则监控所述目标节点,并在预设时间段内仍未收到所述目标节点返回的所述背书结果时进行告警;

重复提交单元,用于若接收到所述目标节点关于多个所述业务子信息的拒绝背书提示,则每隔预设的提交间隔将多个所述业务子信息重复提交至所述目标节点,直到接收到所述目标节点的所述接受背书提示为止。

可选地,多个业务子信息按照发起方等级从低到高的顺序进行排列,背书节点集包括多个所述背书节点,每个背书节点都对应一个发起方等级,第一提交单元52包括:

分析单元,用于对多个所述业务子信息中位于首位的所述业务子信息进行分析,得到所述业务子信息的发起方等级;

提交子单元,用于将所述背书节点集中与所述发起方等级相符的所述背书节点确定为第一节点,并将位于首位的所述业务子信息提交至所述第一节点进行模拟交易验证;

顺序提交单元,用于在接收到所述第一节点返回的所述背书结果以及模拟交易结果后,分析出下一个所述业务子信息对应的第二节点,并将所述背书结果、所述模拟交易结果以及下一个所述业务子信息提交至所述第二节点进行模拟交易验证,直到所有所述业务子信息都被提交完毕为止。

可选地,每个发起方等级对应一个预设的密钥对,密钥对包括公钥和私钥,背书节点持有与自身的发起方等级对应的私钥,提交子单元包括:

加密单元,用于将多个所述业务子信息按照所述发起方等级对应的所述公钥进行分别加密,根据位于首位的所述业务子信息对应的所述公钥对预设的验证信息进行加密,并将加密后的所述验证信息发送至所述背书节点集中的各个所述背书节点,所述背书节点用于根据自身的所述私钥对加密后的所述验证信息进行解密,得到解密结果;

验证单元,用于在接收到所述背书节点返回的所述解密结果后,若所述解密结果与所述验证信息相同,则将返回所述解密结果的所述背书节点确定为所述第一节点,并将加密后的位于首位的所述业务子信息提交至所述第一节点。

可选地,顺序提交单元包括:

停止记账单元,用于若所述第一节点返回的所述背书结果为背书失败,则停止对多个所述业务子信息的记账,并基于所述模拟交易结果以及所述模拟交易结果对应的所述业务子信息生成并输出错误信息。

因此,本发明实施例提供的终端设备通过将复杂业务信息拆分出的多个业务子信息逐个在背书节点进行背书,并在所有的背书结果都为背书成功时才进行记账,提升了业务信息的记账成功率,避免因反记账造成的区块链数据污染。

图6是本发明实施例提供的终端设备的示意图。如图6所示,该实施例的终端设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如基于区块链的业务记账程序。所述处理器60执行所述计算机程序62时实现上述各个基于区块链的业务记账方法实施例中的步骤,例如图1所示的步骤s101至s103。或者,所述处理器60执行所述计算机程序62时实现上述各终端设备实施例中各单元的功能,例如图5所示单元51至53的功能。

示例性的,所述计算机程序62可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述终端设备6中的执行过程。例如,所述计算机程序62可以被分割成拆分单元、第一提交单元以及第二提交单元,各单元具体功能如下:

拆分单元,用于对接收到的复杂业务信息进行串行顺序拆分,得到多个业务子信息,其中,所述复杂业务信息包含开始标识和结束标识,所述开始标识用于指示位于首位的所述业务子信息,所述结束标识用于指示位于末尾的所述业务子信息;

第一提交单元,用于将多个所述业务子信息提交至背书节点集,所述背书节点集中的背书节点用于对多个所述业务子信息逐个进行模拟交易验证,并在模拟交易验证成功后返回背书成功的背书结果;

第二提交单元,用于若接收到的所述背书结果都为背书成功,且返回所述背书结果的所述背书节点满足预设条件,则将包含所述背书结果的多个所述业务子信息提交至预设的共识节点,所述共识节点用于将包含所述背书结果的多个所述业务子信息在区块链中进行记账。

所述终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器60可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器61可以是所述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61也可以是所述终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器61还可以既包括所述终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将所述终端设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的终端设备和方法,可以通过其它的方式实现。例如,以上所描述的终端设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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