区块链交易处理辅助系统、区块链数据处理系统及方法与流程

文档序号:16002222发布日期:2018-11-20 19:36阅读:162来源:国知局

本发明涉及区块链技术领域,特别涉及一种区块链交易处理辅助系统、区块链数据处理系统及方法。



背景技术:

区块链技术具备去中心化、信息不可篡改性等特点,运用区块链技术可实现多方参与的交易事件(例如,转账交易、支付交易等),例如,银行A与银行B在区块链上进行交易,那么该区块链上所有其他节点都会知晓这笔交易,其他参与方可以一起参与确认交易准确性,防止信息的篡改。进一步地,区块链本质上是一个基于智能合约的分布式的数据库,区块链上面的信息会被P2P(Peer-to-peer,对等)网络分享到所有节点上去。

然而,现有的区块链数据交易系统架构中,主数据库通常对应一个备份数据库,在主数据库发生异常后,无法自主快速恢复服务;同时,交易数据在各个节点的读操作及/或写操作过分依赖于智能合约的参与,数据交易的速度受到很大的影响。



技术实现要素:

本发明的主要目的是解决现有区块链系统交易数据在各个节点的读操作及/或写操作过分依赖于智能合约的参与的问题。

为实现上述目的,本发明提出的一种区块链交易处理辅助系统,所区块链交易处理辅助系统包括多个数据库群组及控制中心,其中:

每一个所述数据库群组分别包括与智能合约通信的集群负载均衡器,与所述集群负载均衡器通信的代理服务器群组,与所述代理服务器群组通信的第一备数据库和主数据库负载均衡器,与所述主数据库负载均衡器通信的主数据库,及与所述主数据库通信的第二备数据库,一个数据库群组的第一备数据库与另一个数据库群组的第二备数据库通信;

所述控制中心,用于向所述智能合约下发用户群组分片规则,以使所述智能合约在区块链上的一个节点发起带有交易方预设标识信息的数据交易请求后,根据所述控制中心预先下发的所述用户群组分片规则,确定所述交易方预设标识信息对应的数据库群组及所述数据交易请求对应的数据库群组下的数据库,并将所述数据交易请求经由确定的所述数据库群组的代理服务器群组发送给确定的所述数据库进行数据读操作或写操作。

优选地,所述用户群组分片规则包括:

预先确定各个所述数据库群组与各个所述交易方预设标识信息的映射关系;

根据预先确定的各个所述数据库群组与各个所述交易方预设标识信息的映射关系,确定出所述数据交易请求的交易方预设标识信息对应的数据库群组;

根据预先确定的所述数据交易请求类型与所述数据库的映射关系,确定所述数据交易请求对应的数据库。

优选地,所述控制中心还用于:

当一个数据库群组发生异常时,将所述数据库群组从数据交易请求服务队列中下线,将与所述数据库群组中的第一备数据库通信的另一个数据库群组中的第二备数据库调整为主数据库,代为对所述数据库群组对应的数据交易请求进行响应;

当所述数据库群组恢复正常时,将另一个数据库群组中的第二备数据库中的数据同步给所述数据库群组中的第一备数据库、第二备数据库及主数据库,并将所述数据库群组加入到所述数据交易请求服务队列中上线。

优选地,所述主数据库负载均衡器还用于:

当一个数据库群组的主数据库发生异常时,将所述数据库群组的原第二备数据库切换为所述数据库群组的主数据库,代为对所述主数据库对应的数据交易请求进行响应;

当所述主数据库恢复正常时,将所述主数据库作为新第二备数据库,切换为原第二备数据库的备数据库,并将原第二备数据库的数据同步给新第二备数据库。

此外,为实现上述目的,本发明提供一种区块链数据处理系统,所述区块链数据处理系统包括如上述任一项所述的区块链交易处理辅助系统,及与所述区块链交易处理辅助系统通信的智能合约,其中:

所述智能合约用于在所述区块链上的一个节点发起带有交易方预设标识信息的数据交易请求后,以根据所述控制中心下发的用户群组分片规则,确定所述交易方预设标识信息对应的数据库群组及所述数据交易请求对应的数据库群组下的数据库,并将所述数据交易请求经由确定的所述数据库群组的代理服务器群组发送给确定的所述数据库进行数据读操作或写操作。

此外,为实现上述目的,本发明提供一种区块链数据处理方法,该方法适用于区块链数据处理系统,所述区块链数据处理系统包括多个数据库群组,与各个所述数据库群组通信的智能合约,及与所述智能合约通信的控制中心,其中:

每一个所述数据库群组分别包括与智能合约通信的集群负载均衡器,与所述集群负载均衡器通信的代理服务器群组,与所述代理服务器群组通信的第一备数据库和主数据库负载均衡器,与所述主数据库负载均衡器通信的主数据库,及与所述主数据库通信的第二备数据库,一个数据库群组的第一备数据库与另一个数据库群组的第二备数据库通信;所述区块链数据处理方法包括:

所述智能合约在区块链上的一个节点发起带有交易方预设标识信息的数据交易请求后,根据所述控制中心预先下发的所述用户群组分片规则,确定所述交易方预设标识信息对应的数据库群组及所述数据交易请求对应的数据库群组下的数据库;

所述智能合约将所述数据交易请求经由确定的所述数据库群组的代理服务器群组发送给确定的所述数据库进行数据读操作或写操作。

优选地,所述用户群组分片规则包括:

预先确定各个所述数据库群组与各个所述交易方预设标识信息的映射关系;

根据预先确定的各个所述数据库群组与各个所述交易方预设标识信息的映射关系,确定出所述数据交易请求的交易方预设标识信息对应的数据库群组;

根据预先确定的所述数据交易请求类型与所述数据库的映射关系,确定所述数据交易请求对应的数据库。

优选地,所述区块链数据处理方法还包括:

当一个数据库群组发生异常时,所述控制中心将所述数据库群组从数据交易请求服务队列中下线,将与所述数据库群组中的第一备数据库通信的另一个数据库群组中的第二备数据库调整为主数据库,代为对所述数据库群组对应的数据交易请求进行响应;

当所述数据库群组恢复正常时,所述控制中心将另一个数据库群组中的第二备数据库中的数据同步给所述数据库群组中的第一备数据库、第二备数据库及主数据库,并将所述数据库群组加入到所述数据交易请求服务队列中上线。

优选地,所述区块链数据处理方法还包括:

当一个数据库群组的主数据库发生异常时,所述主数据库负载均衡器将所述数据库群组的原第二备数据库切换为所述数据库群组的主数据库,代为对所述主数据库对应的数据交易请求进行响应;

当所述主数据库恢复正常时,所述主数据库负载均衡器将所述主数据库作为新第二备数据库,切换为原第二备数据库的备数据库,并将原第二备数据库的数据同步给新第二备数据库。

本发明智能合约根据控制中心下发的用户群组分片规则,将交易请求经由数据库群组的代理服务器群组发送至数据库进行数据读写操作,解决了现有区块链系统交易数据在各个节点的读操作及/或写操作过份依赖于智能合约的参与的问题,提高了交易处理效率。

附图说明

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

图1为本发明区块链数据处理系统第一实施例的系统架构示意图;

图2为本发明区块链交易处理辅助系统第一实施例的系统架构示意图;

图3为本发明区块链数据处理方法第一实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,图1为本发明区块链数据处理系统第一实施例的系统架构示意图。

需要注意的是,图1中仅示出两个数据库群组20,并不意味着限定数据库群组20为两个,本发明对数据库群组20的数量不作限定,此外,代理服务器群组22中可包含多个代理服务器(图中未示出)。

本实施例中,所述区块链数据处理系统包括区块链交易处理辅助系统及智能合约10,该区块链交易处理辅助系统包括多个数据库群组20及控制中心30,各个所述数据库群组20与智能合约10通信连接,且所述智能合约10还与所述控制中心30通信连接,其中:

每一个所述数据库群组20分别包括与智能合约10通信的集群负载均衡器(LVS),与所述集群负载均衡器21通信的代理服务器(DbProxy)群组22,与所述代理服务器群组22通信的第一备数据库24(slave)和主数据库负载均衡器23(HaProxy),与所述主数据库负载均衡器23通信的主数据库25(Master),及与所述主数据库25通信的第二备数据库26,一个数据库群组20的第一备数据库24与另一个数据库群组20的第二备数据库26通信;其中:

所述控制中心30,用于向所述智能合约10下发用户群组分片规则;

所述智能合约10,用于在区块链上的一个节点发起带有交易方预设标识信息的数据交易请求后,根据所述控制中心30预先下发的所述用户群组分片规则,确定该交易方预设标识信息对应的数据库群组20及该数据交易请求对应的数据库群组20下的数据库,并将该数据交易请求经由确定的所述数据库群组20的代理服务器群组22发送给确定的所述数据库进行数据读操作或写操作。

上述智能合约10里含有数据操作入口API(Application Programming Interface,应用程序编程接口)。

上述交易方预设标识信息可以是用户标识信息(例如,用户账户名),上述智能合约10可通过调用数据操作入口API,将将该数据交易请求经由确定的所述数据库群组20的代理服务器群组22发送给确定的所述数据库进行数据读操作或写操作。

本实施例智能合约10根据控制中心30下发的用户群组分片规则,将交易请求经由数据库群组20的代理服务器群组22发送至数据库进行数据读写操作,解决了现有区块链系统交易数据在各个节点的读操作及/或写操作过分依赖于智能合约10的参与的问题,提高了交易处理效率。

优选地,本实施例中,所述用户群组分片规则包括:

预先确定各个数据库群组20与各个交易方预设标识信息的映射关系;

例如,各个数据库群组20可以分别对应一个不同的交易方预设标识信息集合,各个交易方预设标识信息集合中包括一个或多个交易方预设标识信息。

根据预先确定的各个数据库群组20与各个交易方预设标识信息的映射关系,确定出数据交易请求的交易方预设标识信息对应的数据库群组20;

根据预先确定的数据交易请求类型与数据库的映射关系,确定数据交易请求对应的数据库。

例如,数据读操作请求对应的数据库可以为第一备数据库24;数据写操作请求对应的数据库可以为主数据库25。

优选地,本实施例中,所述控制中心30还用于:

当一个数据库群组20发生异常时,将该数据库群组20从数据交易请求服务队列中下线,将与该数据库群组20中的第一备数据库24通信的另一个数据库群组20中的第二备数据库26调整为主数据库25,代为对该数据库群组20对应的数据交易请求进行响应;

上述对一数据库群组20发生异常的判断可具体为:若一个数据库群组20无法完成正常的数据读操作及/或写操作,则确定该数据库群组20发生异常。

当该数据库群组20恢复正常时,将另一个数据库群组20中的第二备数据库26中的数据同步给该数据库群组20中的第一备数据库24、第二备数据库26及主数据库25,并将该数据库群组20加入到数据交易请求服务队列中上线。

本实施例的控制中心30可在数据库群组20间动态的调整主数据库25,在当一数据库群组20发生异常时,可将另一数据库群组20中的第二备数据库26调整为主数据库25,当发生异常的数据库群组20恢复正常时,又重新启用该数据库群组20,从而在数据库组发生异常时,可自主快速的恢复服务。

优选地,本实施例中,所述主数据库负载均衡器23还用于:

当一个数据库群组20的主数据库25发生异常时,将该数据库群组20的原第二备数据库26切换为该数据库群组20的主数据库25,代为对该主数据库25对应的数据交易请求进行响应;

当该主数据库25恢复正常时,将该主数据库25作为新第二备数据库26,切换为原第二备数据库26的备数据库,并将原第二备数据库26的数据同步给新第二备数据库26。

本实施例的主数据库负载均衡器23可实现在一数据库群组20中动态调整主数据库25,从而在主数据库25发生异常时,可自主快速的恢复服务。

优选地,本实施例中,上述区块链交易处理辅助系统还用于:

接收所述智能合约10发送的交易请求,并根据接收的所述交易请求进行交易处理,并将交易处理结果通过异步方式写入区块链存储层中的存储区块。

优选地,本实施例中,上述区块链交易处理辅助系统还用于:

定时将所有待入链存储的交易处理结果按照生成时间的先后顺序进行排序;

当所有待入链存储的交易处理结果的数量小于或者等于第一阈值数量时,按照排序顺序,将待入链存储的交易处理结果写入区块链存储层中的存储区块;

当所有待入链存储的交易处理结果的数量大于第一阈值数量时,将排序在前的第一阈值数量的待入链存储的交易处理结果,按照排序顺序写入区块链存储层中的存储区块,对剩余的待入链存储的交易处理结果进行缓存。

优选地,本实施例中,上述区块链交易处理辅助系统还用于:

当生成一个交易处理结果,则将该交易处理结果加入一个预先生成的入链存储结果队列,该入链存储结果队列用于缓存所有待入链存储的交易处理结果,该入链存储结果队列中的所有待入链存储的交易处理结果按照生成时间的先后顺序进行排序;

定时对该入链存储结果队列中的待入链存储的交易处理结果启动入链存储操作,并在启动入链存储操作后,判断该入链存储结果队列中的所有待入链存储的交易处理结果的数量是否小于第一阈值数量;

当所有待入链存储的交易处理结果的数量小于或者等于第一阈值数量时,按照排序顺序,将待入链存储的交易处理结果写入区块链存储层中的存储区块;

当所有待入链存储的交易处理结果的数量大于第一阈值数量时,将排序在前的第一阈值数量的待入链存储的交易处理结果,按照排序顺序写入区块链存储层中的存储区块,对剩余的待入链存储的交易处理结果继续进行缓存。

本发明还提供一种区块链交易处理辅助系统。

如图2所示,图2为本发明区块链交易处理辅助系统第一实施例的系统架构示意图。

需要注意的是,图2中仅示出两个数据库群组20,并不意味着限定数据库群组20为两个,本发明对数据库群组20的数量不作限定,此外,代理服务器群组22中可包含多个代理服务器(图中未示出)。

本实施例中,所述区块链交易处理辅助系统包括多个数据库群组20及控制中心30,其中:

每一个所述数据库群组20分别包括与智能合约10通信的集群负载均衡器21(LVS),与所述集群负载均衡器21通信的代理服务器(DbProxy)群组22,与所述代理服务器群组22通信的第一备数据库24(slave)和主数据库负载均衡器23(HaProxy),与所述主数据库负载均衡器23通信的主数据库25(Master),及与所述主数据库25通信的第二备数据库26,一个数据库群组20的第一备数据库24与另一个数据库群组20的第二备数据库26通信;

所述控制中心30,用于向所述智能合约10下发用户群组分片规则,以使所述智能合约10在区块链上的一个节点发起带有交易方预设标识信息的数据交易请求后,根据所述控制中心30预先下发的所述用户群组分片规则,确定该交易方预设标识信息对应的数据库群组20及该数据交易请求对应的数据库群组20下的数据库,并将该数据交易请求经由确定的所述数据库群组20的代理服务器群组22发送给确定的所述数据库进行数据读操作或写操作。

上述智能合约10里含有数据操作入口API(Application Programming Interface,应用程序编程接口)。

上述交易方预设标识信息可以是用户标识信息(例如,用户账户名),上述智能合约10可通过调用数据操作入口API,将将该数据交易请求经由确定的所述数据库群组20的代理服务器群组22发送给确定的所述数据库进行数据读操作或写操作。

本实施例智能合约10根据控制中心30下发的用户群组分片规则,将交易请求经由数据库群组20的代理服务器群组22发送至数据库进行数据读写操作,解决了现有区块链系统交易数据在各个节点的读操作及/或写操作过份依赖于智能合约10的参与的问题,提高了交易处理效率。

优选地,本实施例中,所述用户群组分片规则包括:

预先确定各个数据库群组20与各个交易方预设标识信息的映射关系;

例如,各个数据库群组20可以分别对应一个不同的交易方预设标识信息集合,各个交易方预设标识信息集合中包括一个或多个交易方预设标识信息。

根据预先确定的各个数据库群组20与各个交易方预设标识信息的映射关系,确定出数据交易请求的交易方预设标识信息对应的数据库群组20;

根据预先确定的数据交易请求类型与数据库的映射关系,确定数据交易请求对应的数据库。

例如,数据读操作请求对应的数据库可以为第一备数据库24;数据写操作请求对应的数据库可以为主数据库25。

优选地,本实施例中,所述控制中心30还用于:

当一个数据库群组20发生异常时,将该数据库群组20从数据交易请求服务队列中下线,将与该数据库群组20中的第一备数据库24通信的另一个数据库群组20中的第二备数据库26调整为主数据库25,代为对该数据库群组20对应的数据交易请求进行响应;

上述对一数据库群组20发生异常的判断可具体为:若一个数据库群组20无法完成正常的数据读操作及/或写操作,则确定该数据库群组20发生异常。

当该数据库群组20恢复正常时,将另一个数据库群组20中的第二备数据库26中的数据同步给该数据库群组20中的第一备数据库24、第二备数据库26及主数据库25,并将该数据库群组20加入到数据交易请求服务队列中上线。

本实施例的控制中心30可在数据库群组20间动态的调整主数据库25,在当一数据库群组20发生异常时,可将另一数据库群组20中的第二备数据库26调整为主数据库25,当发生异常的数据库群组20恢复正常时,又重新启用该数据库群组20,从而在数据库组发生异常时,可自主快速的恢复服务。

优选地,本实施例中,所述主数据库负载均衡器23还用于:

当一个数据库群组20的主数据库25发生异常时,将该数据库群组20的原第二备数据库26切换为该数据库群组20的主数据库25,代为对该主数据库25对应的数据交易请求进行响应;

当该主数据库25恢复正常时,将该主数据库25作为新第二备数据库26,切换为原第二备数据库26的备数据库,并将原第二备数据库26的数据同步给新第二备数据库26。

本实施例的主数据库负载均衡器23可实现在一数据库群组20中动态调整主数据库25,从而在主数据库25发生异常时,可自主快速的恢复服务。

本发明还提供一种区块链数据处理方法。

如图3所示,图3为本发明区块链数据处理方法第一实施例的流程示意图。

本实施例中,该方法适用于区块链数据处理系统,其特征在于,所述区块链数据处理系统包括多个数据库群组,与各个所述数据库群组通信的智能合约,及与所述智能合约通信的控制中心,其中:

每一个所述数据库群组分别包括与智能合约通信的集群负载均衡器21,与所述集群负载均衡器21通信的代理服务器群组,与所述代理服务器群组通信的第一备数据库和主数据库负载均衡器,与所述主数据库负载均衡器通信的主数据库,及与所述主数据库通信的第二备数据库,一个数据库群组的第一备数据库与另一个数据库群组的第二备数据库通信;所述区块链数据处理方法包括:

步骤S10,所述智能合约在区块链上的一个节点发起带有交易方预设标识信息的数据交易请求后,根据所述控制中心预先下发的所述用户群组分片规则,确定该交易方预设标识信息对应的数据库群组及该数据交易请求对应的数据库群组下的数据库;

上述智能合约里含有数据操作入口API(Application Programming Interface,应用程序编程接口)。

上述交易方预设标识信息可以是用户标识信息(例如,用户账户名),上述智能合约可通过调用数据操作入口API,将将该数据交易请求经由确定的所述数据库群组的代理服务器群组发送给确定的所述数据库进行数据读操作或写操作。

步骤S20,所述智能合约将该数据交易请求经由确定的所述数据库群组的代理服务器群组发送给确定的所述数据库进行数据读操作或写操作。

本实施例智能合约根据控制中心下发的用户群组分片规则,将交易请求经由数据库群组的代理服务器群组发送至数据库进行数据读写操作,解决了现有区块链系统交易数据在各个节点的读操作及/或写操作过份依赖于智能合约的参与的问题,提高了交易处理效率。

优选地,本实施例中,所述用户群组分片规则包括:

预先确定各个所述数据库群组与各个所述交易方预设标识信息的映射关系;

例如,各个数据库群组可以分别对应一个不同的交易方预设标识信息集合,各个交易方预设标识信息集合中包括一个或多个交易方预设标识信息。

根据预先确定的各个所述数据库群组与各个所述交易方预设标识信息的映射关系,确定出所述数据交易请求的交易方预设标识信息对应的数据库群组;

根据预先确定的所述数据交易请求类型与所述数据库的映射关系,确定所述数据交易请求对应的数据库。

例如,数据读操作请求对应的数据库可以为第一备数据库;数据写操作请求对应的数据库可以为主数据库。

优选地,本实施例中,所述区块链数据处理方法还包括:

当一个数据库群组发生异常时,所述控制中心将该数据库群组从数据交易请求服务队列中下线,将与该数据库群组中的第一备数据库通信的另一个数据库群组中的第二备数据库调整为主数据库,代为对该数据库群组对应的数据交易请求进行响应;

上述对一数据库群组发生异常的判断可具体为:若一个数据库群组无法完成正常的数据读操作及/或写操作,则确定该数据库群组发生异常。

当该数据库群组恢复正常时,所述控制中心将另一个数据库群组中的第二备数据库中的数据同步给该数据库群组中的第一备数据库、第二备数据库及主数据库,并将该数据库群组加入到所述数据交易请求服务队列中上线。

本实施例的控制中心可在数据库群组间动态的调整主数据库,在当一数据库群组发生异常时,可将另一数据库群组中的第二备数据库调整为主数据库,当发生异常的数据库群组恢复正常时,又重新启用该数据库群组,从而在数据库组发生异常时,可自主快速的恢复服务。

优选地,本实施例中,所述区块链数据处理方法还包括:

当一个数据库群组的主数据库发生异常时,所述主数据库负载均衡器将该数据库群组的原第二备数据库切换为该数据库群组的主数据库,代为对该主数据库对应的数据交易请求进行响应;

当该主数据库恢复正常时,所述主数据库负载均衡器将该主数据库作为新第二备数据库,切换为原第二备数据库的备数据库,并将原第二备数据库的数据同步给新第二备数据库。

本实施例的主数据库负载均衡器可实现在一数据库群组中动态调整主数据库,从而在主数据库发生异常时,可自主快速的恢复服务。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

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