信息处理方法、装置及系统、存储介质、电子设备转让专利
申请号 : CN201711208838.X
文献号 : CN108985757B
文献日 : 2021-03-30
发明人 : 郝延山 , 龙旻明 , 王梦寒 , 张晴
申请人 : 京东数字科技控股有限公司
摘要 :
权利要求 :
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任一项所述的信息处理方法。
说明书 :
信息处理方法、装置及系统、存储介质、电子设备
技术领域
背景技术
用API与区块链系统进行异步消息订阅和消息通知。
对交易消息进行全程追溯;除此之外,由于业务系统与区块链之间的耦合度非常高,不利于
业务系统的独立部署与移植,因此信息处理效率较低。
发明内容
致的一个或者多个问题。
求对应的交易上链请求;将所述交易上链请求发送至区块链以使所述区块链根据所述交易
上链请求生成区块;在所述区块链生成所述区块后,将所述区块对应的区块信息存储至本
地数据库以及消息队列。一方面,通过将区块信息存储至本地数据库及消息队列,保证了信
息的稳定性与准确性;一方面,通过将所述区块信息存储至本地数据库,可以快速全程追溯
每一条信息,保证信息的完整性;另一方面,降低了业务系统与区块链之间的耦合度,提高
了信息处理的效率。
附图说明
的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
这些附图获得其他的附图。
具体实施方式
全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结
构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许
多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可
以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方
法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而
使得本公开的各方面变得模糊。
能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功
能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处
理器装置和/或微控制器装置中实现这些功能实体。
务层,主要用于实现区块链与各种业务系统之间的消息通讯。业务系统中包括多种不同类
型的接口,例如查询请求接口101、请求交易接口102、用户注册接口103以及消息订阅接口
104。区块链服务层包括可嵌入SDK(Software Development Kit,软件开发工具包)105以及
消息服务106,其中,SDK包括交易与区块查询接口1051、交易封装与发起接口1052、证书/私
钥管理接口1053,分别与业务系统的接口相对应。消息服务包括消息队列接口1061、消息观
察接口1062、数据库接口1063以及查询服务接口1064。区块链网络包括107区块链接口API。
图2所示,该信息处理方法可以包括以下步骤:
本地数据库,可以快速全程追溯每一条信息,保证信息的完整性;另一方面,降低了业务系
统与区块链之间的耦合度,提高了信息处理的效率。
如可以包括客户端或者是消费端。交易请求中例如可以包括交易清单列表、实时交易数据、
订单列表等信息。
可以用于和业务系统通信。
求进行预处理之后生成交易上链请求,预处理例如可以包括形式处理或者是将交易请求归
一化处理等。
种。具体而言,可以用Tx表示交易提案,其中,clientID代表注册ID,指明了SDK所在系统在
整体架构中注册的ID对应IP地址等信息;chaincodeID代表智能合约ID,是需要调用的智能
合约ID,明确了需要调用智能合约的版本信息等;txPayload代表交易负载,可以将调用智
能合约的业务数据与参数封装在txPayload中;clientSig是SDK使用预先生成的私钥执行
对整个交易提案的签名,用于验证交易提案的发起方的真伪。
生。此处的预设阈值例如可以为需要的交易提案总数量的2/3,具体数值可以根据实际需要
进行具体设置。预设交易提案策略可以为事先设置好的关于向各个节点中注入智能合约以
及智能合约的确认策略,例如可以为需要全网5个节点中的4个给予签名。
节点搭建完后,某个交易提案发送给节点后,节点调用智能合约进行验证,如果验证合法,
就会给予签名,而此类验证签名的收集确认规则就是确认策略;如果确认策略明确规定,该
智能合约验证的交易提案需要全网5个节点中的4个给予签名后,可以认为该交易提案合
法,并且能够作为交易生成区块。通过将本示例中将交易请求打包成区块的过程,可以准确
确定交易的顺序,并且可以删除掉不合法的交易,保证交易的安全性。
口将交易上链请求发送至区块链。随后区块链可以对交易上链请求进行验证,以确定该交
易是否安全合法。在区块链验证该交易合法后,区块链可以将交易上链请求打包生成区块,
并且生成的区块中包含该交易上链请求对应的所有交易信息。除此之外,区块链还可以全
网广播该区块的生成。
心化去信任的可靠数据库,使用算法证明机制来保证链上所记录信息的可追踪溯源,不可
伪造,不可纂改。
据,具体包括交易双方的私钥、交易的数量、电子货币的数字签名等;前一个区块形成的哈
希散列用来将区块连接起来,实现过往交易的顺序排列;随机数是交易达成的核心,所有矿
工节点竞争计算随机数的答案,最快得到答案的节点生成一个新的区块,并广播到所有节
点进行更新,根据上述过程可以如此完成一笔交易。
议)将生成的交易上链请求发送至区块链,以兼容区块链服务层与区块链网络之间的语言
多样性。
TLS根证书体系下颁发各自证书,并在网络通信时在TLS层进行加密。由于区块链服务层部
署在本地,因此私钥也保存在本地。在进行消息调用与消息通知时均为内网通讯,从而可以
保证数据在公网传输过程中的安全性。
通过KV(Key-Value,键值)数据库进行读写。在区块链服务层中的消息服务模块得知区块链
生成与交易上链请求对应的新区块时,可以通过消息观察接口1062将区块链广播的区块生
成对应的区块信息并进行验证和处理,进一步地将生成的区块信息持久化落地到本地数据
库中。
本地数据库即可对区块链与业务系统中每一条消息的快速全程追溯。
息发送至消息队列,可以使业务系统直接从消息服务模块的消息队列中获取区块信息,并
根据区块信息中包含的区块ID和交易ID信息进行业务系统处理等操作。
息,并分别放入消息队列1061以使业务系统对消息队列进行监听。例如可以将封装后的所
述区块信息放入区块队列和交易队列,以使业务系统进行消费或者订阅等操作。通过这种
方式,可以使所有的服务均独立于业务系统,业务系统不需要再考虑区块链服务层的生命
周期,因此可以尽量减小业务系统的改动,降低了部署难度,从而提高了信息处理效率。
本地数据库中缺失的区块以及对应的区块信息。例如可以通过编写程序语言查询最新区块
高度。需要补充的是,也可以查询缓存数据库中的最新区块高度。
区块。由于采用的是数据按照键值对的形式进行组织、索引和存储的KV(Key-Value,键值存
储)数据库,只要key值确定,所对应的value值中信息就是确定的,通过对比区块高度可以
有效保证本地数据库与区块链信息的一致性。
与区块链节点中最新的区块高度进行对比,如果有缺失的区块,就可以重新获取该区块对
应的信息。
根据查询请求中的区块以及区块ID与交易ID之间的对应关系在本地数据库中确定与查询
请求中区块对应的交易信息,并将所述交易信息发送至业务系统。如果在丢失掉消息队列
的信息之后,或者是查询某个区块中的某笔交易的具体数据,或者是需要将区块链已生成
区块中的业务数据与区块数据以可视化的方式展示出来时,均可以通过业务系统发送查询
请求的方式,再次从本地数据库中获取需要查询的区块信息。
将所述区块信息发送至业务系统以使所述业务系统进行业务处理。通过这种方式,可以实
现消息的异步订阅并且保证了消息的稳定性和准确性。
以包括:内嵌工具包401以及消息服务模块402,其中:
模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模
块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/
或者将一个步骤分解为多个步骤执行等。
实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失
性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算
设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的
方法。
全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统
称为“电路”、“模块”或“系统”。
(包括存储单元620和处理单元610)的总线630以及显示单元640。
示例性实施方式的步骤。例如,所述处理单元610可以执行如图2中所示的步骤:步骤S210.
响应业务系统的交易请求,生成与所述交易请求对应的交易上链请求;步骤S220.将所述交
易上链请求发送至区块链以使所述区块链根据所述交易上链请求生成区块;步骤S230.在
所述区块链生成所述区块后,将所述区块对应的区块信息存储至本地数据库以及消息队
列。
块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
的局域总线。
该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调
器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以
通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,
例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。
应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不
限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及
数据备份存储系统等。
实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失
性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算
设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的
方法。
以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所
述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发
明各种示例性实施方式的步骤。
例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以
是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者
与其结合使用。
半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举
的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读
存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器
(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介
质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其
结合使用的程序。
过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户
计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算
设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远
程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网
(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商
来通过因特网连接)。
序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或
惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求
指出。