信息处理方法、装置及系统、存储介质、电子设备转让专利

申请号 : CN201711208838.X

文献号 : CN108985757B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郝延山龙旻明王梦寒张晴

申请人 : 京东数字科技控股有限公司

摘要 :

本公开是关于一种信息处理方法、信息处理装置、计算机可读存储介质及电子设备,涉及金融数据处理技术领域,该方法包括:响应业务系统的交易请求,生成与所述交易请求对应的交易上链请求;将所述交易上链请求发送至区块链以使所述区块链根据所述交易上链请求生成区块;在所述区块链生成所述区块后,将所述区块对应的区块信息存储至本地数据库以及消息队列。本公开可以提高信息处理的稳定性和安全性。

权利要求 :

1.一种信息处理方法,其特征在于,包括:响应业务系统的交易请求,将所述交易请求封装为交易提案,并在所述交易提案的数量超过预设阈值且交易提案符合预设交易提案策略时,生成与所述交易请求对应的交易上链请求;

将所述交易上链请求发送至区块链以使所述区块链根据所述交易上链请求生成区块并进行广播;

在所述区块链生成所述区块后,将所述区块对应的区块信息存储在缓存数据库,再经过对区块信息进行验证后落地存储至本地数据库,并对存储至本地数据库的区块信息封装为消息存储至消息队列。

2.根据权利要求1所述的信息处理方法,其特征在于,将所述区块对应的区块信息存储至本地数据库包括:

通过区块维度和交易维度将所述区块信息存储至所述本地数据库。

3.根据权利要求2所述的信息处理方法,其特征在于,将所述区块对应的区块信息存储至本地数据库以及消息队列包括:对存储至所述本地数据库的所述区块信息进行封装,并将封装后的所述区块信息放入区块队列以及交易队列。

4.根据权利要求2所述的信息处理方法,其特征在于,所述方法还包括:响应业务系统的查询请求,根据所述区块维度和所述交易维度从所述本地数据库中确定与所述查询请求对应的所述区块信息并发送至业务系统。

5.根据权利要求3所述的信息处理方法,其特征在于,所述方法还包括:响应业务系统的订阅请求,通过所述区块队列和所述交易队列将与所述订阅请求对应的所述区块信息发送至业务系统。

6.根据权利要求1所述的信息处理方法,其特征在于,所述方法还包括:查询所述本地数据库的区块高度并根据所述区块高度确定所述本地数据库中缺失的所述区块信息。

7.根据权利要求6所述的信息处理方法,其特征在于,根据所述区块高度确定所述本地数据库缺失的所述区块信息包括:对比所述本地数据库与所述区块链的所述区块高度,以确定所述本地数据库缺失的所述区块信息。

8.根据权利要求1所述的信息处理方法,其特征在于,将所述交易上链请求发送至区块链包括:

采用GRPC协议将所述交易上链请求发送至所述区块链。

9.根据权利要求8所述的信息处理方法,其特征在于,所述方法还包括:基于所述GRPC协议建立安全传输层协议认证体系,并通过所述安全传输层协议认证体系在安全传输层进行加密。

10.根据权利要求1所述的信息处理方法,其特征在于,所述交易提案包括注册ID、智能合约ID、私钥、交易负载以及时间戳中的一种或多种。

11.一种信息处理装置,其特征在于,包括:交易请求生成模块,用于响应业务系统的交易请求,将所述交易请求封装为交易提案,并在所述交易提案的数量超过预设阈值且交易提案符合预设交易提案策略时,生成与所述交易请求对应的交易上链请求;

交易请求发送模块,用于将所述交易上链请求发送至区块链以使所述区块链根据所述交易上链请求生成区块并进行广播;

区块信息存储模块,用于在所述区块链生成所述区块后,将所述区块对应的区块信息存储在缓存数据库,再经过对区块信息进行验证后落地存储至本地数据库,并对存储至本地数据库的区块信息封装为消息存储至消息队列。

12.一种信息处理系统,其特征在于,包括:内嵌工具包,用于根据业务系统的交易请求,将所述交易请求封装为交易提案,并在所述交易提案的数量超过预设阈值且交易提案符合预设交易提案策略时,生成一交易上链请求并将所述交易上链请求发送至区块链;

消息服务模块,用于在所述区块链根据所述交易上链请求生成区块并进行广播后,将所述区块对应的区块信息存储在缓存数据库,再经过对区块信息进行验证后落地存储至本地数据库,并对存储至本地数据库的区块信息封装为消息存储至消息队列。

13.根据权利要求12所述的信息处理系统,其特征在于,所述内嵌工具包包括:交易与区块查询单元,用于响应业务系统发送的查询请求,以查询区块对应的区块信息;

交易封装与发起单元,用于将业务系统发送的交易请求进行封装生成交易上链请求并将所述交易上链请求发送至区块链;

证书私钥管理单元,用于响应业务系统发送的注册请求,将业务系统信息注册到区块链中。

14.根据权利要求12所述的信息处理系统,其特征在于,所述消息服务模块包括:查询服务单元,用于从数据库单元中获取与查询请求对应的区块信息;

数据库单元,用于存储区块和区块信息;

消息观察单元,用于对区块信息进行验证和处理,并将所述区块信息存储至所述数据库单元以及消息队列单元;

消息队列单元,用于确定与业务系统的订阅请求对应的区块信息,以使业务系统进行业务处理。

15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的信息处理方法。

16.一种电子设备,其特征在于,包括:处理器;以及

存储器,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-10任一项所述的信息处理方法。

说明书 :

信息处理方法、装置及系统、存储介质、电子设备

技术领域

[0001] 本公开涉及金融数据处理技术领域,具体而言,涉及一种信息处理方法、信息处理装置、信息处理系统、计算机可读存储介质以及电子设备。

背景技术

[0002] 随着移动支付和网上支付的普及,基于区块链技术构建的金融交易协议发挥着越来越重要的作用。
[0003] 相关技术中,业务系统和区块链之间的消息通讯,只能依靠简单的API(Application Programming Interface,应用程序编程接口)完成,即业务系统可以直接调
用API与区块链系统进行异步消息订阅和消息通知。
[0004] 但是相关技术中,通过API完成业务系统和区块链之间的消息通讯时,业务系统中没有完善的机制保证交易的稳定性和安全性;由于API不能对交易消息进行存储,因此不能
对交易消息进行全程追溯;除此之外,由于业务系统与区块链之间的耦合度非常高,不利于
业务系统的独立部署与移植,因此信息处理效率较低。
[0005] 因此,需要为业务系统和区块链网络提供一种新的信息处理方法。
[0006] 需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

[0007] 本公开的目的在于提供一种信息处理方法、信息处理装置、信息处理系统、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导
致的一个或者多个问题。
[0008] 本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0009] 根据本公开的一个方面,提供一种信息处理方法,包括:
[0010] 响应业务系统的交易请求,生成与所述交易请求对应的交易上链请求;
[0011] 将所述交易上链请求发送至区块链以使所述区块链根据所述交易上链请求生成区块;
[0012] 在所述区块链生成所述区块后,将所述区块对应的区块信息存储至本地数据库以及消息队列。
[0013] 在本公开的一种示例性实施例中,将所述区块对应的区块信息存储至本地数据库包括:
[0014] 通过区块维度和交易维度将所述区块信息存储至所述本地数据库。
[0015] 在本公开的一种示例性实施例中,将所述区块对应的区块信息存储至本地数据库以及消息队列包括:
[0016] 对存储至所述本地数据库的所述区块信息进行封装,并将封装后的所述区块信息放入区块队列以及交易队列。
[0017] 在本公开的一种示例性实施例中,所述方法还包括:
[0018] 响应业务系统的查询请求,根据所述区块维度和所述交易维度从所述本地数据库中确定与所述查询请求对应的所述区块信息并发送至业务系统。
[0019] 在本公开的一种示例性实施例中,所述方法还包括:
[0020] 响应业务系统的订阅请求,通过所述区块队列和所述交易队列将与所述订阅请求对应的所述区块信息发送至业务系统。
[0021] 在本公开的一种示例性实施例中,所述方法还包括:
[0022] 查询所述本地数据库的区块高度并根据所述区块高度确定所述本地数据库中缺失的所述区块信息。
[0023] 在本公开的一种示例性实施例中,根据所述区块高度确定所述本地数据库缺失的所述区块信息包括:
[0024] 对比所述本地数据库与所述区块链的所述区块高度,以确定所述本地数据库缺失的所述区块信息。
[0025] 在本公开的一种示例性实施例中,生成与所述交易请求对应的交易上链请求包括:
[0026] 将所述交易请求封装为交易提案;
[0027] 判断所述交易提案的数量是否大于预设阈值并判断所述交易提案是否符合预设交易提案策略;
[0028] 在所述数量大于所述预设阈值且所述交易提案符合所述预设交易提案策略时,生成与所述交易请求对应的所述交易上链请求。
[0029] 在本公开的一种示例性实施例中,将所述交易上链请求发送至区块链包括:
[0030] 采用GRPC协议将所述交易上链请求发送至所述区块链。
[0031] 在本公开的一种示例性实施例中,所述方法还包括:
[0032] 基于所述GRPC协议建立安全传输层协议认证体系,并通过所述安全传输层协议认证体系在安全传输层进行加密。
[0033] 在本公开的一种示例性实施例中,所述交易提案包括注册ID、智能合约ID、私钥、交易负载以及时间戳中的一种或多种。
[0034] 根据本公开的一个方面,提供一种信息处理装置,包括:
[0035] 交易请求生成模块,用于响应业务系统的交易请求,生成与所述交易请求对应的交易上链请求;
[0036] 交易请求发送模块,用于将所述交易上链请求发送至区块链以使所述区块链根据所述交易上链请求生成区块;
[0037] 区块信息存储模块,用于在所述区块链生成所述区块后,将所述区块对应的区块信息存储至本地数据库以及消息队列。
[0038] 根据本公开的一个方面,提供一种信息处理系统,包括:
[0039] 内嵌工具包,用于根据业务系统的交易请求生成一交易上链请求并将所述交易上链请求发送至区块链;
[0040] 消息服务模块,用于在所述区块链根据所述交易上链请求生成区块后,将所述区块对应的区块信息存储至本地数据库以及消息队列。
[0041] 在本公开的一种示例性实施例中,所述内嵌工具包包括:
[0042] 交易与区块查询单元,用于响应业务系统发送的查询请求,以查询区块对应的区块信息;
[0043] 交易封装与发起单元,用于将业务系统发送的交易请求进行封装生成交易上链请求并将所述交易上链请求发送至区块链;
[0044] 证书私钥管理单元,用于响应业务系统发送的注册请求,将业务系统信息注册到区块链中。
[0045] 在本公开的一种示例性实施例中,所述消息服务模块包括:
[0046] 查询服务单元,用于从数据库单元中获取与查询请求对应的区块信息;
[0047] 数据库单元,用于存储区块和区块信息;
[0048] 消息观察单元,用于对区块信息进行验证和处理,并将所述区块信息存储至所述数据库单元以及消息队列单元;
[0049] 消息队列单元,用于确定与业务系统的订阅请求对应的区块信息,以使业务系统进行业务处理。
[0050] 根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的信息处理方法。
[0051] 根据本公开的一个方面,提供一种电子设备,包括:
[0052] 处理器;以及
[0053] 存储器,用于存储所述处理器的可执行指令;
[0054] 其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的信息处理方法。
[0055] 本公开示例性实施例中提供的一种信息处理方法、信息处理装置、信息处理系统、计算机可读存储介质以及电子设备中,通过响应业务系统的交易请求,生成与所述交易请
求对应的交易上链请求;将所述交易上链请求发送至区块链以使所述区块链根据所述交易
上链请求生成区块;在所述区块链生成所述区块后,将所述区块对应的区块信息存储至本
地数据库以及消息队列。一方面,通过将区块信息存储至本地数据库及消息队列,保证了信
息的稳定性与准确性;一方面,通过将所述区块信息存储至本地数据库,可以快速全程追溯
每一条信息,保证信息的完整性;另一方面,降低了业务系统与区块链之间的耦合度,提高
了信息处理的效率。
[0056] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

[0057] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开
的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
这些附图获得其他的附图。
[0058] 图1示意性示出本公开示例性实施例中一种异步消息订阅结构图;
[0059] 图2示意性示出本公开示例性实施例中一种信息处理方法示意图;
[0060] 图3示意性示出本公开示例性实施例中一种信息处理装置的框图;
[0061] 图4示意性示出本公开示例性实施例中一种信息处理系统的框图;
[0062] 图5示意性示出本公开示例性实施例中一种电子设备的框图;
[0063] 图6示意性示出本公开示例性实施例中一种程序产品。

具体实施方式

[0064] 现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加
全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结
构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许
多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可
以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方
法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而
使得本公开的各方面变得模糊。
[0065] 此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功
能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功
能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处
理器装置和/或微控制器装置中实现这些功能实体。
[0066] 本示例实施方式中首先提供了一种消息订阅的系统结构示意图,参考图1所示,所述系统包括业务系统、区块链服务层以及区块链网络。其中,区块链服务层可以作为中间服
务层,主要用于实现区块链与各种业务系统之间的消息通讯。业务系统中包括多种不同类
型的接口,例如查询请求接口101、请求交易接口102、用户注册接口103以及消息订阅接口
104。区块链服务层包括可嵌入SDK(Software Development Kit,软件开发工具包)105以及
消息服务106,其中,SDK包括交易与区块查询接口1051、交易封装与发起接口1052、证书/私
钥管理接口1053,分别与业务系统的接口相对应。消息服务包括消息队列接口1061、消息观
察接口1062、数据库接口1063以及查询服务接口1064。区块链网络包括107区块链接口API。
[0067] 基于上述系统架构图,本示例性实施例中还提供了一种通过区块链服务层实现的信息处理方法,可以用于业务系统与区块链网络之间进行消息订阅、消息通知等过程。参考
图2所示,该信息处理方法可以包括以下步骤:
[0068] 步骤S210.响应业务系统的交易请求,生成与所述交易请求对应的交易上链请求;
[0069] 步骤S220.将所述交易上链请求发送至区块链以使所述区块链根据所述交易上链请求生成区块;
[0070] 步骤S230.在所述区块链生成所述区块后,将所述区块对应的区块信息存储至本地数据库以及消息队列。
[0071] 根据本示例性实施例中提供的信息处理方法,一方面,通过将区块信息存储至本地数据库和消息队列,保证了信息的稳定性与准确性;一方面,通过将所述区块信息存储至
本地数据库,可以快速全程追溯每一条信息,保证信息的完整性;另一方面,降低了业务系
统与区块链之间的耦合度,提高了信息处理的效率。
[0072] 接下来,结合图1和图2对本示例实施方式中的所述信息处理方法的各个步骤进行详细解释和说明。
[0073] 在步骤S210中,响应业务系统的交易请求,生成与所述交易请求对应的交易上链请求。
[0074] 本示例中,在系统开始运行时,首先进行用户注册,将业务系统信息注册到区块链中,以使其成为区块链的合法用户端。交易请求可以由业务系统主动发送,所述业务系统例
如可以包括客户端或者是消费端。交易请求中例如可以包括交易清单列表、实时交易数据、
订单列表等信息。
[0075] 区块链服务层可以接收并响应业务系统发送的交易请求,其中,区块链服务层可以包括可嵌入SDK以及消息服务模块。具体而言,SDK可以用于与区块链通信,消息服务模块
可以用于和业务系统通信。
[0076] 在本示例中,业务系统在进行注册以后,可以主动发起一笔交易请求,区块链服务层中的SDK可以响应交易请求,并生成与该交易请求对应的交易上链请求。可以在对交易请
求进行预处理之后生成交易上链请求,预处理例如可以包括形式处理或者是将交易请求归
一化处理等。
[0077] 具体而言,生成与所述交易请求对应的交易上链请求可以包括:
[0078] 将所述交易请求封装为交易提案;
[0079] 判断所述交易提案的数量是否超过预设阈值并判断所述交易提案是否符合预设交易提案策略;
[0080] 在所述数量超过所述预设阈值且所述交易提案符合所述预设交易提案策略时,生成与所述交易请求对应的所述交易上链请求。
[0081] 本示例中,SDK的交易封装与发起接口1052可以将交易请求封装为交易提案的形态。所述交易提案可以包括注册ID、智能合约ID、私钥、交易负载以及时间戳中的一种或多
种。具体而言,可以用Tx表示交易提案,其中,clientID代表注册ID,指明了SDK所在系统在
整体架构中注册的ID对应IP地址等信息;chaincodeID代表智能合约ID,是需要调用的智能
合约ID,明确了需要调用智能合约的版本信息等;txPayload代表交易负载,可以将调用智
能合约的业务数据与参数封装在txPayload中;clientSig是SDK使用预先生成的私钥执行
对整个交易提案的签名,用于验证交易提案的发起方的真伪。
[0082] 在将交易请求封装成交易提案后,可以判断收集到的交易提案的数量是否超过预设阈值以及判断所述交易提案是否符合预设交易提案策略,以确定当前交易是否可以发
生。此处的预设阈值例如可以为需要的交易提案总数量的2/3,具体数值可以根据实际需要
进行具体设置。预设交易提案策略可以为事先设置好的关于向各个节点中注入智能合约以
及智能合约的确认策略,例如可以为需要全网5个节点中的4个给予签名。
[0083] 在交易提案的数量大于所述预设阈值且所述交易提案符合所述预设交易提案策略时,SDK可以将交易请求生成对应的所述交易上链请求。详细而言,例如在区块链的各个
节点搭建完后,某个交易提案发送给节点后,节点调用智能合约进行验证,如果验证合法,
就会给予签名,而此类验证签名的收集确认规则就是确认策略;如果确认策略明确规定,该
智能合约验证的交易提案需要全网5个节点中的4个给予签名后,可以认为该交易提案合
法,并且能够作为交易生成区块。通过将本示例中将交易请求打包成区块的过程,可以准确
确定交易的顺序,并且可以删除掉不合法的交易,保证交易的安全性。
[0084] 接下来,在步骤S220中,将所述交易上链请求发送至区块链以使所述区块链根据所述交易上链请求生成区块。
[0085] SDK生成交易上链请求后,可以首先确认该交易是否可以发生,例如该区块链是否支持该笔交易提案发生等。在确定该交易可以发生后,SDK可以通过自带的发送交易提案接
口将交易上链请求发送至区块链。随后区块链可以对交易上链请求进行验证,以确定该交
易是否安全合法。在区块链验证该交易合法后,区块链可以将交易上链请求打包生成区块,
并且生成的区块中包含该交易上链请求对应的所有交易信息。除此之外,区块链还可以全
网广播该区块的生成。
[0086] 其中,区块链可以理解为点对点的对等网络传输协议,密码学加密算法,分布式的共识机制,以及纳什均衡的博弈设计等技术的结合。基于这几种技术的结合,可以实现去中
心化去信任的可靠数据库,使用算法证明机制来保证链上所记录信息的可追踪溯源,不可
伪造,不可纂改。
[0087] 区块是一种记录交易的数据结构,可以用于反映交易的资金流向。一个区块例如可以包括交易信息、前一个区块形成的哈希散列、随机数。交易信息是区块所承载的任务数
据,具体包括交易双方的私钥、交易的数量、电子货币的数字签名等;前一个区块形成的哈
希散列用来将区块连接起来,实现过往交易的顺序排列;随机数是交易达成的核心,所有矿
工节点竞争计算随机数的答案,最快得到答案的节点生成一个新的区块,并广播到所有节
点进行更新,根据上述过程可以如此完成一笔交易。
[0088] 具体而言,在生成与所述交易请求对应的交易上链请求后,SDK可以通过交易封装与发起接口,采用GRPC(Google Remote PRocedure Call Protocol,谷歌远程过程调用协
议)将生成的交易上链请求发送至区块链,以兼容区块链服务层与区块链网络之间的语言
多样性。
[0089] 进一步地,还可以在所述GRPC协议的基础上建立TLS(Transport Layer Security,安全传输层协议)认证体系。具体而言,SDK所在服务系统与区块链节点在同一个
TLS根证书体系下颁发各自证书,并在网络通信时在TLS层进行加密。由于区块链服务层部
署在本地,因此私钥也保存在本地。在进行消息调用与消息通知时均为内网通讯,从而可以
保证数据在公网传输过程中的安全性。
[0090] 接下来,在步骤S230中,在所述区块链生成所述区块后,将所述区块对应的区块信息存储至本地数据库以及消息队列。
[0091] 本示例中,数据库1063可以包括缓存数据库和本地数据库,区块链将交易上链请求打包成区块后,首先可以根据区块维度和交易维度将区块信息存储在缓存数据库中,并
通过KV(Key-Value,键值)数据库进行读写。在区块链服务层中的消息服务模块得知区块链
生成与交易上链请求对应的新区块时,可以通过消息观察接口1062将区块链广播的区块生
成对应的区块信息并进行验证和处理,进一步地将生成的区块信息持久化落地到本地数据
库中。
[0092] 具体而言,将所述区块对应的区块信息存储至本地数据库可以包括:通过区块维度和交易维度将所述区块信息存储至所述本地数据库。
[0093] 本示例中,可以将所有的区块信息按照区块和交易两个维度存储至本地数据库,即按照生成的所有区块以及每个区块中所包含的所有交易信息两个维度对应存储,以通过
本地数据库即可对区块链与业务系统中每一条消息的快速全程追溯。
[0094] 进一步地,还可以将存储至本地数据库的区块信息发送至消息队列。此处的消息队列可以为业务系统监听的消息队列,例如可以包括区块队列和交易队列。通过将区块信
息发送至消息队列,可以使业务系统直接从消息服务模块的消息队列中获取区块信息,并
根据区块信息中包含的区块ID和交易ID信息进行业务系统处理等操作。
[0095] 具体而言,将所述区块对应的区块信息存储至本地数据库以及消息队列可以包括:
[0096] 对存储至所述本地数据库的所述区块信息进行封装,并将封装后的所述区块信息放入区块队列以及交易队列。
[0097] 区块队列用于存储生成的所有区块信息,交易队列可以用于存储区块中所包含的所有交易信息。区块链服务层可以将上述步骤中落地到本地数据库的区块信息封装成消
息,并分别放入消息队列1061以使业务系统对消息队列进行监听。例如可以将封装后的所
述区块信息放入区块队列和交易队列,以使业务系统进行消费或者订阅等操作。通过这种
方式,可以使所有的服务均独立于业务系统,业务系统不需要再考虑区块链服务层的生命
周期,因此可以尽量减小业务系统的改动,降低了部署难度,从而提高了信息处理效率。
[0098] 除此之外,所述方法还可以包括:查询所述本地数据库的区块高度并根据所述区块高度确定所述本地数据库中缺失的所述区块信息。
[0099] 区块链服务层可以查询本地存储中的最新区块高度,并将最新区块高度作为接收新区块产生的请求参数,根据最新区块高度确定本地数据库中是否缺失区块,以及时获取
本地数据库中缺失的区块以及对应的区块信息。例如可以通过编写程序语言查询最新区块
高度。需要补充的是,也可以查询缓存数据库中的最新区块高度。
[0100] 具体而言,根据所述区块高度确定所述本地数据库缺失的所述区块信息可以包括:
[0101] 对比所述本地数据库与所述区块链的所述区块高度,以确定所述本地数据库缺失的所述区块信息。
[0102] 当所述本地数据库与所述区块链的所述区块高度保持一致时,可以说明本地数据库未缺失区块;当所述本地数据库与所述区块链的所述区块高度不一致时,需要重新存储
区块。由于采用的是数据按照键值对的形式进行组织、索引和存储的KV(Key-Value,键值存
储)数据库,只要key值确定,所对应的value值中信息就是确定的,通过对比区块高度可以
有效保证本地数据库与区块链信息的一致性。
[0103] 举例而言,如果区块链服务层的缓存数据库中的数据全部被清除,需要重新从区块链的节点中获取一遍所有的区块以及区块信息,则可以将缓存数据库中的最新区块高度
与区块链节点中最新的区块高度进行对比,如果有缺失的区块,就可以重新获取该区块对
应的信息。
[0104] 由于业务系统可以发出不同类型的请求,且各种请求分别对应不同的基于http接口的API,在此基础上,所述方法还可以包括:
[0105] 响应业务系统的查询请求,根据所述区块维度和所述交易维度从所述本地数据库中确定与所述查询请求对应的所述区块信息并发送至业务系统。
[0106] 在业务系统通过查询请求接口101发出包括区块的查询请求时,SDK可以通过交易与区块查询接口1051响应该查询请求,并将所述查询请求发送至查询服务接口1064,进而
根据查询请求中的区块以及区块ID与交易ID之间的对应关系在本地数据库中确定与查询
请求中区块对应的交易信息,并将所述交易信息发送至业务系统。如果在丢失掉消息队列
的信息之后,或者是查询某个区块中的某笔交易的具体数据,或者是需要将区块链已生成
区块中的业务数据与区块数据以可视化的方式展示出来时,均可以通过业务系统发送查询
请求的方式,再次从本地数据库中获取需要查询的区块信息。
[0107] 除此之外,所述方法还可以包括:响应业务系统的订阅请求,从所述区块队列和所述交易队列获取与所述订阅请求对应的区块信息并发送至所述业务系统。
[0108] 在业务系统通过消息订阅接口104发出包括区块的订阅请求时,区块链服务层可以响应该订阅请求,通过区块队列以及交易队列获取与所述订阅请求对应的区块信息,并
将所述区块信息发送至业务系统以使所述业务系统进行业务处理。通过这种方式,可以实
现消息的异步订阅并且保证了消息的稳定性和准确性。
[0109] 本公开还提供了一种信息处理装置。参考图3所示,该信息处理装置300可以包括:
[0110] 交易请求生成模块301,可以用于响应业务系统的交易请求,生成与所述交易请求对应的交易上链请求;
[0111] 交易请求发送模块302,可以用于将所述交易上链请求发送至区块链以使所述区块链根据所述交易上链请求生成区块;
[0112] 区块信息存储模块303,可以用于在所述区块链生成所述区块后,将所述区块对应的区块信息存储至本地数据库以及消息队列。
[0113] 需要说明的是,上述信息处理装置中各模块的具体细节已经在对应的信息处理方法中进行了详细描述,因此此处不再赘述。
[0114] 本公开还提供了一种信息处理系统。所述信息处理系统可以作为中间服务层,主要用于实现区块链与各种业务系统之间的消息通讯。参考图4所示,该信息处理系统400可
以包括:内嵌工具包401以及消息服务模块402,其中:
[0115] 内嵌工具包401,可以用于根据业务系统的交易请求生成一交易上链请求并将所述交易上链请求发送至区块链;
[0116] 消息服务模块402,可以用于在所述区块链根据所述交易上链请求生成区块后,将所述区块对应的区块信息存储至本地数据库以及消息队列。
[0117] 进一步地,所述内嵌工具包401可以包括交易与区块查询单元4011、交易封装与发起单元4012以及证书私钥管理单元4013,其中:
[0118] 交易与区块查询单元4011,可以用于响应业务系统发送的查询请求,以查询区块对应的区块信息;
[0119] 交易封装与发起单元4012,可以用于将业务系统发送的交易请求进行封装生成交易上链请求并将所述交易上链请求发送至区块链;
[0120] 证书私钥管理单元4013,可以用于响应业务系统发送的注册请求,将业务系统信息注册到区块链中,以使业务系统成为区块链的合法用户端。
[0121] 所述消息服务模块402可以包括查询服务单元4021、数据库单元4022、消息观察单元4023以及消息队列单元4024。其中:
[0122] 查询服务单元4021,可以用于从数据库单元中获取与查询请求对应的区块信息;
[0123] 数据库单元4022,可以用于存储区块和区块信息,以通过数据库单元对区块链与业务系统中每一条消息进行快速全程追溯;
[0124] 消息观察单元4023,可以用于对区块信息进行验证和处理,并将所述区块信息存储至所述数据库单元以及消息队列单元;
[0125] 消息队列单元4024,可以用于确定与业务系统的订阅请求对应的区块信息,以使业务系统进行业务处理,例如消费等操作。
[0126] 需要说明的是,上述信息处理系统中各模块的各个单元的具体细节已经在对应的信息处理方法中进行了详细描述,因此此处不再赘述。
[0127] 应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多
模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模
块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0128] 此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现
期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/
或者将一个步骤分解为多个步骤执行等。
[0129] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开
实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失
性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算
设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的
方法。
[0130] 在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
[0131] 所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完
全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统
称为“电路”、“模块”或“系统”。
[0132] 下面参照图5来描述根据本发明的这种实施方式的电子设备600。图5显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0133] 如图5所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件
(包括存储单元620和处理单元610)的总线630以及显示单元640。
[0134] 其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“示例性方法”部分中描述的根据本发明各种
示例性实施方式的步骤。例如,所述处理单元610可以执行如图2中所示的步骤:步骤S210.
响应业务系统的交易请求,生成与所述交易请求对应的交易上链请求;步骤S220.将所述交
易上链请求发送至区块链以使所述区块链根据所述交易上链请求生成区块;步骤S230.在
所述区块链生成所述区块后,将所述区块对应的区块信息存储至本地数据库以及消息队
列。
[0135] 存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
[0136] 存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模
块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0137] 总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构
的局域总线。
[0138] 电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得
该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调
器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以
通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,
例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。
应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不
限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及
数据备份存储系统等。
[0139] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开
实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失
性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算
设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的
方法。
[0140] 在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可
以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所
述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发
明各种示例性实施方式的步骤。
[0141] 参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,
例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以
是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者
与其结合使用。
[0142] 所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或
半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举
的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读
存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器
(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0143] 计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、
光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介
质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其
结合使用的程序。
[0144] 可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0145] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的
过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户
计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算
设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远
程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网
(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商
来通过因特网连接)。
[0146] 此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺
序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0147] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者
适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或
惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求
指出。