基于联盟区块链底层可信数据同步方法、网络结构及服务器与流程

文档序号:20998545发布日期:2020-06-05 22:26阅读:201来源:国知局
本发明涉及数据库同步
技术领域
:,特别涉及基于联盟区块链底层可信数据同步方法、网络结构及服务器。
背景技术
::目前的数据库广域网或者同机房同步技术,多数采用常规的加密通道网络进行数据同步,一旦数据离开数据发送方机器,就有可能被破解、篡改原数据,或者非破解方式重放数据,造成数据同步不一致的情况。并且多数同步方式采用点对点、点对多较难于维护数据同步一致发送,因为经常有一方网络中断或其他异常,造成重试、重发数据,影响整个数据同步效率。现有技术中安全性的解决方案是多数采用建立端对端或端对多的加密网络通道进行公网数据的同步,安全性由网络加密安全性保证,常见使用tls加密通道方案解决,其中需要在防火墙设置对外开放端口,两端同步程序启动并保证网络连接,方可同步数据,如果是一对多的同步,则各端程序都需要启动并保证网络连接。综上所述,现有技术需要同步数据的各方程序必须在线才可以同步;一旦数据离开数据发送方机器,就有可能被破解、篡改原数据,或者重放数据,造成数据同步不一致的情况;点对点、点对多式的广播链路,难于维护数据同步一致步伐,如有一方网络中断或其他异常,造成重试、重发数据,影响整个数据同步效率,且点对多的网络链路较难维护。技术实现要素:本发明提供了基于联盟区块链底层可信数据同步方法、网络结构及服务器,用以解决现有技术无法异步同步,历史未同步数据及离开发送方的数据可篡改,以及网络链路维护较难的问题。第一部分,本发明实施例的一种基于联盟区块链底层可信数据同步方法,包括步骤:s1、发起端数据库将需要同步的数据表示为写集合,并进行交易签名后发送到联盟区块链通道上;s2、联盟区块链校验交易签名后,将所述写集合打包到当前区块中;s3、同步端数据库监听所述的当前区块到达,则根据所述当前区块的高度和之前同步的区块的高度,增量解析所述的当前区块,从所述的写集合中解析得出需要同步的数据;s4、所述的同步端数据库将所述需要同步的数据插入至本地。优选的,另一实施例的基于联盟区块链底层可信数据同步方法,步骤s1之前还包括步骤:s0、搭建联盟区块链网络,并创建至少一条同步数据的所述联盟区块链通道;以及,为所述的发起端数据库的前置机配置联盟区块链节点,为所述的同步端数据库的前置机配置联盟区块链节点。优选的,所述的交易签名为所述发起端数据库的私钥签名。优选的,所述的写集合以所述联盟区块链的广播域中的唯一值和所述需要同步的数据共同构成。第二部分,本发明实施例的一种基于联盟区块链底层可信数据同步网络结构,由发起端数据库、同步端数据库,以及所述发起端数据库和同步端数据库之间的联盟区块链通道构成联盟区块链网络;其中,所述的发起端数据库,用于将需要同步的数据表示为写集合,并进行交易签名后发送到所述联盟区块链通道上;联盟区块链网络校验交易签名后,将所述写集合打包到当前区块中;同步端数据库,用于监听所述的当前区块到达,则根据所述当前区块的高度和之前同步的区块的高度,增量解析所述的当前区块,从所述的写集合中解析得出需要同步的数据,并插入至本地。优选的,所述的发起端数据库和同步端数据库均具有前置机,每一所述的前置机配置有联盟区块链节点。第三部分,本发明实施例的一种发起端数据库,包括:写集合生成模块,用于将需要同步的数据表示为写集合;签名模块,用于对所述写集合进行交易签名;发送模块,用于将交易签名后的写集合发出。优选的,还包括:发起端数据库的前置机,用于配置发起端数据库的联盟区块链节点。第四部分,本发明实施例的一种同步端数据库,包括:监听模块,用于监听当前区块的到达;解析模块,用于根据所述当前区块的高度和之前同步的区块的高度,增量解析所述的当前区块,得出写集合,再从所述写集合中解析得出需要同步的数据;同步模块,用于将所述需要同步的数据插入至本地。优选的,还包括:同步端数据库的前置机,用于配置同步端数据库的联盟区块链节点。本发明的实施例基于联盟区块链底层可信数据同步方法、网络结构及服务器,可实现数据异步同步且历史未同步数据不可篡改、同时也解决了数据一旦离开数据发送方机器,就具有不可修改、不可重放,不用维护同步网络链路,不用管理数据同步是否一致步调、不用关心对端数据是否同步一致等问题。在数据不可篡改的前提下,完善数据同步在一致性和安全性、可异步方面的问题,提升业务数据可靠同步。附图说明图1是本发明实施例1的基于联盟区块链底层可信数据同步方法流程图;图2是本发明实施例2的基于联盟区块链底层可信数据同步方法流程图;图3是本发明实施例3的基于联盟区块链底层可信数据同步网络结构示意图;图4是本发明实施例4的发起端数据库结构示意图;图5是本发明实施例5的同步端数据库结构示意图。具体实施方式发明人经研究发现,开源的分布式账本技术的hyperledgerfabric以区块链框架为基础,提出以交易方式、根据共识达到交易数据的一致性,所有以区块链为基础的公有链、私有链还是联盟区块链都是交易数据最终一致性,且区块数据不可篡改、修改数据可追溯、分布式一致性特点,且联盟区块链还有经过许可方可加入区块链网络的特性,但是联盟区块链依据技术特点,没有解决生产关系、数据一致性问题,为此发明人提出一种基于联盟区块链底层可信数据同步方式,解决数据库之间的多通道同步问题,提升数据同步一致性、安全防篡改、可异步、可广播式的同步方案。以下通过实施例详细说明。实施例1、本实施例的一种基于联盟区块链底层可信数据同步方法,参见图1所示,包括下列主要步骤:s101、发起端数据库将需要同步的数据表示为写集合,并进行交易签名后发送到联盟区块链通道上。在具体实现中,发起端数据库(发起端db)将需要同步的数据,以类似[db库]+[table表]+[行数据]组织成一个需要同步的写集合,使用联盟区块链成员私钥签名该写集合并发起的交易,并将该交易发送到联盟区块链通道上,即发送到一个或者多个同步账本通道上。此处联盟区块链合约只是为定义交易写集合的格式,例如:合约只做kv构造,其中k值只要在联盟区块链广播域中唯一即可,但是v必须是发起端数据库中需要同步的数据构造的写集合,这样数据库在同步数据库时,向联盟区块链合约中发起一个签名交易,其中交易的内容就是唯一的key和数据库中需要同步的数据构造写集合。s102、联盟区块链校验交易签名后,将需要同步的写集合打包到当前区块中。其中,联盟区块链将查验交易签名以及需要同步的写集合,校验签名正确后,联盟区块链根据交易数据以及时间打包多个交易到一个区块中,则该区块中含有这个写集合的数据,即步骤s101中构造的所述写集合是当前区块中包含的一个或多个写集合。s103、同步端数据库监听当前区块到达,则根据当前区块的高度和之前同步的区块的高度,增量解析当前区块,从写集合中解析得出需要同步的数据。其中,如上所述联盟区块链根据交易数据以及时间打包多个交易到一个区块中,则同步端数据库监听当前区块到达时,即收到区块高度增加消息时,根据当前到达的区块高度和之前同步的区块的高度,增量解析当前到达的区块,再根据当前到达的区块中每个交易的写集合,解析需要同步的数据。s104、同步端数据库将需要同步的数据插入至本地。其中,同步端数据库将需要同步的数据以上述的库-表-行数据格式插入对应的本地数据库表中,完成数据的异步,安全、防篡改的数据库同步。本实施例的基于联盟区块链底层可信数据同步方法,在联盟区块链中账本通道就是数据库一个广播域,加入一个广播域的联盟区块链节点区块数据都是一致的,其中一个数据库发起的同步数据请求,经过他私钥签名,发送到联盟区块链网络中,保证了数据不可篡改,且不用维护端对端数据库链路,数据库前置机安装的联盟区块链节点,数据库可以随时连接或者中断,只要从上一个开始的区块高度再次同步就可以保证数据一致性。实施例2、本实施例的一种基于联盟区块链底层可信数据同步方法,参见图2所示,包括下列主要步骤:s200、搭建联盟区块链网络,并创建至少一条同步数据的所述联盟区块链通道;以及为发起端数据库和同步端数据库的前置机配置联盟区块链节点。其中,首先搭建联盟区块链网络,创建一个或者多个同步账本通道(即创建至少一条同步数据的联盟区块链通道),给需要同步数据的数据库前置机安装一个联盟区块链节点。s201、发起端数据库将需要同步的数据表示为写集合,并进行交易签名后通过前置机的联盟区块链节点发送到联盟区块链通道上。在具体实现中,发起端数据库(发起端db)将需要同步的数据,以类似[db库]+[table表]+[行数据]组织成一个需要同步的写集合,使用联盟区块链成员私钥签名该写集合并发起的交易,并将交易发送到发起端数据库前置机的联盟区块链节点上。此处联盟区块链合约只是为定义交易写集合的格式,例如:合约只做kv构造,其中k值只要在联盟区块链广播域中唯一即可,但是v必须是发起端数据库中需要同步的数据构造的写集合,这样数据库在同步数据库时,向联盟区块链合约中发起一个签名交易,其中交易的内容就是唯一的key和数据库中需要同步的数据构造写集合。s202、联盟区块链校验交易签名后,将需要同步的写集合打包到当前区块中。其中,联盟区块链将查验交易签名以及需要同步的写集合,校验签名正确后,联盟区块链根据交易数据以及时间打包多个交易到一个区块中,则该区块中含有这个写集合的数据,即步骤s201中构造的所述写集合是当前区块中包含的一个或多个写集合。s203、同步端数据库的前置机监听当前区块到达,则根据当前区块的高度和之前同步的区块的高度,增量解析当前区块,从写集合中解析得出需要同步的数据。其中,如上所述联盟区块链根据交易数据以及时间打包多个交易到一个区块中,则同步端数据库的前置机联盟区块链节点监听当前区块到达时,即收到区块高度增加消息时,根据当前到达的区块高度和之前同步的区块的高度,增量解析当前到达的区块,再根据当前到达的区块中每个交易的写集合,解析需要同步的数据。s204、同步端数据库将需要同步的数据插入至本地。其中,同步端数据库将需要同步的数据以上述的库-表-行数据格式插入对应的本地数据库表中,完成数据的异步,安全、防篡改的数据库同步。本实施例的基于联盟区块链底层可信数据同步方法,在联盟区块链中账本通道就是数据库一个广播域,加入一个广播域的联盟区块链节点区块数据都是一致的,其中一个数据库发起的同步数据请求,经过他私钥签名,发送到联盟区块链网络中,保证了数据不可篡改,且不用维护端对端数据库链路,数据库前置机安装的联盟区块链节点,数据库可以随时连接或者中断,只要从上一个开始的区块高度再次同步就可以保证数据一致性。实施例3、本实施例的基于联盟区块链底层可信数据同步网络结构,由发起端数据库301、同步端数据库302,以及发起端数据库301和同步端数据库302之间的联盟区块链通道303构成联盟区块链网络。搭建联盟区块链网络时,创建一个或者多个同步账本通道(即创建至少一条同步数据的联盟区块链通道303),给需要同步数据的数据库前置机安装一个联盟区块链节点,即发起端数据库301具有发起端数据库前置机304,发起端数据库前置机304配置有发起端数据库前置机联盟区块链节点3041;同步端数据库302具有同步端数据库前置机305,同步端数据库前置机305配置有同步端数据库前置机联盟区块链节点3051。发起端数据库301,用于将需要同步的数据表示为写集合,并进行交易签名后发送到联盟区块链通道上。更为具体的,发起端数据库301将需要同步的数据,以类似[db库]+[table表]+[行数据]组织成一个需要同步的写集合,使用联盟区块链成员私钥签名该写集合并发起的交易,并将交易发送到发起端数据库前置机304的联盟区块链节点3041上。此处联盟区块链合约只是为定义交易写集合的格式,例如:合约只做kv构造,其中k值只要在联盟区块链广播域中唯一即可,但是v必须是发起端数据库中需要同步的数据构造的写集合,这样数据库在同步数据库时,向联盟区块链合约中发起一个签名交易,其中交易的内容就是唯一的key和数据库中需要同步的数据构造写集合。联盟区块链网络校验交易签名后,将需要同步的写集合打包到当前区块中。更为具体的,联盟区块链将查验交易签名以及需要同步的写集合,校验签名正确后,联盟区块链根据交易数据以及时间打包多个交易到一个区块中,则该区块中含有这个写集合的数据,并将该区块发送到各联盟区块链通道303。同步端数据库302,用于监听当前区块到达,则根据当前区块的高度和之前同步的区块的高度,增量解析当前区块,从写集合中解析得出需要同步的数据,并插入至本地。更为具体的,如上所述联盟区块链根据交易数据以及时间打包多个交易到一个区块中,则同步端数据库前置机305的联盟区块链节点3051监听当前区块到达时,即收到区块高度增加消息时,根据当前到达的区块高度和之前同步的区块的高度,增量解析当前到达的区块,再根据当前到达的区块中每个交易的写集合,解析需要同步的数据。同步端数据库302将需要同步的数据以上述的库-表-行数据格式插入对应的本地数据库表中,完成数据的异步,安全、防篡改的数据库同步。本实施例的基于联盟区块链底层可信数据同步网络结构,在联盟区块链中账本通道就是数据库一个广播域,加入一个广播域的联盟区块链节点区块数据都是一致的,其中一个数据库发起的同步数据请求,经过他私钥签名,发送到联盟区块链网络中,保证了数据不可篡改,且不用维护端对端数据库链路,数据库前置机安装的联盟区块链节点,数据库可以随时连接或者中断,只要从上一个开始的区块高度再次同步就可以保证数据一致性。实施例4、本实施例的发起端数据库,参见图4所示,包括:写集合生成模块401、签名模块402、发送模块403和发起端数据库的前置机404。发起端数据库的前置机404,用于在搭建联盟区块链网络时,配置发起端数据库的联盟区块链节点。写集合生成模块401,用于将需要同步的数据表示为写集合。具体的,写集合生成模块401将需要同步的数据,以类似[db库]+[table表]+[行数据]组织成一个需要同步的写集合。此处联盟区块链合约只是为定义交易写集合的格式,例如:合约只做kv构造,其中k值只要在联盟区块链广播域中唯一即可,但是v必须是发起端数据库中需要同步的数据构造的写集合,这样数据库在同步数据库时,向联盟区块链合约中发起一个签名交易,其中交易的内容就是唯一的key和数据库中需要同步的数据构造写集合。签名模块402,用于对写集合进行交易签名。具体的,签名模块402使用联盟区块链成员私钥签名该写集合。发送模块403,用于将交易签名后的写集合发出。具体的,将交易发送到发起端数据库的前置机404的联盟区块链节点上。本实施例的发起端数据库配合同步端数据库使用,在联盟区块链中账本通道就是数据库一个广播域,加入一个广播域的联盟区块链节点区块数据都是一致的,其中一个数据库发起的同步数据请求,经过他私钥签名,发送到联盟区块链网络中,保证了数据不可篡改,且不用维护端对端数据库链路,数据库前置机安装的联盟区块链节点,数据库可以随时连接或者中断,只要从上一个开始的区块高度再次同步就可以保证数据一致性。实施例5、本实施例的同步端数据库,参见图5所示,包括:监听模块501、解析模块502、同步模块503、同步端数据库的前置机504。同步端数据库的前置机504,用于在搭建联盟区块链网络时,配置同步端数据库的联盟区块链节点。监听模块501,用于监听当前区块的到达。解析模块502,用于根据当前区块的高度和之前同步的区块的高度,增量解析当前区块,得出写集合,再从写集合中解析得出需要同步的数据。具体的,联盟区块链通常根据交易数据以及时间打包多个交易到一个区块中,则同步端数据库的前置机504的联盟区块链节点作为监听模块501的前端,配合监听模块501监听当前区块到达时,即收到区块高度增加消息时,根据当前到达的区块高度和之前同步的区块的高度,增量解析当前到达的区块,再根据当前到达的区块中每个交易的写集合,解析需要同步的数据。同步模块503,用于将需要同步的数据插入至本地。具体的,同步模块503将需要同步的数据以库-表-行数据格式插入对应的本地数据库表中,完成数据的异步,安全、防篡改的数据库同步。本实施例的同步端数据库配合发起端数据库使用,在联盟区块链中账本通道就是数据库一个广播域,加入一个广播域的联盟区块链节点区块数据都是一致的,其中一个数据库发起的同步数据请求,经过他私钥签名,发送到联盟区块链网络中,保证了数据不可篡改,且不用维护端对端数据库链路,数据库前置机安装的联盟区块链节点,数据库可以随时连接或者中断,只要从上一个开始的区块高度再次同步就可以保证数据一致性。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1