一种基于区块链技术的数据同步方法和系统与流程

文档序号:20187134发布日期:2020-03-27 19:14阅读:656来源:国知局
一种基于区块链技术的数据同步方法和系统与流程

本发明涉及区块链数据同步技术,尤其涉及一种基于区块链技术的数据同步方法和系统。



背景技术:

区块链技术是一种分布式数据处理技术,加密数据通过p2p网络通信技术发送给各个节点以达到全网节点共识,从而确保数据不可篡改和不可伪造。随着互联网技术的发展,区块链技术的去中心化、公开透明、不可篡改、可信任等优点,在智能合约、文件存储、供应链金融、身份验证、数字政务、电子商务、物联网、社交通讯等众多领域得到广泛应用。

现有区块链同步技术是区块链节点之间通过p2p传输技术同步区块,低区块的节点从建立连接的节点中查找区块最高的节点并进行区块同步,所有的同步数据均来自该节点。

现有的区块同步技术具有以下问题:

1)现有p2p传输技术区块同步高度依赖单个节点

现有区块同步技术对单个节点依赖度高,区块高度低于对方节点一定数目即开始同步,不同数据完全来自对方节点,一方面使对方节点负载过重,另一方面数据的安全性大打折扣;

2)现有p2p传输技术区块同步效率低

现有区块同步技术在与对方节点建立连接后同步区块数据,并没有对节点性能,网络性能做评估,导致传输效率低下,且不稳定;

3)现有p2p传输技术区块同步容易被攻击

现有区块同步技术会接收伪结点的数据,除部分区块链依靠强算力勉强保证出块的安全性外,其他共识机制将面临高区块数据节点攻击。

因此,本领域的技术人员致力于开发一种基于区块链技术的数据同步方法和系统,解决区块同步高度依赖单个节点的问题,提高区块同步效率和提高区块同步安全性,保证采集数据多样性、区块同步过程效率高、提高区块同步被攻击难度。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是为了解决区块同步高度依赖单个节点的问题,提高区块同步效率和提高区块同步安全性,开发了一种基于区块链技术的数据同步方法和系统。

为实现上述目的,本发明提供了一种基于区块链技术的数据同步方法,包括以下步骤:

子链拥有者发布一条包括子链节点的子链,生成具有区块功能的子链区块,判断是否触发同步机制;

当判断触发同步机制,所述子链中的子链节点发起同步请求,选出生成者;

所述生成者收到同步请求消息后,获得母链节点地址,并将数据上传至所述母链节点;

所述发起同步请求的子链节点接收到数据上传结束的消息后,下载所需的区块数据;

所述发起同步请求的子链节点下载区块数据后,验证区块数据是否符合条件,将符合条件的区块数据保存至本地,将不符合条件的区块数据丢弃;

判断所述保存至本地的区块数据是否与请求数据是否匹配,如果不匹配,发起同步请求的子链节点需要回退一定量的本地区块数据;

发起同步请求的子链节点回退本地区块数据或剩余区块数据,重复执行上述过程,保证同步的区块数据取样多样性,以确保数据安全。

进一步地,还包括当同步区块数据失败时,子链节点反馈该同步区块数据失败的节点。

进一步地,子链拥有者发布一条包括子链节点的子链,生成具有区块功能的子链区块,判断是否触发同步机制,具体包括:

子链拥有者在母链部署发布一条子链,所述子链由多个子链节点组成,并且各个节点均具备打包交易,生成区块的功能;

所述子链节点根据本地区块数据,记录子链节点本地最新区块数据;

判断所述子链节点区块高度是否一致,当所述子链节点区块高度不一致时,低区块高度的子链节点收到一定数目高区块节点的区块,触发子链区块同步机制。

进一步地,所述子链节点对所述母链节点具有性能智能评测功能。

本发明的较佳实施方式又提供了一种基于区块链技术的数据同步系统,包括以下模块:

子链发布模块,用于子链拥有者发布一条包括子链节点的子链,生成具有区块功能的子链区块,判断是否触发同步机制;

同步请求模块,用于当判断触发同步机制,所述子链中的子链节点发起同步请求,选出生成者;

数据上传模块,用于所述生成者收到同步请求消息后,获得母链节点地址,并将数据上传至所述母链节点;

数据下载模块,用于所述发起同步请求的子链节点接收到数据上传结束的消息后,下载所需的区块数据;

验证模块,用于所述发起同步请求的子链节点下载区块数据后,验证区块数据是否符合条件,将符合条件的区块数据保存至本地,将不符合条件的区块数据丢弃;

退回模块,用于判断所述保存至本地的区块数据是否与请求数据是否匹配,如果不匹配,发起同步请求的子链节点需要回退一定量的本地区块数据;

重复执行模块,用于发起同步请求的子链节点回退本地区块数据或剩余区块数据,重复执行上述过程,保证同步的区块数据取样多样性,以确保数据安全。

进一步地,还包括

反馈模块,用于当同步区块数据失败时,子链节点反馈该同步区块数据失败的节点。

进一步地,子链发布模块具体包括:

发布单元,用于子链拥有者在母链部署发布一条子链,所述子链由多个子链节点组成,并且各个节点均具备打包交易,生成区块的功能;

记录单元,用于所述子链节点根据本地区块数据,记录子链节点本地最新区块数据;

判断单元,用于判断所述子链节点区块高度是否一致,当所述子链节点区块高度不一致时,低区块高度的子链节点收到一定数目高区块节点的区块,触发子链区块同步机制。

进一步地,还包括评测模块,用于所述子链节点对所述母链节点具有性能智能评测功能。

本发明的又一较佳实施方式提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现上述中任一项所述的方法。

本发明的另一较佳实施方式提供了一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述中任一项所述的一种基于区块链技术的数据同步方法。

技术效果

1)区块同步数据来源随机子链节点集合

随机子链节点集合大于节点总和的一半,保证采集数据多样性;

随机子链节点集合是由高区块数据中最长链的子链节点生成者组成,保证数据的准确率;

2)区块同步过程效率高

子链节点对母链节点提供反馈,性能评估,淘汰离线、性能差的母链节点,从而保证数据同步过程高效;

智能请求调频,充分利用请求者本地硬件资源,充分利用网;

3)子链区块同步技术提高被攻击难度

随机选择提供子链区块数的节点且该节点数据经过安全算法校验,杜绝外部节点组团攻击;

母链节点管理系统随机提供服务节点,保证节点多样性、安全性;

4)高效回退区块数据

分叉子链节点通过子链区块数据校验系统标记到的分叉区块号回退区块数据

5)区块数据高效处理

一般接收高区块数据,脏、乱、重复、断续;通过寻找最长链算法,高效处理各种场景数据得到最长链的区块及生成者,从而确保数据的可靠性;

6)充分利用网络,智能调节请求区块数目

区块打包的交易越多,区块就越大,在子链区块同步过程中,根据区块中的交易数量自动调节请求区块的熟练,优势明显,既防止堵塞网络从而造成请求超时,又防止在交易稀少的区块情况下,网络利用率低情况;

7)服务提供方信息全部上链

母链节点信息、子链节点信息被记录在母链区块链中,保证节点信息真实、唯一、可靠、可溯源;

8)子链节点智能反馈系统

子链同步过程,因网络错误、硬件性能、注册的母链信息错误等,子链节点系统将反馈该母链节点,并通过智能合约记录并降低该母链节点性能,性能高的母链节点将优先被采纳,同时因网络断开的母链节点,在一定期限内给予复活权力,最终实现一套公平自治且高效的闭环系统。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明的一个较佳实施例的

图2是本发明的一个较佳实施例的母链与子链的架构及同步过程示意图;

图3是本发明的一较佳实施例的母链节点管理系统的示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下描述中,为了说明而不是为了限定,提出了诸如特定内部程序、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一

本实施例公开了一种基于区块链技术的数据同步方法,包括以下步骤:

步骤100,子链拥有者发布一条包括子链节点的子链,生成具有区块功能的子链区块,判断是否触发同步机制;具体包括:步骤101,子链拥有者在母链部署发布一条子链子链我们也称为应用链,它是一种区块链,所述子链由多个子链节点组成,并且各个节点均具备打包交易,生成区块的功能(子链区块由所有的子链节点产生);另外需要说明的是:母链也是一种区块链,由母链节点组成,母链的区块数据与子链区块数据相互独立,是两个无交集的区块数据;

步骤102,所述子链节点根据本地区块数据,记录子链节点本地最新区块数据;

步骤103,判断所述子链节点区块高度是否一致,当所述子链节点区块高度不一致时,低区块高度的子链节点收到一定数目高区块节点的区块,触发子链区块同步机制。子链区块链整个系统正确运行方式是所有的子链节点均正常出块,如pos共识模式是每个节点轮流出块,区块被广播到整个子链网络,到达所有子链节点区块高度一样,所谓区块高度是指每个区块数据均由一个编号,递增的,编号即高度。

触发同步的条件是当其中一个节点区块高度低于子链网络的大部分节点一定高度时,触发本实施例的同步机制;这里低高度的子链节点就是发起者,子链区块网络中其他高区块的子链节点群,均有可能被选中,被选中者上传区块到母链节点,每次只有一个高区块子链节点被选中。

步骤200,当判断触发同步机制,所述子链中的子链节点发起同步请求,选出生成者(生成者是其中一个子链节点);具体的,符合步骤103中条件的子链节点发起同步请求,从收到高区块数据中随机选出一个生成者,并通知该生成者提供请求者所需的区块数据,保证数据公正性;

步骤300,所述生成者收到同步请求消息后,获得母链节点地址,并将数据上传至所述母链节点;具体的,生成者收到请求者的同步请求消息后,通过母链节点管理系统,随机获得一个母链节点地址,并将区块数据上传到该节点;上传结束后,通知请求者;上传数据的节点具有对母链节点性能智能评测的功能;

步骤400,所述发起同步请求的子链节点接收到数据上传结束的消息后,下载所需的区块数据;发起同步请求的节点具有对母链节点性能智能评测的功能;

步骤500,所述发起同步请求的子链节点下载区块数据后,验证区块数据是否符合条件,将符合条件的区块数据保存至本地,将不符合条件的区块数据丢弃;

步骤600,判断所述保存至本地的区块数据是否与请求数据是否匹配,如果不匹配,发起同步请求的子链节点需要回退一定量的本地区块数据;具体的,发起同步请求者本地验证下载的区块数据,通过子链区块数据校验系统,保存符合条件的区块数据至本地,丢弃验证不通过的区块数据;如果子链节点本地最新区块数据与请求数据区块数据不匹配,发起同步请求的子链节点需要回退至最近一次共识区块数据,最近一次共识区块数据是由高于50%子链节点接收的区块数据;

步骤700,发起同步请求的子链节点回退本地区块数据或剩余区块数据,重复执行上述过程,保证同步的区块数据取样多样性,以确保数据安全。

另外,还包括步骤800,当同步区块数据失败时,子链节点反馈该同步区块数据失败的节点。

另外,所述子链节点对所述母链节点具有性能智能评测功能。

并且,任何因网络错误、硬件性能、注册的母链信息错误等导致同步区块数据失败,子链节点反馈系统将反馈该母链节点,并通过智能合约记录并降低该母链节点性能。请求节点请求频率是根据自身的处理程度变化的。

本实施例中的一种基于区块链技术的数据同步方法,是一种以母链区块链为底层核心技术,支持多子链区块同步,建立的一整套去中心化的子链区块同步技术。整个方法包括以下几个组成部分:

1)母链节点管理系统:

母链节点管理系统是运行在母链节点端的,包含子链区块数据处理模块和母链节点管理智能合约模块。

子链区块数据处理模块包括子链区块上传接口、子链区块下载接口和子链区块缓存功能;母链节点通过grpc协议与子链节点通信,子链节点通过子链区块上传接口上传区块,母链节点收到子链区块后保存暂存本地;子链节点通过子链区块下载接口下载缓存的区块,并告知母链节点清除已下载的区块数据。

母链节点管理智能合约模块是区块链智能合约,主要功能有注册母链节点、退出母链节点、存储母链节点基本信息和随机获取母链信息;其中母链节点信息包括:节点所属、网络路径、注册时间、性能、状态等;母链节点管理系统维护者往母链区块链网络发送部署母链节点管理智能合约交易,通过母链区块链去中心化和全网广播技术,该合约被部署到所有母链节点;同理,母链节点拥护者往母链区块链网络发送注册母链节点交易或退出母链节点交易,完成母链节点加入或退出母链节点管理系统智能合约;当停止服务的母链节点完成修复并能够再次提供服务是,母链节点管理系统维护者负责激活停止服务状态的母链接节点。

在子链节点上传区块数据时,子链节点通过grpc协议与母链节点v1通信并发送获母链节点信息的命令,母链节点v1收到命令后调用本地数据库中的母链节点管理系统智能合约,随机选中一个母链节点信息v2并通过grpc返回给子链节点;子链节点根据获取的母链信息v2进行连接并上传区块数据。

母链节点管理系统收到多于三个不同子链节点针对同一个母链节点信息正直性能反馈后执行性能积分+1,反之负值反馈则性能积分-1。

2)子链节点反馈系统:

子链节点反馈系统是运行在子链设备端的,子链节点反馈系统包括:母链节点绩效管理模块和子链节点对母链节点反馈模块。

母链节点绩效管理模块包括:根据子链节点向母链节点v1获取的母链节点信息v2执行连接并展开上传区块和下载区块业务,因任何问题导致子链上传失败或下载失败,则执行子链节点对母链节点反馈模块的负值反馈;因在十秒内没有完成一个区块数据上传或下载,子链点本地记录一次性能不达标,评测算法以母链节点v2为例,子链本地记录母链节点v2初始性能值为5分,因网络或硬件性能问题导致不达标-1分,达标一次+1分最高5分,0分则停止服务,低于5分则不能享受子链节点对母链节点正直反馈。

子链节点对母链节点反馈模块:如果母链节点v2服务性能不达标,子链节点通过grpc协议向母链节点v1反馈母链节点v2负值性能,子链节点通过grpc向母链节点v1发送对母链节点v2性能负值反馈的交易并母链区块链网络广播该交易,如果母链节点管理系统智能合约收到多于三个不同子链节点的负值性能反馈则性能积分-1,性能值降为0的母链节点将不再被选中;如果母链节点v2服务性能符合要求,则执行正直性能反馈。

3)子链区块数据校验系统:子链区块数据正常广播过程,所有子链节点组成一个子链区块链网络,每个节点排序,轮流打包区块并通过grpc传输给母链节点,母链节点广播给grpc连接的其他子链节点,母链节点通过p2p广播给其他母链节点,最终达到一个子链节点出的区块数据,广播到所有子链节点。

子链区块数据校验系统是运行在子链节点端的,由于每个节点轮流出区块,每个区块记录了是哪个子链节点出的,而每个节点本身知道所有节点id和顺序,所以的子链节点出一个区块为一个周期,因此,算法是每个子链节点遍历本地的区块数据,可找出最长子链节点区块数量,周期内同步区块数量高于50%的子链节点被标记为最长链的子链区块共识节点,可以为低区块的分叉子链节点提供区块数据;周期内同步区块数量低于50%(包括50%)的子链节点被标记为低区块分叉节点,并标记最初分叉区块号;子链分叉节点需要向子链共识节点发起区块同步请求,以完成子链分叉节点本地区块与子链共识节点数据一致

如图2所示,母链与子链的架构如下:

母链区块链通过p2p网络与母链节点管理系统通信,同时与多个子链节点通信,子链节点m向母链区块链发起区块同步请求,假设随机选中第n个节点,子链节点n收到请求信号,然后母链节点管理系统中随机获取可提供服务的节点信息,上传区块数据,当区块数据上传结束后,子链节点n通过母链区块链通知节点m下载所需区块数,子链节点m收到子链节点n的通知区块,获得下载链路信息,然后下载所需区块数据。

其中,母链节点管理系统的结构和功能如下:

包括母链节点维护者,母链节点维护者准备新母链节点并获取网络路径,新母链节点则是通过调用母链节点管理系统智能合约,注册该母链节点。子链节点可以随机获取新母链节点,以备上传、下载区块数据,并且子链节点通过子链节点反馈系统反馈母链节点的性能。

本实施例的一种基于区块链技术的数据同步方法,具备以下技术效果:

1)区块同步数据来源随机子链节点集合

随机子链节点集合大于节点总和的一半,保证采集数据多样性;

随机子链节点集合是由高区块数据中最长链的子链节点生成者组成,保证数据的准确率;

2)区块同步过程效率高

子链节点对母链节点提供反馈,性能评估,淘汰离线、性能差的母链节点,从而保证数据同步过程高效;

智能请求调频,充分利用请求者本地硬件资源,充分利用网;

3)子链区块同步技术提高被攻击难度

随机选择提供子链区块数的节点且该节点数据经过安全算法校验,杜绝外部节点组团攻击;

母链节点管理系统随机提供服务节点,保证节点多样性、安全性;

4)高效回退区块数据

分叉子链节点通过子链区块数据校验系统标记到的分叉区块号回退区块数据

5)区块数据高效处理

一般接收高区块数据,脏、乱、重复、断续;通过寻找最长链算法,高效处理各种场景数据得到最长链的区块及生成者,从而确保数据的可靠性;

6)充分利用网络,智能调节请求区块数目

区块打包的交易越多,区块就越大,在子链区块同步过程中,根据区块中的交易数量自动调节请求区块的熟练,优势明显,既防止堵塞网络从而造成请求超时,又防止在交易稀少的区块情况下,网络利用率低情况;

7)服务提供方信息全部上链

母链节点信息、子链节点信息被记录在母链区块链中,保证节点信息真实、唯一、可靠、可溯源;

8)子链节点智能反馈系统

子链同步过程,因网络错误、硬件性能、注册的母链信息错误等,子链节点系统将反馈该母链节点,并通过智能合约记录并降低该母链节点性能,性能高的母链节点将优先被采纳,同时因网络断开的母链节点,在一定期限内给予复活权力,最终实现一套公平自治且高效的闭环系统。

实施例二

一种基于区块链技术的数据同步系统,包括以下模块:

子链发布模块,用于子链拥有者发布一条包括子链节点的子链,生成具有区块功能的子链区块,判断是否触发同步机制;

同步请求模块,用于当判断触发同步机制,所述子链中的子链节点发起同步请求,选出生成者;

数据上传模块,用于所述生成者收到同步请求消息后,获得母链节点地址,并将数据上传至所述母链节点;

数据下载模块,用于所述发起同步请求的子链节点接收到数据上传结束的消息后,下载所需的区块数据;

验证模块,用于所述发起同步请求的子链节点下载区块数据后,验证区块数据是否符合条件,将符合条件的区块数据保存至本地,将不符合条件的区块数据丢弃;

退回模块,用于判断所述保存至本地的区块数据是否与请求数据是否匹配,如果不匹配,发起同步请求的子链节点需要回退一定量的本地区块数据;

重复执行模块,用于发起同步请求的子链节点回退本地区块数据或剩余区块数据,重复执行上述过程,保证同步的区块数据取样多样性,以确保数据安全。

进一步地,还包括

反馈模块,用于当同步区块数据失败时,子链节点反馈该同步区块数据失败的节点。

进一步地,子链发布模块具体包括:

发布单元,用于子链拥有者在母链部署发布一条子链,所述子链由多个子链节点组成,并且各个节点均具备打包交易,生成区块的功能;

记录单元,用于所述子链节点根据本地区块数据,记录子链节点本地最新区块数据;

判断单元,用于判断所述子链节点区块高度是否一致,当所述子链节点区块高度不一致时,低区块高度的子链节点收到一定数目高区块节点的区块,触发子链区块同步机制。

进一步地,还包括评测模块,用于所述子链节点对所述母链节点具有性能智能评测功能。

本实施例的系统装置是为了实现实施例一的方法,其实现方法与实施例一相同,此处将不再赘述。

实施例三

本发明实施例三提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现上述任一项的方法。

该实施例的计算机设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如数据同步程序。所述处理器执行所述计算机程序时实现上述各个数据同步方法实施例中的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述计算机设备中的执行过程。

所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可包括,但不仅限于,处理器、存储器。

所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器可以是所述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。所述存储器也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器还可以既包括所述计算机设备的内部存储单元也包括外部存储设备。所述存储器用于存储所述计算机程序以及所述计算机设备所需的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。

本发明实施例还提供了一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序使计算机执行时实现上述任一项所述的数据同步方法。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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