[发明专利]一种基于Fabric的关系型数据库内容同步方法在审
申请号: | 202111650572.0 | 申请日: | 2021-12-30 |
公开(公告)号: | CN115062094A | 公开(公告)日: | 2022-09-16 |
发明(设计)人: | 贺建峰;余先锋 | 申请(专利权)人: | 昆明理工大学 |
主分类号: | G06F16/28 | 分类号: | G06F16/28;G06F16/27;G06F21/60;G06F21/62 |
代理公司: | 昆明隆合知识产权代理事务所(普通合伙) 53220 | 代理人: | 何娇 |
地址: | 650500 云南*** | 国省代码: | 云南;53 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fabric 关系 数据库 内容 同步 方法 | ||
1.一种基于Fabric的关系型数据库内容同步方法,其特征在于:首先为每个Peer节点配备一个关系型数据库用于存储准备上链的数据,然后通过对fabric各部分添加相应逻辑,以达到对关系型数据库内容同步的目的;过程包括:在节点启动时,进行一系列初始化操作,尤其是密钥的重新启用与关系型数据库的内容重新拉取;之后通过Gossip广播同步信息,节点收到同步信息之后将账本高度进行比较,以账本高度最高的各节点的数据库为准,从而基于Gossip服务对数据库表进行同步。
2.根据权利要求1所述的基于Fabric的关系型数据库内容同步方法,其特征在于:所述方法的具体步骤如下:
Step1:添加额外的数据库需要保证外部数据的安全性,对于关系型数据库内的数据,同时需要进行读取,因此采用AES双向加密的方式进行加密;
Step2:添加额外的关系型数据库需要对该数据库进行管理,因此添加相关管理类为数据库同步而添加的数据库管理表进行管理;
Step3:为了保证额外关系型数据库的数据同步,需要通过GossipService添加新的消息类型与处理逻辑;所定义新消息通过fabric-proto-go项目编译后,放在GossipService的DataMassege中作为新的消息内容类型;
Step4:对关系型数据库的操作通过fabric的客户端API进行,当客户端发起对数据库操作时,首先进行操作记录的共识,并存入区块链账本,然后进行关系型数据库的相关操作;每当操作记录产生并对数据库操作时,对各数据表重新计算校验和,并保存入SyncStateTable;
Step5:在fabric中添加周期性检查同步的管理类Syncer,每当构建100个区块时,Syncer通过调用Step3的步骤进行同步性检查,以去掉运行过程中的关系型数据库差异。
3.根据权利要求1所述的基于Fabric的关系型数据库内容同步方法,其特征在于:所述Step1具体包括如下:
Step1.1、为Fabric添加密钥管理类Crypter,包含方法为:RandomKeyGen(),用于产生固定长度的随机密钥;EncryptTable(),用于对数据库表名进行加密;EncryptSQL(),用于对存入关系型数据库的具体SQL各字段进行加密;DecryptTable(),用于对数据库表名进行解密;DecryptResult(),用于对数据库操作结果集进行解密;
Step1.2、密钥存储对于对称加密极为重要,由于联盟链中节点在正常运行时不会经常重启,因此密钥每当在节点启动时则使用RandomKeyGen()方法创建,并将密钥存储于程序中,该随机密钥对于各个Peer节点均不相同,不向外部进行存储,以保证密钥安全。
4.根据权利要求1所述的基于Fabric的关系型数据库内容同步方法,其特征在于:所述Step2具体包括如下:
Step2.1、为Fabric的Peer部分添加额外的关系型数据库管理类DBManager,包含方法为:RunSQLFile(),执行SQL文件,批量操作SQL语句;ExecuteSQL(),执行SQL语句;QuerySQL(),执行查询SQL语句;IsTableExist(),检查数据表是否存在;CalTableCheckSum(),用于计算数据库表的校验和,与其他节点进行对比校验;InsertSyncTable/ReadSyncState/UpdateSyncState/DeleteSyncState,用于对同步表进行操作;
Step2.2、在关系型数据库中添加数据库同步状态表SyncStateTable,用于管理数据库各表的同步情况;
Step2.3、在Peer节点启动时,检查数据库连接,并检查同步表状态,查询是否存在数据库,若不存在则创建;进行数据库设置;检查同步表SyncStateTable,若不存在则创建;对各表的checksum进行检查,通过网络服务确认是否与其他节点同步;每当对数据库表进行操作,则重新计算校验和,并存入同步状态表中。
5.根据权利要求1所述的基于Fabric的关系型数据库内容同步方法,其特征在于:所述Step3具体包括如下:
Step3.1、为Fabric的proto消息添加新的检查同步校验消息类型DBDataSyncMessage;
Step3.2、收到同步校验信息之后,需产生返回信息类型SyncRespMessage;
Step3.3、当需要进行同步时节点A,随机向附近的多个节点通过GossipService发送广播消息DBDataSyncMessage,检查对应表的同步状态;其他节点接收到消息之后,与自身的数据库表校验和进行比对,返回自身的响应消息SyncRespMessage,其中包含自身最高区块的信息用于高度校验;
Step3.4、节点A收到相关若干返回消息,汇总验证后,选择最高区块高度的节点请求相应数据表SQL文件;其他节点将与节点A不同的数据表读取出来并通过DecryptResult()解密,并通过TLS加密通信发送给节点A;节点A收到其他节点发送来的新数据表后通过自身的密钥对数据重新进行加密,再执行RunSQLFile()将数据更新到数据库中,最后更新SyncStateTable的状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于昆明理工大学,未经昆明理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111650572.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据处理的方法、设备及系统
- 下一篇:一种带双侧毒气检测功能的呼吸面具