基于区块链的交易处理方法及装置、处理器和电子设备与流程

文档序号:32132048发布日期:2022-11-09 10:26阅读:129来源:国知局
基于区块链的交易处理方法及装置、处理器和电子设备与流程

1.本技术涉及区块链领域,具体而言,涉及一种基于区块链的交易处理方法及装置、处理器和电子设备。


背景技术:

2.区块链是一种的按照时间参数分布式记账的技术,受限于共识、出块速度以及频繁的与账本数据交互的原因,区块链的交易性能很难突破瓶颈,一直是商用区块链的诟病。
3.目前相关技术比较依赖于更好的共识算法,即依赖于可插拔式的共识算法缩短各个节点达成共识的速度,具体为,通过不同的应用场景来使用特性的共识算法,使得区块链交易性能得到一定的提升。
4.但是,目前相关技术中依赖于更高效更适合的共识算法,且共识效率的提升只能缩短区块链共识的时间系数,区块链出块时间以及账本记账时间都未得到缩减。故整体区块链交易性能提升的幅度较为有限,尤其在高并发的场合,区块链需要频繁的访问和更新账本数据,频繁的出块以及访问账本数据耗费了大量的时间。因此,只依靠单一的共识算法不能有效提升效率。
5.针对相关技术中区块链处理交易的效率较低的问题,目前尚未提出有效的解决方案。


技术实现要素:

6.本技术的主要目的在于提供一种基于区块链的交易处理方法及装置、处理器和电子设备,以解决相关技术中区块链处理交易的效率较低的问题。
7.为了实现上述目的,根据本技术的一个方面,提供了一种基于区块链的交易处理方法。该方法包括:通过区块链接收目标设备发送的交易请求;确定所述区块链中的目标账本数据,其中,所述目标账本数据为以下至少之一:所述区块链中本地的第一账本数据、所述区块链中缓存的第二账本数据;从所述目标账本数据中获取与所述交易请求对应的目标数据,并将所述目标数据返回至所述目标设备。
8.进一步地,从所述目标账本数据中获取与所述交易请求对应的目标数据包括:判断所述区块链中待处理交易请求的数量;若所述区块链中待处理交易请求的数量大于预设值,则从所述第二账本数据中获取与所述交易请求对应的目标数据;若所述区块链中待处理交易请求的数量不大于所述预设值,则依据所述第一账本数据,获取与所述交易请求对应的目标数据。
9.进一步地,所述交易请求的类型为以下至少之一:查询交易的类型和更新交易的类型,若所述交易请求的类型为查询交易的类型,在若所述区块链中待处理交易请求的数量大于预设值,则从所述第二账本数据中获取与所述交易请求对应的目标数据之后,所述方法还包括:确定从所述第二账本数据中获取所述目标数据的获取结果;若所述获取结果表征从所述第二账本数据中获取所述目标数据成功,则将从所述第二账本数据中获取的所
述目标数据返回至所述目标设备;若所述获取结果表征从所述第二账本数据中获取所述目标数据失败,则从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备。
10.进一步地,若所述交易请求的类型为更新交易的类型,在将从所述第二账本数据中获取的所述目标数据返回至所述目标设备之后,或者,在从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备之后,所述方法还包括:获取所述区块链中第一数据集中的第一数据,其中,所述第一数据集中包括以下至少之一:从所述第一账本数据中读取的数据、写入所述第一账本数据中的数据;依据所述第一数据,对所述第二账本数据进行更新,得到第一更新结果;将所述第一更新结果返回至所述目标设备。
11.进一步地,若所述交易请求的类型为查询交易的类型,若所述区块链中待处理交易的数量不大于所述预设值,则依据所述第一账本数据,获取与所述交易请求对应的目标数据包括:判断所述第二账本数据中或者所述区块链中缓存的第一交易数据中是否有数据;若所述第二账本数据中有数据,则依据所述第二账本数据和所述第一数据,对所述第一账本数据进行更新,得到第三账本数据,并从所述第三账本数据中获取与所述交易请求对应的目标数据;若所述区块链中缓存的第一交易数据中有数据,则依据所述第一交易数据,对所述区块链中本地的第一区块数据进行更新,得到第二区块数据;依据所述第二区块数据对所述第一账本数据进行更新,得到第四账本数据,并从所述第四账本数据中获取与所述交易请求对应的目标数据;若所述第二账本数据中没有数据,且所述区块链中缓存的第一交易数据中没有数据,则从所述第一账本数据中获取与所述交易请求对应的目标数据。
12.进一步地,若所述交易请求的类型为更新交易的类型,在从所述第三账本数据中获取与所述交易请求对应的目标数据之后,或者,在从所述第四账本数据中获取与所述交易请求对应的目标数据之后,或者,在从所述第一账本数据中获取与所述交易请求对应的目标数据之后,所述方法还包括:将所述目标数据返回至所述目标设备;在将所述目标数据返回至所述目标设备之后,依据所述第一数据,对所述第一账本数据或者所述第三账本数据或者所述第四账本数据进行更新,得到第二更新结果;将所述第二更新结果返回至所述目标设备。
13.进一步地,在依据所述第二区块数据对所述第一账本数据进行更新,得到第四账本数据之后,所述方法还包括:判断所述第四账本数据和所述第二账本数据是否相同;若所述第四账本数据和所述第二账本数据相同,则清除所述第二账本数据、所述第一交易数据和所述第一数据集中的数据。
14.进一步地,在将从所述第二账本数据中获取的所述目标数据返回至所述目标设备之后,或者,在从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备之后,或者,在将所述第一更新结果返回至所述目标设备之后,所述方法还包括:判断所述第二账本数据中数据的数量;若所述第二账本数据中数据的数量不小于第一预设阈值,则对所述第一账本数据和所述区块链中本地的第一区块数据进行更新。
15.进一步地,在通过目标设备获取目标交易之后,所述方法还包括:对所述目标交易进行签名;依据所述目标交易的签名,确定所述目标交易的合法性。
16.为了实现上述目的,根据本技术的另一方面,提供了一种基于区块链的交易处理装置。该装置包括:第一接收单元,用于通过区块链接收目标设备发送的交易请求;第一确
定单元,用于确定所述区块链中的目标账本数据,其中,所述目标账本数据为以下至少之一:所述区块链中本地的第一账本数据、所述区块链中缓存的第二账本数据;第一处理单元,用于从所述目标账本数据中获取与所述交易请求对应的目标数据,并将所述目标数据返回至所述目标设备。
17.进一步地,所述第一处理单元包括:第一判断模块,用于判断所述区块链中待处理交易请求的数量;第一处理模块,用于若所述区块链中待处理交易请求的数量大于预设值,则从所述第二账本数据中获取与所述交易请求对应的目标数据;第二处理模块,用于若所述区块链中待处理交易请求的数量不大于所述预设值,则依据所述第一账本数据,获取与所述交易请求对应的目标数据。
18.进一步地,所述交易请求的类型为以下至少之一:查询交易的类型和更新交易的类型,若所述交易请求的类型为查询交易的类型,所述装置还包括:第二确定单元,用于在若所述区块链中待处理交易请求的数量大于预设值,则从所述第二账本数据中获取与所述交易请求对应的目标数据之后,确定从所述第二账本数据中获取所述目标数据的获取结果;第一返回单元,用于若所述获取结果表征从所述第二账本数据中获取所述目标数据成功,则将从所述第二账本数据中获取的所述目标数据返回至所述目标设备;第二处理单元,用于若所述获取结果表征从所述第二账本数据中获取所述目标数据失败,则从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备。
19.进一步地,若所述交易请求的类型为更新交易的类型,所述装置还包括:第一获取单元,用于在将从所述第二账本数据中获取的所述目标数据返回至所述目标设备之后,或者,在从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备之后,获取所述区块链中第一数据集中的第一数据,其中,所述第一数据集中包括以下至少之一:从所述第一账本数据中读取的数据、写入所述第一账本数据中的数据;第一更新单元,用于依据所述第一数据,对所述第二账本数据进行更新,得到第一更新结果;第二返回单元,用于将所述第一更新结果返回至所述目标设备。
20.进一步地,若所述交易请求的类型为查询交易的类型,所述第二处理模块包括:第一判断子模块,用于判断所述第二账本数据中或者所述区块链中缓存的第一交易数据中是否有数据;第一处理子模块,用于若所述第二账本数据中有数据,则依据所述第二账本数据和所述第一数据,对所述第一账本数据进行更新,得到第三账本数据,并从所述第三账本数据中获取与所述交易请求对应的目标数据;第一更新子模块,用于若所述区块链中缓存的第一交易数据中有数据,则依据所述第一交易数据,对所述区块链中本地的第一区块数据进行更新,得到第二区块数据;第二处理子模块,用于依据所述第二区块数据对所述第一账本数据进行更新,得到第四账本数据,并从所述第四账本数据中获取与所述交易请求对应的目标数据;第一获取子模块,用于若所述第二账本数据中没有数据,且所述区块链中缓存的第一交易数据中没有数据,则从所述第一账本数据中获取与所述交易请求对应的目标数据。
21.进一步地,若所述交易请求的类型为更新交易的类型,所述装置还包括:第三返回单元,用于在从所述第三账本数据中获取与所述交易请求对应的目标数据之后,或者,在从所述第四账本数据中获取与所述交易请求对应的目标数据之后,或者,在从所述第一账本数据中获取与所述交易请求对应的目标数据之后,将所述目标数据返回至所述目标设备;
第二更新单元,用于在将所述目标数据返回至所述目标设备之后,依据所述第一数据,对所述第一账本数据或者所述第三账本数据或者所述第四账本数据进行更新,得到第二更新结果;第四返回单元,用于将所述第二更新结果返回至所述目标设备。
22.进一步地,所述装置还包括:第一判断单元,用于在依据所述第二区块数据对所述第一账本数据进行更新,得到第四账本数据之后,判断所述第四账本数据和所述第二账本数据是否相同;第一清除单元,用于若所述第四账本数据和所述第二账本数据相同,则清除所述第二账本数据、所述第一交易数据和所述第一数据集中的数据。
23.进一步地,所述装置还包括:第二判断单元,用于在将从所述第二账本数据中获取的所述目标数据返回至所述目标设备之后,或者,在从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备之后,或者,在将所述第一更新结果返回至所述目标设备之后,判断所述第二账本数据中数据的数量;第三更新单元,用于若所述第二账本数据中数据的数量不小于第一预设阈值,则对所述第一账本数据和所述区块链中本地的第一区块数据进行更新。
24.进一步地,在通过目标设备获取目标交易之后,所述装置还包括:第一签名单元,用于对所述目标交易进行签名;第三确定单元依据所述目标交易的签名,确定所述目标交易的合法性。
25.为了实现上述目的,根据本技术的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的任意一项所述的基于区块链的交易处理方法。
26.为了实现上述目的,根据本技术的另一方面,提供了一种电子设备,所述电子设备包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的任意一项所述的基于区块链的交易处理方法。
27.通过本技术,采用以下步骤:通过区块链接收目标设备发送的交易请求;确定区块链中的目标账本数据,其中,目标账本数据为以下至少之一:区块链中本地的第一账本数据、区块链中缓存的第二账本数据;从目标账本数据中获取与交易请求对应的目标数据,并将目标数据返回至目标设备,解决了相关技术中区块链处理交易的效率较低的问题。通过区块链接收目标设备发送的交易请求,然后确定区块链中的目标账本数据,其中,目标账本数据为以下至少之一:区块链中本地的第一账本数据、区块链中缓存的第二账本数据,并从目标账本数据中获取与交易请求对应的目标数据,并将目标数据返回至目标设备,从而达到了提升区块链处理交易的效率的效果。
附图说明
28.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
29.图1是根据本技术实施例提供的基于区块链的交易处理方法的流程图;
30.图2是本技术实施例中的区块链平台中区块链加速模块的示意图;
31.图3是根据本技术实施例提供的可选的基于区块链的交易处理方法的流程图;
32.图4是根据本技术实施例提供的基于区块链的交易处理装置的示意图;
33.图5是根据本技术实施例提供的电子设备的示意图。
具体实施方式
34.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
35.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
36.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
37.需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
38.下面结合优选的实施步骤对本发明进行说明,图1是根据本技术实施例提供的基于区块链的交易处理方法的流程图,如图1所示,该方法包括如下步骤:
39.步骤s101,通过区块链接收目标设备发送的交易请求。
40.例如,客户端(上述的目标设备)通过发起交易请求到区块链平台。
41.步骤s102,确定区块链中的目标账本数据,其中,目标账本数据为以下至少之一:区块链中本地的第一账本数据、区块链中缓存的第二账本数据。
42.例如,区块链中的账本数据可以为本地账本数据(上述的第一账本数据)和缓存账本数据(上述的第二账本数据)。
43.步骤s103,从目标账本数据中获取与交易请求对应的目标数据,并将目标数据返回至目标设备。
44.例如,可以从本地账本数据中查询交易请求需要查询的数据,也可以从缓存账本数据中查询交易请求需要查询的数据。另外,如果本地账本数据中存在交易请求需要查询的部分数据,缓存账本数据中存在交易请求需要查询的另一部分数据,则可以既从本地账本数据中查询数据,同时也可以从本地账本数据中查询数据。并将最终查询到的数据返回给客户端。
45.通过上述的步骤s101至s104,通过区块链接收目标设备发送的交易请求,然后确定区块链中的目标账本数据,其中,目标账本数据为以下至少之一:区块链中本地的第一账本数据、区块链中缓存的第二账本数据,并从目标账本数据中获取与交易请求对应的目标数据,并将目标数据返回至目标设备,从而达到了提升区块链处理交易的效率的效果。
46.为了准确的处理交易请求,如何确定交易的合法性也是关键点之一,在本技术实
施例提供的基于区块链的交易处理方法中,对确定交易的合法性进行了进一步限定,确定交易的合法性可以采用以下技术特征实现:对目标交易进行签名;依据目标交易的签名,确定目标交易的合法性。
47.例如,客户端通过发起交易请求到区块链平台,并使用用户的私钥对交易信息进行签名,然后区块链平台中共识模块中的背书节点收到客户端的交易请求后,对该交易进行合法性校验。
48.通过上述的方案,可以保证客户端发起的交易是合法的,从而可以保证系统的安全性。
49.为了快速准确的获取与交易请求对应的目标数据,在本技术实施例提供的基于区块链的交易处理方法中,还可以通过以下步骤获取与交易请求对应的目标数据:判断区块链中待处理交易请求的数量;若区块链中待处理交易请求的数量大于预设值,则从第二账本数据中获取与交易请求对应的目标数据;若区块链中待处理交易请求的数量不大于预设值,则依据第一账本数据,获取与交易请求对应的目标数据。
50.例如,在区块链平台中构建如图2所示的区块链加速模块。而且,区块链加速模块可以分为加速模式、读写数据集、交易缓存、账本数据缓存、数据同步、性能记录6个模块。其中,加速模式:分为加速关闭模式、加速开启模式、智能开关模式三种模式;智能开关模式:当某一段时间平均tps(transaction processing systems,每秒事务处理量),即每秒交易的笔数超过某个特定的阈值触发加速开启模式,当某段时间平均tps低于特定的阈值触发加速关闭模式,且只有在加速开启模式时,区块链加速模块中读写数据集、交易缓存、账本数据缓存、数据同步才会生效;读写数据集:交易通过合法性校验后、还未对账本数据发生操作,在链码执行完成后,将返回链码读取过的数据集和链码写入的数据集,读集和写集将在数据同步阶段最终写入账本;交易缓存:缓存每笔客户端发起通过背书以及共识的交易;账本数据缓存:交易缓存造成的账本世界状态变更记录在账本数据缓存中;数据同步:将交易缓存打包形成数据块,存放如区块数据中,将账本数据缓存的世界状态同步至账本数据;性能记录:通过记录交易的tps,配合智能开关模式来触发加速开启模式或加速关闭模式。
51.例如,在交易通过合法性检查后,背书节点调用链码,链码执行时,会先判断区块链加速模块的模式,如果为关闭模式(即每秒交易的笔数低于某个特定的阈值),则依据本地账本数据,获取与交易请求对应的数据;如果为开启模式(即每秒交易的笔数超过某个特定的阈值),则从缓存账本数据中获取与交易请求对应的数据。
52.通过上述的方案,可以提升获取与客户端发送的交易请求对应的数据的效率。
53.为了快速准确的依据第一账本数据,获取与交易请求对应的目标数据,在本技术实施例提供的基于区块链的交易处理方法中,还可以通过以下步骤依据第一账本数据,获取与交易请求对应的目标数据:若交易请求的类型为查询交易的类型,判断第二账本数据中或者区块链中缓存的第一交易数据中是否有数据;若第二账本数据中有数据,则依据第二账本数据和第一数据,对第一账本数据进行更新,得到第三账本数据,并从第三账本数据中获取与交易请求对应的目标数据;若区块链中缓存的第一交易数据中有数据,则依据第一交易数据,对区块链中本地的第一区块数据进行更新,得到第二区块数据;依据第二区块数据对第一账本数据进行更新,得到第四账本数据,并从第四账本数据中获取与交易请求对应的目标数据;若第二账本数据中没有数据,且区块链中缓存的第一交易数据中没有数
据,则从第一账本数据中获取与交易请求对应的目标数据。
54.例如,先判断区块链加速模块中交易缓存或者账本数据缓存是否有数据,如果区块链加速模块中交易缓存或者账本数据缓存有数据,则区块按加速模块通过异步调用读写数据集模块,执行每个键值对最新的写数据集操作,将本地数据账本数据,更新至最新。将交易缓存数据,打包成区块,更新本地区块数据。如果区块链加速模块中交易缓存以及账本数据缓存没有数据,则跳过区块链加速模块的执行,通过直接读取本地账本数据。另外,需要指出的是链码在背书节点是模拟执行,即更新操作不会对本地账本数据作改变。
55.综上所述,通过在区块链底层增加区块链加速模块,实现了在用户无感知情况下,实时高效的访问区块链数据,尤其是在高并发的场景,实现了客户端响应与区块链出块、账本交互的异步进行,保障了区块链运行的高效性和准确性。
56.为了保证清理缓存数据和读写数据集中的数据的及时性,在本技术实施例提供的基于区块链的交易处理方法中,还可以通过以下步骤清理缓存数据和读写数据集中的数据:在依据第二区块数据对第一账本数据进行更新,得到第四账本数据之后,判断第四账本数据和第二账本数据是否相同;若第四账本数据和第二账本数据相同,则清除第二账本数据、第一交易数据和第一数据集中的数据。
57.例如,比较账本数据缓存以及本地账本数据每个键值对是否一致,一致则清理账本数据缓存、交易缓存以及读写数据集中的数据。
58.通过上述的方案,可以及时的清理缓存数据及读写数据集中的数据,避免数据过大,导致系统无法使用的情况出现。同时可以提升后续在缓存数据集数据集中查询数据时的方便性。
59.为了快速的响应客户端发起的更新交易的请求,在本技术实施例提供的基于区块链的交易处理方法中,还可以通过以下步骤响应客户端发起的更新交易的请求:若交易请求的类型为更新交易的类型,在从第三账本数据中获取与交易请求对应的目标数据之后,或者,在从第四账本数据中获取与交易请求对应的目标数据之后,或者,在从第一账本数据中获取与交易请求对应的目标数据之后,将目标数据返回至目标设备;在将目标数据返回至目标设备之后,依据第一数据,对第一账本数据或者第三账本数据或者第四账本数据进行更新,得到第二更新结果;将第二更新结果返回至目标设备。
60.例如,可以根据读写数据集中的数据,更新本地账本数据,同时也可以根据交易的阈值、区块大小、时间参数等形成本地区块数据。然后并加更新后的结果,返回至客户端。
61.通过上述的方案,可以提升处理客户端发起的更新交易的请求的效率。
62.为了快速准确的获取与交易请求对应的目标数据,在本技术实施例提供的基于区块链的交易处理方法中,还可以通过以下步骤获取与交易请求对应的目标数据:交易请求的类型为以下至少之一:查询交易的类型和更新交易的类型,若交易请求的类型为查询交易的类型,在若区块链中待处理交易请求的数量大于预设值,则从第二账本数据中获取与交易请求对应的目标数据之后,确定从第二账本数据中获取目标数据的获取结果;若获取结果表征从第二账本数据中获取目标数据成功,则将从第二账本数据中获取的目标数据返回至目标设备;若获取结果表征从第二账本数据中获取目标数据失败,则从第一账本数据中获取目标数据,并将目标数据返回至目标设备。
63.例如,如果区块链加速模块为开启模式,执行区块链加速模块,并优先从区块链加
速模块数据缓存中获取,区块链加速模块中数据缓存中不存在的数据,再从本地账本数据中获取。并且,如果是查询交易,则根据获取的数据直接返回给客户端。
64.通过上述的方案,当区块链加速模块为开启模式时,可以快速准确的处理客户端发起的查询交易的请求。
65.为了快速的响应客户端发起的更新交易的请求,在本技术实施例提供的基于区块链的交易处理方法中,还可以通过以下步骤响应客户端发起的更新交易的请求:若交易请求的类型为更新交易的类型,在将从第二账本数据中获取的目标数据返回至目标设备之后,或者,在从第一账本数据中获取目标数据,并将目标数据返回至目标设备之后,获取区块链中第一数据集中的第一数据,其中,第一数据集中包括以下至少之一:从第一账本数据中读取的数据、写入第一账本数据中的数据;依据第一数据,对第二账本数据进行更新,得到第一更新结果;将第一更新结果返回至目标设备。
66.例如,当区块链加速模块为开启模式时,且客户端发起的交易请求的类型是更新交易,则区块链加速模块通过调用读写数据集模块,记录每个键值对的读取以及写入步骤,并将该键值对最新的世界状态记录到账本数据缓存,将交易结果返回给客户端。
67.通过上述的方案,当区块链加速模块为开启模式时,可以快速准确的处理客户端发起的更新交易的请求。
68.为了及时的更新本地账本数据和本地区块数据,在本技术实施例提供的基于区块链的交易处理方法中,还可以通过以下步骤更新本地账本数据和本地区块数据:在将从第二账本数据中获取的目标数据返回至目标设备之后,或者,在从第一账本数据中获取目标数据,并将目标数据返回至目标设备之后,或者,在将第一更新结果返回至目标设备之后,判断第二账本数据中数据的数量;若第二账本数据中数据的数量不小于第一预设阈值,则对第一账本数据和区块链中本地的第一区块数据进行更新。
69.例如,在将从缓存账本数据中获取的数据返回至客户端之后,或者,在从本地账本数据中获取数据,并将数据返回至客户端之后,或者,在将对缓存账本数据的更新结果返回至客户端之后,区块链加速模块同时调用交易缓存,缓存每笔更新类型交易,当交易缓存、账本数据缓存达到某一个预设的阈值时,则更新本地账本数据和本地区块数据。另外,或者当距上次数据同步的时间超过某个特定的阈值时,也可以更新本地账本数据和本地区块数据。
70.通过上述的方案,可以保证本地账本数据和本地区块数据的准确性,从而可以保证处理客户端发起的查询交易的请求的准确性。
71.例如,图3是根据本技术实施例提供的可选的基于区块链的交易处理方法的流程图,如图3所示,可选的基于区块链的交易处理方法的步骤具体为,客户端通过发起交易请求先到区块链平台中的共识模块,通过共识模块对该交易进行合法校验,且在该交易通过合法校验的情况下,进入区块链平台中的区块链加速模块,并可以通过区块链加速模块与本地账本数据及本地区块数据进行数据同步,然后还可以依据本地账本数据或者区块链加速模块中的缓存账本数据,获取与客户端发起的交易相对应的数据,最后将数据返回至客户端。
72.综上,本技术实施例提供的基于区块链的交易处理方法,通过区块链接收目标设备发送的交易请求;确定区块链中的目标账本数据,其中,目标账本数据为以下至少之一:
区块链中本地的第一账本数据、区块链中缓存的第二账本数据;从目标账本数据中获取与交易请求对应的目标数据,并将目标数据返回至目标设备,解决了相关技术中区块链处理交易的效率较低的问题。通过区块链接收目标设备发送的交易请求,然后确定区块链中的目标账本数据,其中,目标账本数据为以下至少之一:区块链中本地的第一账本数据、区块链中缓存的第二账本数据,并从目标账本数据中获取与交易请求对应的目标数据,并将目标数据返回至目标设备,从而达到了提升区块链处理交易的效率的效果。
73.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
74.本技术实施例还提供了一种基于区块链的交易处理装置,需要说明的是,本技术实施例的基于区块链的交易处理装置可以用于执行本技术实施例所提供的用于基于区块链的交易处理方法。以下对本技术实施例提供的基于区块链的交易处理装置进行介绍。
75.图4是根据本技术实施例的基于区块链的交易处理装置的示意图。如图4所示,该装置包括:第一接收单元401、第一确定单元402和第一处理单元403。
76.具体地,第一接收单元401,用于通过区块链接收目标设备发送的交易请求;
77.第一确定单元402,用于确定区块链中的目标账本数据,其中,目标账本数据为以下至少之一:区块链中本地的第一账本数据、区块链中缓存的第二账本数据;
78.第一处理单元403,用于从目标账本数据中获取与交易请求对应的目标数据,并将目标数据返回至目标设备。
79.综上,本技术实施例提供的基于区块链的交易处理装置,通过第一接收单元401通过区块链接收目标设备发送的交易请求;第一确定单元402确定区块链中的目标账本数据,其中,目标账本数据为以下至少之一:区块链中本地的第一账本数据、区块链中缓存的第二账本数据;第一处理单元403从目标账本数据中获取与交易请求对应的目标数据,并将目标数据返回至目标设备,解决了相关技术中区块链处理交易的效率较低的问题。通过区块链接收目标设备发送的交易请求,然后确定区块链中的目标账本数据,其中,目标账本数据为以下至少之一:区块链中本地的第一账本数据、区块链中缓存的第二账本数据,并从目标账本数据中获取与交易请求对应的目标数据,并将目标数据返回至目标设备,从而达到了提升区块链处理交易的效率的效果。
80.可选地,在本技术实施例提供的基于区块链的交易处理装置中,第一处理单元包括:第一判断模块,用于判断区块链中待处理交易请求的数量;第一处理模块,用于若区块链中待处理交易请求的数量大于预设值,则从第二账本数据中获取与交易请求对应的目标数据;第二处理模块,用于若区块链中待处理交易请求的数量不大于预设值,则依据第一账本数据,获取与交易请求对应的目标数据。
81.可选地,在本技术实施例提供的基于区块链的交易处理装置中,交易请求的类型为以下至少之一:查询交易的类型和更新交易的类型,若交易请求的类型为查询交易的类型,该装置还包括:第二确定单元,用于在若区块链中待处理交易请求的数量大于预设值,则从第二账本数据中获取与交易请求对应的目标数据之后,确定从第二账本数据中获取目标数据的获取结果;第一返回单元,用于若获取结果表征从第二账本数据中获取目标数据成功,则将从第二账本数据中获取的目标数据返回至目标设备;第二处理单元,用于若获取
结果表征从第二账本数据中获取目标数据失败,则从第一账本数据中获取目标数据,并将目标数据返回至目标设备。
82.可选地,在本技术实施例提供的基于区块链的交易处理装置中,若交易请求的类型为更新交易的类型,该装置还包括:第一获取单元,用于在将从第二账本数据中获取的目标数据返回至目标设备之后,或者,在从第一账本数据中获取目标数据,并将目标数据返回至目标设备之后,获取区块链中第一数据集中的第一数据,其中,第一数据集中包括以下至少之一:从第一账本数据中读取的数据、写入第一账本数据中的数据;第一更新单元,用于依据第一数据,对第二账本数据进行更新,得到第一更新结果;第二返回单元,用于将第一更新结果返回至目标设备。
83.可选地,在本技术实施例提供的基于区块链的交易处理装置中,若交易请求的类型为查询交易的类型,第二处理模块包括:第一判断子模块,用于判断第二账本数据中或者区块链中缓存的第一交易数据中是否有数据;第一处理子模块,用于若第二账本数据中有数据,则依据第二账本数据和第一数据,对第一账本数据进行更新,得到第三账本数据,并从第三账本数据中获取与交易请求对应的目标数据;第一更新子模块,用于若区块链中缓存的第一交易数据中有数据,则依据第一交易数据,对区块链中本地的第一区块数据进行更新,得到第二区块数据;第二处理子模块,用于依据第二区块数据对第一账本数据进行更新,得到第四账本数据,并从第四账本数据中获取与交易请求对应的目标数据;第一获取子模块,用于若第二账本数据中没有数据,且区块链中缓存的第一交易数据中没有数据,则从第一账本数据中获取与交易请求对应的目标数据。
84.可选地,在本技术实施例提供的基于区块链的交易处理装置中,若交易请求的类型为更新交易的类型,该装置还包括:第三返回单元,用于在从第三账本数据中获取与交易请求对应的目标数据之后,或者,在从第四账本数据中获取与交易请求对应的目标数据之后,或者,在从第一账本数据中获取与交易请求对应的目标数据之后,将目标数据返回至目标设备;第二更新单元,用于在将目标数据返回至目标设备之后,依据第一数据,对第一账本数据或者第三账本数据或者第四账本数据进行更新,得到第二更新结果;第四返回单元,用于将第二更新结果返回至目标设备。
85.可选地,在本技术实施例提供的基于区块链的交易处理装置中,该装置还包括:第一判断单元,用于在依据第二区块数据对第一账本数据进行更新,得到第四账本数据之后,判断第四账本数据和第二账本数据是否相同;第一清除单元,用于若第四账本数据和第二账本数据相同,则清除第二账本数据、第一交易数据和第一数据集中的数据。
86.可选地,在本技术实施例提供的基于区块链的交易处理装置中,该装置还包括:第二判断单元,用于在将从第二账本数据中获取的目标数据返回至目标设备之后,或者,在从第一账本数据中获取目标数据,并将目标数据返回至目标设备之后,或者,在将第一更新结果返回至目标设备之后,判断第二账本数据中数据的数量;第三更新单元,用于若第二账本数据中数据的数量不小于第一预设阈值,则对第一账本数据和区块链中本地的第一区块数据进行更新。
87.可选地,在本技术实施例提供的基于区块链的交易处理装置中,在通过目标设备获取目标交易之后,该装置还包括:第一签名单元,用于对目标交易进行签名;第三确定单元依据目标交易的签名,确定目标交易的合法性。
88.基于区块链的交易处理装置包括处理器和存储器,上述第一接收单元401、第一确定单元402和第一处理单元403等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
89.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提升区块链处理交易的效率。
90.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
91.本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述基于区块链的交易处理方法。
92.如图5所示,本发明实施例提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:通过区块链接收目标设备发送的交易请求;确定所述区块链中的目标账本数据,其中,所述目标账本数据为以下至少之一:所述区块链中本地的第一账本数据、所述区块链中缓存的第二账本数据;从所述目标账本数据中获取与所述交易请求对应的目标数据,并将所述目标数据返回至所述目标设备。
93.处理器执行程序时还实现以下步骤:从所述目标账本数据中获取与所述交易请求对应的目标数据包括:判断所述区块链中待处理交易请求的数量;若所述区块链中待处理交易请求的数量大于预设值,则从所述第二账本数据中获取与所述交易请求对应的目标数据;若所述区块链中待处理交易请求的数量不大于所述预设值,则依据所述第一账本数据,获取与所述交易请求对应的目标数据。
94.处理器执行程序时还实现以下步骤:所述交易请求的类型为以下至少之一:查询交易的类型和更新交易的类型,若所述交易请求的类型为查询交易的类型,在若所述区块链中待处理交易请求的数量大于预设值,则从所述第二账本数据中获取与所述交易请求对应的目标数据之后,所述方法还包括:确定从所述第二账本数据中获取所述目标数据的获取结果;若所述获取结果表征从所述第二账本数据中获取所述目标数据成功,则将从所述第二账本数据中获取的所述目标数据返回至所述目标设备;若所述获取结果表征从所述第二账本数据中获取所述目标数据失败,则从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备。
95.处理器执行程序时还实现以下步骤:若所述交易请求的类型为更新交易的类型,在将从所述第二账本数据中获取的所述目标数据返回至所述目标设备之后,或者,在从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备之后,所述方法还包括:获取所述区块链中第一数据集中的第一数据,其中,所述第一数据集中包括以下至少之一:从所述第一账本数据中读取的数据、写入所述第一账本数据中的数据;依据所述第一数据,对所述第二账本数据进行更新,得到第一更新结果;将所述第一更新结果返回至所述目标设备。
96.处理器执行程序时还实现以下步骤:若所述交易请求的类型为查询交易的类型,若所述区块链中待处理交易的数量不大于所述预设值,则依据所述第一账本数据,获取与所述交易请求对应的目标数据包括:判断所述第二账本数据中或者所述区块链中缓存的第
一交易数据中是否有数据;若所述第二账本数据中有数据,则依据所述第二账本数据和所述第一数据,对所述第一账本数据进行更新,得到第三账本数据,并从所述第三账本数据中获取与所述交易请求对应的目标数据;若所述区块链中缓存的第一交易数据中有数据,则依据所述第一交易数据,对所述区块链中本地的第一区块数据进行更新,得到第二区块数据;依据所述第二区块数据对所述第一账本数据进行更新,得到第四账本数据,并从所述第四账本数据中获取与所述交易请求对应的目标数据;若所述第二账本数据中没有数据,且所述区块链中缓存的第一交易数据中没有数据,则从所述第一账本数据中获取与所述交易请求对应的目标数据。
97.处理器执行程序时还实现以下步骤:若所述交易请求的类型为更新交易的类型,在从所述第三账本数据中获取与所述交易请求对应的目标数据之后,或者,在从所述第四账本数据中获取与所述交易请求对应的目标数据之后,或者,在从所述第一账本数据中获取与所述交易请求对应的目标数据之后,所述方法还包括:将所述目标数据返回至所述目标设备;在将所述目标数据返回至所述目标设备之后,依据所述第一数据,对所述第一账本数据或者所述第三账本数据或者所述第四账本数据进行更新,得到第二更新结果;将所述第二更新结果返回至所述目标设备。
98.处理器执行程序时还实现以下步骤:在依据所述第二区块数据对所述第一账本数据进行更新,得到第四账本数据之后,所述方法还包括:判断所述第四账本数据和所述第二账本数据是否相同;若所述第四账本数据和所述第二账本数据相同,则清除所述第二账本数据、所述第一交易数据和所述第一数据集中的数据。
99.处理器执行程序时还实现以下步骤:在将从所述第二账本数据中获取的所述目标数据返回至所述目标设备之后,或者,在从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备之后,或者,在将所述第一更新结果返回至所述目标设备之后,所述方法还包括:判断所述第二账本数据中数据的数量;若所述第二账本数据中数据的数量不小于第一预设阈值,则对所述第一账本数据和所述区块链中本地的第一区块数据进行更新。
100.处理器执行程序时还实现以下步骤:在通过目标设备获取目标交易之后,所述方法还包括:对所述目标交易进行签名;依据所述目标交易的签名,确定所述目标交易的合法性。
101.本文中的设备可以是服务器、pc、pad、手机等。
102.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:通过区块链接收目标设备发送的交易请求;确定所述区块链中的目标账本数据,其中,所述目标账本数据为以下至少之一:所述区块链中本地的第一账本数据、所述区块链中缓存的第二账本数据;从所述目标账本数据中获取与所述交易请求对应的目标数据,并将所述目标数据返回至所述目标设备。
103.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:从所述目标账本数据中获取与所述交易请求对应的目标数据包括:判断所述区块链中待处理交易请求的数量;若所述区块链中待处理交易请求的数量大于预设值,则从所述第二账本数据中获取与所述交易请求对应的目标数据;若所述区块链中待处理交易请求的数量不大于所述预设值,则依据所述第一账本数据,获取与所述交易请求对应的目标数据。
104.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:所述交易请求的类型为以下至少之一:查询交易的类型和更新交易的类型,若所述交易请求的类型为查询交易的类型,在若所述区块链中待处理交易请求的数量大于预设值,则从所述第二账本数据中获取与所述交易请求对应的目标数据之后,所述方法还包括:确定从所述第二账本数据中获取所述目标数据的获取结果;若所述获取结果表征从所述第二账本数据中获取所述目标数据成功,则将从所述第二账本数据中获取的所述目标数据返回至所述目标设备;若所述获取结果表征从所述第二账本数据中获取所述目标数据失败,则从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备。
105.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:若所述交易请求的类型为更新交易的类型,在将从所述第二账本数据中获取的所述目标数据返回至所述目标设备之后,或者,在从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备之后,所述方法还包括:获取所述区块链中第一数据集中的第一数据,其中,所述第一数据集中包括以下至少之一:从所述第一账本数据中读取的数据、写入所述第一账本数据中的数据;依据所述第一数据,对所述第二账本数据进行更新,得到第一更新结果;将所述第一更新结果返回至所述目标设备。
106.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:若所述交易请求的类型为查询交易的类型,若所述区块链中待处理交易的数量不大于所述预设值,则依据所述第一账本数据,获取与所述交易请求对应的目标数据包括:判断所述第二账本数据中或者所述区块链中缓存的第一交易数据中是否有数据;若所述第二账本数据中有数据,则依据所述第二账本数据和所述第一数据,对所述第一账本数据进行更新,得到第三账本数据,并从所述第三账本数据中获取与所述交易请求对应的目标数据;若所述区块链中缓存的第一交易数据中有数据,则依据所述第一交易数据,对所述区块链中本地的第一区块数据进行更新,得到第二区块数据;依据所述第二区块数据对所述第一账本数据进行更新,得到第四账本数据,并从所述第四账本数据中获取与所述交易请求对应的目标数据;若所述第二账本数据中没有数据,且所述区块链中缓存的第一交易数据中没有数据,则从所述第一账本数据中获取与所述交易请求对应的目标数据。
107.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:若所述交易请求的类型为更新交易的类型,在从所述第三账本数据中获取与所述交易请求对应的目标数据之后,或者,在从所述第四账本数据中获取与所述交易请求对应的目标数据之后,或者,在从所述第一账本数据中获取与所述交易请求对应的目标数据之后,所述方法还包括:将所述目标数据返回至所述目标设备;在将所述目标数据返回至所述目标设备之后,依据所述第一数据,对所述第一账本数据或者所述第三账本数据或者所述第四账本数据进行更新,得到第二更新结果;将所述第二更新结果返回至所述目标设备。
108.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在依据所述第二区块数据对所述第一账本数据进行更新,得到第四账本数据之后,所述方法还包括:判断所述第四账本数据和所述第二账本数据是否相同;若所述第四账本数据和所述第二账本数据相同,则清除所述第二账本数据、所述第一交易数据和所述第一数据集中的数据。
109.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在将从
所述第二账本数据中获取的所述目标数据返回至所述目标设备之后,或者,在从所述第一账本数据中获取所述目标数据,并将所述目标数据返回至所述目标设备之后,或者,在将所述第一更新结果返回至所述目标设备之后,所述方法还包括:判断所述第二账本数据中数据的数量;若所述第二账本数据中数据的数量不小于第一预设阈值,则对所述第一账本数据和所述区块链中本地的第一区块数据进行更新。
110.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在通过目标设备获取目标交易之后,所述方法还包括:对所述目标交易进行签名;依据所述目标交易的签名,确定所述目标交易的合法性。
111.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
112.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
113.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
114.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
115.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
116.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
117.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机
可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
118.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
119.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
120.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1