基于区块链的关系型数据库的数据写入方法及系统技术方案

技术编号:21714349 阅读:40 留言:0更新日期:2019-07-27 19:12
本发明专利技术公开了一种基于区块链的关系型数据库的数据写入方法及系统,该方法包括:当监听到区块链中背书节点产生的交易信息时获取交易信息;从交易信息中提取业务通道标识、链码标识和版本标识,以设定对应的交易数据表名;在查询到关系型数据库中存在交易数据表名时,从交易信息中提取用户元数据和交易元数据并组合成第一交易数据,以将第一交易数据写入对应的交易数据表中;在查询到关系型数据库中不存在交易数据表名时,从交易信息中提取用户元数据和交易元数据并生成表头和第二交易数据;根据表头创建新的交易数据表并将第二交易数据写入新建的交易数据表中。该数据写入方法及系统能提升数据查询效率,且可将区块链中的数据对接到应用层。

Data Writing Method and System of Relational Database Based on Block Chain

【技术实现步骤摘要】
基于区块链的关系型数据库的数据写入方法及系统
本专利技术涉及数据处理
,尤其涉及一种基于区块链的关系型数据库的数据写入方法。
技术介绍
在区块链技术中,数据以区块的形成按照时间先后顺序逐个生成并叠加形成链式数据结构,每个区块记录了相应时间所发生的交易信息。由于区块链是基于文件系统进行存储的,数据以键值对的形式进行存储,因而不支持对于部分特定条件的查询或者复杂逻辑的查询。此外,由于应用层基本使用关系数据模型来进行数据的处理,而区块链的所使用的数据模型为键值对Key-Value模型,两者的数据模型不同,使得区块链的数据无法对接到应用层中。因而,现有的区块链存在查询效率低且无法对接到应用层的问题。
技术实现思路
针对上述问题,本专利技术的一种基于区块链的关系型数据库的数据写入方法及系统,能有效提升数据查询效率,且能够将区块链中的数据对接到应用层,提升应用层数据的安全性。为解决上述技术问题,本专利技术的一种基于区块链的关系型数据库的数据写入方法,包括如下步骤:当监听到区块链中背书节点产生的交易信息时,获取所述交易信息;从所述交易信息中提取业务通道标识、链码标识和版本标识;根据所述业务通道标识、所述链码标识和所述版本标识,设定对应的交易数据表名;在查询到关系型数据库中存在所述交易数据表名的情况下,从所述交易信息中提取用户元数据和交易元数据并组合成第一交易数据,以将所述第一交易数据写入所述对应的交易数据表中;在查询到所述关系型数据库中不存在所述交易数据表名的情况下,则从所述交易信息中提取用户元数据和交易元数据并生成表名、表头和第二交易数据;根据所述表名和所述表头创建新的交易数据表,并将所述第二交易数据写入新建的交易数据表中。作为上述方案的改进,在监听到区块链中背书节点产生的交易信息之前,还包括如下步骤:通过所述背书节点对交易进行背书或者所述背书节点发生重启来触发对所述背书节点的监听。作为上述方案的改进,在所述背书节点发生重启之后,还包括如下步骤:分别获取所述区块链中的交易信息和所述关系型数据库中的交易数据;将所述交易信息和所述交易数据进行比对;在所述交易信息和所述交易数据一致时,继续监听;在所述交易信息和所述交易数据不一致时,获取所述区块链中与所述交易数据不一致的交易信息;从所述不一致的交易信息中提取业务通道标识、链码标识和版本标识,以进行交易数据表名查询,进而完成所述不一致的交易信息的写入,实现数据的同步更新。作为上述方案的改进,所述数据写入方法还包括如下步骤:当接收到客户端发起的交易数据查询指令时,根据所述查询指令中携带的用户权限信息进行身份认证;在确定所述用户权限为具备读取权限的情况下,向所述客户端返回查询结果。为解决上述技术问题,本专利技术还提供一种基于区块链的关系型数据库的数据写入系统,包括:监听模块,用于在监听到区块链中背书节点产生的交易信息时,获取所述交易信息;数据提取模块,用于从所述交易信息中提取业务通道标识、链码标识和版本标识;数据表名设定模块,用于根据所述业务通道标识、所述链码标识和所述版本标识,设定对应的交易数据表名;数据写入模块,用于在查询到关系型数据库中存在所述交易数据表名的情况下,从所述交易信息中提取用户元数据和交易元数据并组合成第一交易数据,以将所述第一交易数据写入所述对应的交易数据表中;数据生成模块,用于在查询到所述关系型数据库中不存在所述交易数据表名的情况下,则从所述交易信息中提取用户元数据和交易元数据以生成表名、表头和第二交易数据;数据表新建模块,用于根据所述表名和所述表头创建新的交易数据表,并将所述第二交易数据写入新建的交易数据表中。作为上述方案的改进,所述数据写入系统还包括:监听触发模块,用于在监听到区块链中背书节点产生的交易信息之前,通过所述背书节点对交易进行背书或者所述背书节点发生重启来触发对所述背书节点的监听。作为上述方案的改进,所述数据写入系统还包括:信息获取模块,用于在所述背书节点发生重启之后,分别获取所述区块链中的交易信息和所述关系型数据库中的交易数据;信息对比模块,用于将所述交易信息和所述交易数据进行比对,并在所述交易信息和所述交易数据一致时,继续监听;以及在所述交易信息和所述交易数据不一致时,获取所述区块链中与所述交易数据不一致的交易信息;数据同步模块,用于从所述不一致的交易信息中提取业务通道标识、链码标识和版本标识,以进行交易数据表名查询,进而完成所述不一致的交易信息的写入,实现数据的同步更新。作为上述方案的改进,所述数据写入系统还包括:身份认证模块,用于在接收到客户端发起的交易数据查询指令时,根据所述查询指令中携带的用户权限信息进行身份认证;查询结果返回模块,用于在确定所述用户权限为具备读取权限的情况下,向所述客户端返回查询结果。与现有技术相比,本专利技术的数据读写方法及系统,由于在区块链中背书节点产生交易信息时获取一份相同的交易信息,因而可从该交易信息中提取出如业务通道标识、链码标识、版本标识、用户元数据和交易元数据的关键交易数据;并且通过利用业务通道标识、链码标识和版本标识来确定与交易信息相对应的唯一的交易数据表名,能够进一步根据交易数据表名来查询关系型数据库中是否存在对应的交易数据表,从而完成交易数据的写入或者交易数据表的新建,使得区块链中的关键交易数据以关系型数据模型的形式进行同步存储,以便通过查询关系型数据库中交易数据的方式来完成对区块链中关键交易数据进行特定条件的查询或复杂逻辑的查询,能够有效提升对区块链中数据的查询速度和查询效率。另外,由于该数据写入方法能够将区块链中的关键交易数据写入到关系型数据库中,且关系型数据库能够直接对接到应用层中,使得区块链中的数据可通过该关系型数据库间接对接到应用层,进而可充分利用区块链的去中心化和数据不可篡改性来保证应用层数据的安全性。再者,该数据写入方法通过提取区块链中的交易信息的关键交易数据来形成交易数据表,可避免在关系型数据库中写入冗余数据,其数据冗余度低,避免占用过多的存储空间。附图说明图1是本专利技术实施例1的一种基于区块链的关系型数据库的数据写入方法的流程示意图。图2是本专利技术实施例1的另一种基于区块链的关系型数据库的数据写入方法的流程示意图。图3是本专利技术实施例2的一种基于区块链的关系型数据库的数据写入方法的流程示意图。图4是本专利技术实施例3的一种基于区块链的关系型数据库的数据写入系统的结构示意图。具体实施方式在下面的描述中阐述了很多具体细节以便于充分理解本专利技术。但是本专利技术能够以很多不同于此描述的其他方式来实施,本领域技术人员可以在不违背本专利技术内涵的情况下做类似推广,因此本专利技术不受下面公开的具体实施例的限制。下面结合具体实施例和附图对本专利技术的技术方案进行清楚、完整的描述。请参见图1,是本专利技术实施例1的一种基于区块链的关系型数据库的数据写入方法的流程示意图。如图1所示,该数据写入方法包括如下步骤:S101、当监听到区块链中背书节点产生的交易信息时,获取所述交易信息;如图2所示,在步骤S1之前,还包括如下步骤:S100、通过所述背书节点对交易进行背书或者所述背书节点发生重启来触发对所述背书节点的监听。其中,对背书节点的监听可以通过在背书节点上启动代理服务的方式来进行,且数据写入方法中的关系型数据库也可以部署于背书节本文档来自技高网...

【技术保护点】
1.一种基于区块链的关系型数据库的数据写入方法,其特征在于,包括如下步骤:当监听到区块链中背书节点产生的交易信息时,获取所述交易信息;从所述交易信息中提取业务通道标识、链码标识和版本标识;根据所述业务通道标识、所述链码标识和所述版本标识,设定对应的交易数据表名;在查询到关系型数据库中存在所述交易数据表名的情况下,从所述交易信息中提取用户元数据和交易元数据并组合成第一交易数据,以将所述第一交易数据写入所述对应的交易数据表中;在查询到所述关系型数据库中不存在所述交易数据表名的情况下,则从所述交易信息中提取用户元数据和交易元数据并生成表名、表头和第二交易数据;根据所述表名和所述表头创建新的交易数据表,并将所述第二交易数据写入新建的交易数据表中。

【技术特征摘要】
1.一种基于区块链的关系型数据库的数据写入方法,其特征在于,包括如下步骤:当监听到区块链中背书节点产生的交易信息时,获取所述交易信息;从所述交易信息中提取业务通道标识、链码标识和版本标识;根据所述业务通道标识、所述链码标识和所述版本标识,设定对应的交易数据表名;在查询到关系型数据库中存在所述交易数据表名的情况下,从所述交易信息中提取用户元数据和交易元数据并组合成第一交易数据,以将所述第一交易数据写入所述对应的交易数据表中;在查询到所述关系型数据库中不存在所述交易数据表名的情况下,则从所述交易信息中提取用户元数据和交易元数据并生成表名、表头和第二交易数据;根据所述表名和所述表头创建新的交易数据表,并将所述第二交易数据写入新建的交易数据表中。2.如权利要求1所述的数据写入方法,其特征在于,在监听到区块链中背书节点产生的交易信息之前,还包括如下步骤:通过所述背书节点对交易进行背书或者所述背书节点发生重启来触发对所述背书节点的监听。3.如权利要求2所述的数据写入方法,其特征在于,在所述背书节点发生重启之后,还包括如下步骤:分别获取所述区块链中的交易信息和所述关系型数据库中的交易数据;将所述交易信息和所述交易数据进行比对;在所述交易信息和所述交易数据一致时,继续监听;在所述交易信息和所述交易数据不一致时,获取所述区块链中与所述交易数据不一致的交易信息;从所述不一致的交易信息中提取业务通道标识、链码标识和版本标识,以进行交易数据表名查询,进而完成所述不一致的交易信息的写入,实现数据的同步更新。4.如权利要求1所述的数据写入方法,其特征在于,还包括如下步骤:当接收到客户端发起的交易数据查询指令时,根据所述查询指令中携带的用户权限信息进行身份认证;在确定所述用户权限为具备读取权限的情况下,向所述客户端返回查询结果。5.一种基于区块链的关系型数据库的数据写入系统,其特征在于,包括:监听模块,用于在监听到区块链中背...

【专利技术属性】
技术研发人员:刘忻林冬艺李伟文
申请(专利权)人:广州市品高软件股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1