基于区块链的数据同步方法及终端设备技术

技术编号:20074888 阅读:48 留言:0更新日期:2019-01-15 00:35
本发明专利技术适用于计算机应用技术领域,提供了一种基于区块链的数据同步方法、终端设备及计算机可读存储介质,包括:通过根据每个分布式节点的节点信息构建区块链P2P网络,并对该区块链P2P网络中数据差异度较大的分布式节点进行数据同步,之后基于区块链的公知机制对同步之后的节点数据进行验证,在验证通过之后确定数据同步成功,保证了区块链P2P网络中分布式节点数据的一致性,使分布式节点之间可以协同工作,提高了分布式系统的数据同步和处理的效率。

Block Chain Based Data Synchronization Method and Terminal Equipment

The invention is applicable to the field of computer application technology, and provides a block-chain-based data synchronization method, terminal equipment and computer readable storage medium. It includes: building block-chain P2P network according to node information of each distributed node, and synchronizing data of distributed nodes with large difference in data in the block-chain P2P network, and then sharing data based on block-chain. The knowledge mechanism verifies the data of the nodes after synchronization, determines the success of data synchronization after verification, guarantees the consistency of data of the distributed nodes in the block chain P2P network, makes the distributed nodes work together, and improves the efficiency of data synchronization and processing in the distributed system.

【技术实现步骤摘要】
基于区块链的数据同步方法及终端设备
本专利技术属于计算机应用
,尤其涉及一种基于区块链的数据同步方法、终端设备及计算机可读存储介质。
技术介绍
大数据技术的诞生让计算机系统的性能有新的突破,并且支持硬件以水平扩展的方式来获得线性增长的性能和存储,这些都是过去传统关系型数据库所无法提供的。另外,大数据技术也抛弃了运行环境必须足够好的硬性要求,而是允许用户通过批量廉价X86服务器与本地磁盘结合的方式搭建规模集群,从而获得比过去依赖硬件垂直扩展所提供的更强的计算能力和更多的存储空间,通过将一个大的工作任务分解成多个小任务,然后通过分布式并发操作的方式将其完成,从而提高整个系统的计算效率或者是存储能力。而在分布式环境下,由于硬件的要求降低,必然需要大数据产品提供较高的服务质量。现有技术中让一份数据在系统中的多台机器或多个分布式节点中,通过异步或者同步的方式保存或者被处理,从而保障数据的安全和服务质量。但是分布式数据处理方式在解决服务质量的问题之后,又引入了一个新的技术问题,就是不同节点存储的数据副本各不相同,同一数据的不同数据副本不一致容易造成系统异常运行的问题。
技术实现思路
有鉴于此,本专利技术实施例提供了基于区块链的数据同步方法、终端设备及计算机可读存储介质,以解决现有技术中不同的分布式节点存储的数据副本各不相同,同一数据的不同数据副本不一致容易造成系统异常运行的问题。本专利技术实施例的第一方面提供了一种基于区块链的数据同步方法,包括:获取分布式系统中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络;根据所述区块链P2P网络中每个所述分布式节点的节点信息,计算所述分布式节点之间的数据差异度,并根据所述数据差异度确定待进行数据同步的同步节点;对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证。本专利技术实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取分布式系统中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络;根据所述区块链P2P网络中每个所述分布式节点的节点信息,计算所述分布式节点之间的数据差异度,并根据所述数据差异度确定待进行数据同步的同步节点;对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证。本专利技术实施例的第三方面提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。本专利技术实施例与现有技术相比存在的有益效果是:本专利技术实施例通过根据每个分布式节点的节点信息构建区块链P2P网络,并对该区块链P2P网络中数据差异度较大的分布式节点进行数据同步,之后基于区块链的公知机制对同步之后的节点数据进行验证,在验证通过之后确定数据同步成功,保证了区块链P2P网络中分布式节点数据的一致性,使分布式节点之间可以协同工作,提高了分布式系统的数据同步和处理的效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例一提供的基于区块链的数据同步方法的流程图;图2是本专利技术实施例二提供的基于区块链的数据同步方法的流程图;图3是本专利技术实施例三提供的终端设备的示意图;图4是本专利技术实施例四提供的终端设备的示意图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本专利技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本专利技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本专利技术的描述。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。参见图1,图1是本专利技术实施例一提供的基于区块链的数据同步的流程图。本实施例中基于区块链的数据同步的执行主体为终端。终端包括但不限于智能手机、平板电脑、可穿戴设备等移动终端,还可以是台式电脑等。如图所示的基于区块链的数据同步可以包括以下步骤:S101:获取分布式系统中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络。分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升,例如加内存、加磁盘、使用更好的CPU都比较高昂到得不偿失的时候,应用程序也不能进一步优化的时候,就需要考虑分布式系统。分布式系统的计算过程是对计算任务进行的切换,每个节点进行一部分的运算,最终进行汇总;对于存储,每个节点存储一部分的数据。当数据规模变大的时候,需要靠提升性能和并发,操作被分发到不同的分片,相互独立;提升系统的可用性,即使部分分片不能用,其他分片不会受到影响。理想的情况下,有分片就行了,但事实的情况却不大理想。原因在于,分布式系统中有大量的节点,且通过网络通信。单个节点的故障,例如进程崩溃、断电、磁盘损坏等都是是小概率事件,但整个系统的故障率会随节点的增加而指数级增加,网络通信也可能出现断网、高延迟的情况。在这种一定会出现的“异常”情况下,分布式系统还是需要继续稳定的对外提供服务,即需要较强的容错性。最简单的办法,就是冗余或者复制集,即多个节点负责同一个任务,最为常见的就是分布式存储中,多个节点复杂存储同一份数据,以此增强可用性与可靠性。在本实施例中,分布式系统中的每个节点都有各自的节点信息,其中,该节点信息包括但不限于以下信息:节点标识、节点功能、与该节点之间有联系的其他节点的节点标识或者关联关系等。其中,节点标识可以是节点编号、节点名称等,此处不做限定;节点功能用于表示节点可实现的计算程序、或者在整个分布式系统中被分派的任务等,此处不做限定;与该节点之间有联系的其他节点即与该节点之间存在通信连接或者数据交互的节点,其中的关联关系可以是数据通信的关联关系,也可以是分布式任务之间的交互关系,此处不做限定。在获取到分布式系统中每个分布式节点的节点信息之后,根据每个节点的节点信息构建区块链点对点(PointtoPoint,P2P)网络。其中,构建方法是基于区块链的网络结构进行区块链P2P网络的构建。P2P网络不同于传统的客户端/服务端结构,P2P网络中的每个节点都可以既是客户端也是服务端。在本实施例中,区块链P2P网络主要包括但不限于四种不同的网络模型:集中式、纯分布式、混合式和结构化模型。需要说明是,这里所说的网络模型主要是指路由查询结构,即不同节点之间如何建立连接通道,两个节点之间一旦建立连接,具体传输什么数据则是两个节点之间的事情。本文档来自技高网...

【技术保护点】
1.一种基于区块链的数据同步方法,其特征在于,包括:获取分布式系统中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络;根据所述区块链P2P网络中每个所述分布式节点的节点信息,计算所述分布式节点之间的数据差异度,并根据所述数据差异度确定待进行数据同步的同步节点;对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证。

【技术特征摘要】
1.一种基于区块链的数据同步方法,其特征在于,包括:获取分布式系统中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络;根据所述区块链P2P网络中每个所述分布式节点的节点信息,计算所述分布式节点之间的数据差异度,并根据所述数据差异度确定待进行数据同步的同步节点;对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证。2.如权利要求1所述的基于区块链的数据同步方法,其特征在于,所述对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证,包括:对所述同步节点进行数据同步;在所述数据同步完成时,向所述区块链P2P网络中除所述同步节点之外的其余分布式节点发送验证指令;所述验证指令用于通知所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证;接收所述区块链P2P网络中除所述同步节点之外的其余分布式节点基于所述验证指令发送的确认信息,若所述区块链P2P网络中除所述同步节点之外的其余分布式节点的确认信息一致,则向所述同步节点发送同步成功信息。3.如权利要求1所述的基于区块链的数据同步方法,其特征在于,所述根据所述区块链P2P网络中每个所述分布式节点的节点信息,计算所述分布式节点之间的数据差异度,并根据所述数据差异度确定待进行数据同步的同步节点,包括:将所述区块链P2P网络中每个所述分布式节点的节点信息进行量化,得到区块数据矩阵;所述区块数据矩阵用于表示每个所述分布式节点在每个区块中的数据值;根据每个所述分布式节点的所述区块数据矩阵,计算所述分布式节点之间的数据差异度;识别数据差异度大于或者等于预设的差异度阈值的分布式节点为所述待进行数据同步的同步节点。4.如权利要求3所述的基于区块链的数据同步方法,其特征在于,所述根据每个所述分布式节点的区块数据矩阵,计算所述分布式节点之间的数据差异度,包括:通过公式计算每个区块数据之间的差异度;其中,P和U分别用于表示相互比较的两个分布式节点中的区块数据矩阵;θ用来表示这两个区块数据矩阵之间的夹角,θ的值用于表示两个分布式节点的区块数据矩阵之间的差异度的大小。5.如权利要求1-4任一项所述的基于区块链的数据同步方法,其特征在于,所述获取分布式系统中每个分布式节点的节点信息,并根据所述节点信息构建区块链点对点P2P网络之后,还包括:获取所述区块链P2P网络之外的外部节点申请加入所述区块链P2P网络的请求信息,所述请求信息包括所述外部节点的节点信息;根据所述外部节点的节点信息,...

【专利技术属性】
技术研发人员:吴超勇陈仕财陈亚殊
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1