CN109189751B - 基于区块链的数据同步方法及终端设备 - Google Patents

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

Info

Publication number
CN109189751B
CN109189751B CN201811087788.9A CN201811087788A CN109189751B CN 109189751 B CN109189751 B CN 109189751B CN 201811087788 A CN201811087788 A CN 201811087788A CN 109189751 B CN109189751 B CN 109189751B
Authority
CN
China
Prior art keywords
node
data
distributed
nodes
synchronization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811087788.9A
Other languages
English (en)
Other versions
CN109189751A (zh
Inventor
吴超勇
陈仕财
陈亚殊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201811087788.9A priority Critical patent/CN109189751B/zh
Publication of CN109189751A publication Critical patent/CN109189751A/zh
Application granted granted Critical
Publication of CN109189751B publication Critical patent/CN109189751B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

基于区块链的数据同步方法及终端设备
技术领域
本发明属于计算机应用技术领域,尤其涉及一种基于区块链的数据同步方法、终端设备及计算机可读存储介质。
背景技术
大数据技术的诞生让计算机***的性能有新的突破,并且支持硬件以水平扩展的方式来获得线性增长的性能和存储,这些都是过去传统关系型数据库所无法提供的。另外,大数据技术也抛弃了运行环境必须足够好的硬性要求,而是允许用户通过批量廉价X86服务器与本地磁盘结合的方式搭建规模集群,从而获得比过去依赖硬件垂直扩展所提供的更强的计算能力和更多的存储空间,通过将一个大的工作任务分解成多个小任务,然后通过分布式并发操作的方式将其完成,从而提高整个***的计算效率或者是存储能力。而在分布式环境下,由于硬件的要求降低,必然需要大数据产品提供较高的服务质量。
现有技术中让一份数据在***中的多台机器或多个分布式节点中,通过异步或者同步的方式保存或者被处理,从而保障数据的安全和服务质量。但是分布式数据处理方式在解决服务质量的问题之后,又引入了一个新的技术问题,就是不同节点存储的数据副本各不相同,同一数据的不同数据副本不一致容易造成***异常运行的问题。
发明内容
有鉴于此,本发明实施例提供了基于区块链的数据同步方法、终端设备及计算机可读存储介质,以解决现有技术中不同的分布式节点存储的数据副本各不相同,同一数据的不同数据副本不一致容易造成***异常运行的问题。
本发明实施例的第一方面提供了一种基于区块链的数据同步方法,包括:
获取分布式***中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络;
根据所述区块链P2P网络中每个所述分布式节点的节点信息,计算所述分布式节点之间的数据差异度,并根据所述数据差异度确定待进行数据同步的同步节点;
对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证。
本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取分布式***中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络;
根据所述区块链P2P网络中每个所述分布式节点的节点信息,计算所述分布式节点之间的数据差异度,并根据所述数据差异度确定待进行数据同步的同步节点;
对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本发明实施例与现有技术相比存在的有益效果是:
本发明实施例通过根据每个分布式节点的节点信息构建区块链P2P网络,并对该区块链P2P网络中数据差异度较大的分布式节点进行数据同步,之后基于区块链的公知机制对同步之后的节点数据进行验证,在验证通过之后确定数据同步成功,保证了区块链P2P网络中分布式节点数据的一致性,使分布式节点之间可以协同工作,提高了分布式***的数据同步和处理的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的基于区块链的数据同步方法的流程图;
图2是本发明实施例二提供的基于区块链的数据同步方法的流程图;
图3是本发明实施例三提供的终端设备的示意图;
图4是本发明实施例四提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本发明实施例一提供的基于区块链的数据同步的流程图。本实施例中基于区块链的数据同步的执行主体为终端。终端包括但不限于智能手机、平板电脑、可穿戴设备等移动终端,还可以是台式电脑等。如图所示的基于区块链的数据同步可以包括以下步骤:
S101:获取分布式***中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络。
分布式***是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的***。分布式***的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升,例如加内存、加磁盘、使用更好的CPU都比较高昂到得不偿失的时候,应用程序也不能进一步优化的时候,就需要考虑分布式***。
分布式***的计算过程是对计算任务进行的切换,每个节点进行一部分的运算,最终进行汇总;对于存储,每个节点存储一部分的数据。当数据规模变大的时候,需要靠提升性能和并发,操作被分发到不同的分片,相互独立;提升***的可用性,即使部分分片不能用,其他分片不会受到影响。理想的情况下,有分片就行了,但事实的情况却不大理想。原因在于,分布式***中有大量的节点,且通过网络通信。单个节点的故障,例如进程崩溃、断电、磁盘损坏等都是是小概率事件,但整个***的故障率会随节点的增加而指数级增加,网络通信也可能出现断网、高延迟的情况。在这种一定会出现的“异常”情况下,分布式***还是需要继续稳定的对外提供服务,即需要较强的容错性。最简单的办法,就是冗余或者复制集,即多个节点负责同一个任务,最为常见的就是分布式存储中,多个节点复杂存储同一份数据,以此增强可用性与可靠性。
在本实施例中,分布式***中的每个节点都有各自的节点信息,其中,该节点信息包括但不限于以下信息:节点标识、节点功能、与该节点之间有联系的其他节点的节点标识或者关联关系等。其中,节点标识可以是节点编号、节点名称等,此处不做限定;节点功能用于表示节点可实现的计算程序、或者在整个分布式***中被分派的任务等,此处不做限定;与该节点之间有联系的其他节点即与该节点之间存在通信连接或者数据交互的节点,其中的关联关系可以是数据通信的关联关系,也可以是分布式任务之间的交互关系,此处不做限定。
在获取到分布式***中每个分布式节点的节点信息之后,根据每个节点的节点信息构建区块链点对点(Point to Point,P2P)网络。其中,构建方法是基于区块链的网络结构进行区块链P2P网络的构建。P2P网络不同于传统的客户端/服务端结构,P2P网络中的每个节点都可以既是客户端也是服务端。在本实施例中,区块链P2P网络主要包括但不限于四种不同的网络模型:集中式、纯分布式、混合式和结构化模型。需要说明是,这里所说的网络模型主要是指路由查询结构,即不同节点之间如何建立连接通道,两个节点之间一旦建立连接,具体传输什么数据则是两个节点之间的事情。最简单的路由方式就是集中式,即存在一个中心节点保存了其他所有节点的索引信息,索引信息一般包括节点IP地址、端口、节点资源等。集中式路由的优点就是结构简单、实现容易。
还有一种区块链P2P网络的结构是纯分布式的,移除了中心节点,在P2P节点之间建立随机网络,就是在一个新加入节点和P2P网络中的某个节点间随机建立连接通道,从而形成一个随机拓扑结构。新节点加入该网络的实现方法也有很多种,最简单的就是随机选择一个已经存在的节点并建立邻居关系。像比特币的话,则是使用域名***(Domain NameSystem,DNS)的方式来查询其他节点,DNS一般是硬编码到代码里的,这些DNS服务器就会提供比特币节点的IP地址列表,从而新节点就可以找到其他节点建立连接通道。新节点与邻居节点建立连接后,还需要进行全网广播,让整个网络知道该节点的存在。全网广播的方式就是,该节点首先向邻居节点广播,邻居节点收到广播消息后,再继续向自己的邻居节点广播,以此类推,从而广播到整个网络。纯分布式结构不存在集中式结构的单点性能瓶颈问题和单点故障问题,具有较好的可扩展性。
在混合式的区块链P2P网络结构中,混合了集中式和分布式结构,网络中存在多个超级节点组成分布式网络,而每个超级节点则有多个普通节点与它组成局部的集中式网络。一个新的普通节点加入,则先选择一个超级节点进行通信,该超级节点再推送其他超级节点列表给新加入节点,加入节点再根据列表中的超级节点状态决定选择哪个具体的超级节点作为父节点。这种结构的泛洪广播就只是发生在超级节点之间,就可以避免大规模泛洪存在的问题。在实际应用中,混合式结构是相对灵活并且比较有效的组网架构,实现难度也相对较小,因此目前较多***基于混合式结构进行开发实现。
除此之外,还有一种区块链P2P网络的结构则是结构化P2P网络,它也是一种分布式网络结构,但与纯分布式结构不同。纯分布式网络就是一个随机网络,而结构化网络则将所有节点按照某种结构进行有序组织,比如形成一个环状网络或树状网络。而结构化网络的具体实现上,普遍都是基于分布式哈希表(Distributed Hash Table,DHT)算法思想。DHT只是提出一种网络模型,并不涉及具体实现,还可以通过Chord、Pastry、Kademlia等算法,解决如何在分布式环境下快速而又准确地路由、定位数据的问题。
S102:根据所述区块链P2P网络中每个所述分布式节点的节点信息,计算所述分布式节点之间的数据差异度,并根据所述数据差异度确定待进行数据同步的同步节点。
在建立好区块链P2P网络之后,网络进入正常的工作状态,而在网络中的每个分布式节点工作过程中,每个分布式节点中的数据、进程等信息都是不同的,为了保证整个区块链P2P网络都能正常有序的进行,需要对每个分布式节点中的数据进行同步,使得节点之间能同步协调的工作。
在本实施例中,分布式节点的节点信息可以包括但不限于:节点中存储的数据、节点正在处理的数据以及节点当前的进程信息等。根据每个分布式节点中存储的数据或者正在处理的数据计算分布式节点之间的数据差异度,将差异度较大的分布式节点识别待进行数据同步的同步节点。
在实际应用中,在计算数据差异度时,可以通过将每个分布式节点中存储的数据、节点正在处理的数据以及节点当前的进程信息进行量化,得到用于表示该分布式节点当前数据情况的量化值,根据这些量化值确定分布式节点之间的数据差异度,其中数据差异度可以通过计算各个量化值之间的方差或者标准差来计算,得到的方差或者标准差越大,则说明对应的分布式节点中的数据差异度越大,最后选择数据差异度较大的分布式节点作为待进行数据同步的同步节点。
S103:对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证。
在确定了同步节点之后,对这些同步节点进行数据同步。因为分布式***中各个分布式节点在处理数据或者存储数据的的时候,不同分布式节点读写效率有较大差别,其进行的数据处理部分也存在较大的区别。而在整个分布式***中,会存在大部分的分布式节点,这些大部分的分布式节点中的数据是同步的,因此,需要将大部分的同步数据的节点中的数据,同步至同步节点中,以保证整个分布式网络的同步进行。在进行数据同步的过程中,可以是将确定的大部分分布式节点的同步数据,复制或者迁移至同步节点中,同步节点将同步数据存储至自己的存储空间中,实现区块链P2P网络中的每个分布式节点的数据同步。
可选的,在本实施例中,可以预先确定一个或者多个主节点,这些节点都时刻具有最新的数据,并且其数据权值最高,若区块链网络中存在待同步节点,则可以直接获取这些主节点的数据进行同步。
进一步的,在数据同步完成之后,考虑到区块链P2P网络中每个分布式节点的平等性以及数据的安全性,需要由区块链P2P网络中的其他分布式节点对该同步节点在同步之后的数据进行验证。基于区块链的共识机制,若同步之后的数据一致,则说明同步成功。
上述方案,通过获取分布式***中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络;根据所述区块链P2P网络中每个所述分布式节点的节点信息,计算所述分布式节点之间的数据差异度,并根据所述数据差异度确定待进行数据同步的同步节点;对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证。通过根据每个分布式节点的节点信息构建区块链P2P网络,并对该区块链P2P网络中数据差异度较大的分布式节点进行数据同步,之后基于区块链的公知机制对同步之后的节点数据进行验证,在验证通过之后确定数据同步成功,保证了区块链P2P网络中分布式节点数据的一致性,使分布式节点之间可以协同工作,提高了分布式***的数据同步和处理的效率。
参见图2,图2是本发明实施例二提供的基于区块链的数据同步的流程图,如图所示的基于区块链的数据同步可以包括以下步骤:
S201:获取分布式***中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络。
在本实施例中,采用区块链分布式账本技术,基于分布式***中的各个分布式节点,建立区块链P2P网络。所有的节点在所搭建的P2P网络之中都是完全平等的,没有任何中心节点,完全去中心化。各区块链网络中的所有节点地位完全平等,节点存储完整地区块链数据。节点接收交易信息、区块同步信息、执行本节点的任务、并在共识机制的作用下达成全网共识。
在根据所述节点信息构建区块链点对点P2P网络之后,还可以包括:
S2011:获取所述区块链P2P网络之外的外部节点申请加入所述区块链P2P网络的请求信息,所述请求信息包括所述外部节点的节点信息。
在建立好区块链P2P网络之后,该网络中便存有很多分布式节点,每个分布式节点用于完成其对应的工作。在该区块链P2P网络运行的同时,也会有新的分布式节点加入进来,获取所述区块链P2P网络之外的外部节点申请加入所述区块链P2P网络的请求信息,便可以确定需要加入的新的分布式节点的节点信息,以对这些类型的节点进行身份验证。
进一步的,在新加入***的节点发送区块同步请求通信之前,需要与相对应的节点建立通信连接。节点之间建立连接时,发送请求的节点首先将自身的***版本信息,包括节点自身的时间戳、节点自身的***版本号、节点自身存储区块链***主链区块高度等信息,发送给对应的节点,以请求建立节点间的通信连接。对应的节点在收到发送的***版本信息之后,会同样的把自身的***版本信息返回到新加入的节点,以回应对方的建立通信连接的请求。建立通信连接的双方节点,会对双方的***时间戳进行确认,如果双方节点的***时间戳一致则相互返回请求确认信息并成功建立通信连接。如果双方的***时间戳不一致,则不能建立通信连接。
需要说明的是,本实施例中的节点信息包括但不限于节点标识,其中,节点标识可以是节点编号、节点名称或者是节点的IP地址,此处不做限定。
S2012:根据所述外部节点的节点信息,对所述外部节点进行身份验证。
在建立通信连接并获取到外部节点的节点信息之后,对该外部节点的节点信息进行验证。例如,验证该节点的节点编号是否在预设的可接入节点范围中,若在预设的接入节点范围中,便可以将其接入。还可以是查看该节点在预设的节点行为历史中是否存在违规行为,若不存在,则可以通过身份验证。
进一步的,还可以预先设置对应的公钥和私钥对,其中,每个分布式***有自己的公钥,每个分布式节点有各自的私钥,通过每个分布式节点的私钥可以进入分布式***中,若通过该外部节点的私钥可以进入该分布式***中,则说明身份验证成功。
S2013:在身份验证通过之后,根据所述请求信息将所述外部节点加入所述区块链P2P网络中。
在身份验证通过之后,根据请求信息将外部节点加入区块链P2P网络中。每当有新的节点加入区块链网络时,节点需要进行区块同步。节点向网络中的其他节点发起同步请求,同步最新的区块链主链数据。区块链P2P网络会为所有的节点,包括需要初始化的新节点,提供搜索当前P2P网络中的分布式节点,即活跃节点的功能,从而记录相应的节点IP地址并进行区块信息同步。
具体的执行方式为,当有新节点加入到***之后,***会向区块链P2P网络发起活跃节点IP请求。***中的其他节点接收到请求后会根据自身存储的信息返回活跃节点的IP地址列表。节点根据网络中的其他节点返回的活跃节点IP地址列表,向其中的活跃节点发送区块信息同步请求。
S202:根据所述区块链P2P网络中每个所述分布式节点的节点信息,计算所述分布式节点之间的数据差异度,并根据所述数据差异度确定待进行数据同步的同步节点;
再建立了区块链P2P网络之后,在该网络中的每个分布式节点运行过程中,会产生各种类型的数据,从而导致数据差异的情况。在这种情况下,我们根据每个分布式节点的节点信息,计算分布式节点之间的数据差异度。
S2021:将所述区块链P2P网络中每个所述分布式节点的节点信息进行量化,得到区块数据矩阵;所述区块数据矩阵用于表示每个所述分布式节点在每个区块中的数据值;
每个分布式节点都有各自的数据存储空间,并按照存储块对数据进行存储。对每个分布式节点的节点信息进行量化,得到每个分布式节点的区块数据矩阵,通过该区块数据矩阵来表示每个分布式节点在每个区块中的数据值,通过该数据值便可以确定节点中的每个存储区块中该存储的数据的类型和多少。
S2022:根据每个所述分布式节点的所述区块数据矩阵,计算所述分布式节点之间的数据差异度;
通过公式
Figure BDA0001803591660000101
计算每个区块数据之间的差异度;其中,P和U分别用于表示相互比较的两个分布式节点中的区块数据矩阵;θ用来表示这两个区块数据矩阵之间的夹角,θ的值用于表示两个分布式节点的区块数据矩阵之间的差异度的大小。
具体的,计算两个矩阵的内积为<P,U>=tr(UTP);其中,tr(·)用于表示矩阵主对角线元素之和,类似于向量的内积;计算两个矩阵的范数分别为:
Figure BDA0001803591660000102
通过上述公式中θ的值来表示两个分布式节点的区块数据矩阵之间的差异度的大小,θ越大,表示两个分布式节点中的相差越大;θ越小,则说明两个分布式节点相差越小。
S2023:识别数据差异度大于或者等于预设的差异度阈值的分布式节点为所述待进行数据同步的同步节点。
预先设定一个差异度阈值用来衡量数据差异度的大小,若数据差异度大于或者等于预设的差异度阈值,则将该分布式节点识别为待进行数据同步的同步节点。
进一步的,还可以讲每个数据差异度进行排序,按照从大到小的顺序进行排序,选择预设数量的较大的数据差异度的分布式节点作为同步节点。
S203:对所述同步节点进行数据同步。
在确定了同步节点之后,即同步节点中的数据时需要被覆盖的。而除同步节点之外的其余分布式节点的数据是可以保留的,且其余分布式节点中的数据可用于复制到同步节点中,覆盖同步节点中的原始数据。
进一步的,考虑到若是将除同步节点之外的其余分布式节点中的数据全部同步到同步节点中,则需要处理的数据量较大,就会消耗较多的处理时间和网络负载,这种情况下,我们将除同步节点之外的其余分布式节点中的数据,与同步节点中的数据进行对比,将同步节点中没有的数据,而在除同步节点之外的其余分布式节点中有的数据发送至同步节点中,同步节点将这些数据存储并更新,实现同步节点的数据同步。
S204:在所述数据同步完成时,向所述区块链P2P网络中其余分布式节点发送验证指令;所述验证指令用于通知所述区块链P2P网络中其余分布式节点对所述同步节点同步之后的数据进行验证。
基于区块链的共识机制,区块链作为一种按时间顺序存储数据的数据结构,可支持不同的共识机制。共识机制是区块链技术的重要组件。区块链共识机制的目标是使所有的诚实节点保存一致的区块链视图,同时满足两个性质一致性和有效性,其中,一致性表示所有诚实节点保存的区块链的前缀部分完全相同;有效性是指由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块链中。
在本实施例中,在同步节点进行数据同步之后,需要由区块链P2P网络中除同步节点之外的其余分布式节点对其同步之后的数据进行验证。具体的,由服务器向区块链P2P网络中除同步节点之外的其余分布式节点发送验证指令,该验证指令中包括了待验证的同步节点的节点标识和验证时限。验证指令用于通知区块链P2P网络中除同步节点之外的其余分布式节点对该节点标识的同步节点,在验证时限之内进行数据验证。区块链P2P网络中除同步节点之外的其余分布式节点在接收到该验证指令之后,在***中查找该节点标识对应的同步节点,并获取该同步节点中所存储的数据,将同步节点中的数据与自身的数据进行对比,若没有差异,则说明同步成功。
进一步的,还可以通过将区块链P2P网络中除同步节点之外的其余分布式节点的数据,与同步节点数据之间计算数据差异度,当数据差异度小于或者等于预设的验证阈值时,则表示数据同步成功。
S205:接收所述区块链P2P网络中其余分布式节点基于所述验证指令发送的确认信息,若所述区块链P2P网络中其余分布式节点的确认信息一致,则向所述同步节点发送同步成功信息。
在区块链P2P网络中除同步节点之外的其余分布式节点进行了数据验证之后,每个节点都生成确认信息,并将确认信息发送至服务器。其中该确认信息中包括但不限于同步节点的节点标识以及包含验证结果,验证结果可以是类似于“验证通过”、“验证未通过”、“Success”、“Fail”等用于表示验证成功或者失败的字样,此处不做限定。
在获取到所有区块链P2P网络中除同步节点之外的其余分布式节点发送的确认信息之后,识别这些信息是否一致,若一致则说明数据同步成功,向同步节点发送同步成功信息。
进一步的,还可以计算确认信息中表示验证成功的信息的数目在所有信息数目中的比例,若该比例大于或者等于预设的比例阈值,若一致则说明数据同步成功,向同步节点发送同步成功信息。
上述方案,通过计算分布式节点之间的数据差异度,确定出待进行数据同步的同步节点,并在进行数据同步之后,基于共识机制使区块链P2P网络中除所述同步节点之外的其余分布式节点对该同步节点的数据进行验证,在验证成功确定数据同步成功,提高了分布式***的数据同步效率,保证了区块链P2P网络中分布式节点数据的一致性,使分布式节点之间可以协同工作。
参见图3,图3是本发明实施例三提供的一种终端设备的示意图。终端设备包括的各单元用于执行图1~图2对应的实施例中的各步骤。具体请参阅图1~图2各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。本实施例的终端设备300包括:
信息获取单元301,用于获取分布式***中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络;
节点确定单元302,用于根据所述区块链P2P网络中每个所述分布式节点的节点信息,计算所述分布式节点之间的数据差异度,并根据所述数据差异度确定待进行数据同步的同步节点;
第一同步单元303,用于对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证。
进一步的,所述数据同步单元303可以包括:
第二同步单元,用于对所述同步节点进行数据同步;
同步验证单元,用于在所述数据同步完成时,向所述区块链P2P网络中除所述同步节点之外的其余分布式节点发送验证指令;所述验证指令用于通知所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证;
同步确认单元,用于接收所述区块链P2P网络中除所述同步节点之外的其余分布式节点基于所述验证指令发送的确认信息,若所述区块链P2P网络中除所述同步节点之外的其余分布式节点的确认信息一致,则向所述同步节点发送同步成功信息。
进一步的,所述节点确定单元302可以包括:
信息量化单元,用于将所述区块链P2P网络中每个所述分布式节点的节点信息进行量化,得到区块数据矩阵;所述区块数据矩阵用于表示每个所述分布式节点在每个区块中的数据值;
差异度计算单元,用于根据每个所述分布式节点的所述区块数据矩阵,计算所述分布式节点之间的数据差异度;
节点识别单元,用于识别数据差异度大于或者等于预设的差异度阈值的分布式节点为所述待进行数据同步的同步节点。
进一步的,所述差异度计算单元可以包括:
通过公式
Figure BDA0001803591660000141
计算每个区块数据之间的差异度;其中,P和U分别用于表示相互比较的两个分布式节点中的区块数据矩阵;θ用来表示这两个区块数据矩阵之间的夹角,θ的值用于表示两个分布式节点的区块数据矩阵之间的差异度的大小。
进一步的,所述终端设备还可以包括:
请求信息获取单元,用于获取所述区块链P2P网络之外的外部节点申请加入所述区块链P2P网络的请求信息,所述请求信息包括所述外部节点的节点信息;
身份验证单元,用于根据所述外部节点的节点信息,对所述外部节点进行身份验证;
节点加入单元,用于在身份验证通过之后,根据所述请求信息将所述外部节点加入所述区块链P2P网络中。
上述方案,通过根据每个分布式节点的节点信息构建区块链P2P网络,并对该区块链P2P网络中数据差异度较大的分布式节点进行数据同步,之后基于区块链的公知机制对同步之后的节点数据进行验证,在验证通过之后确定数据同步成功,保证了区块链P2P网络中分布式节点数据的一致性,使分布式节点之间可以协同工作,提高了分布式***的数据同步和处理的效率。
图4是本发明实施例五提供的终端设备的示意图。如图4所示,该实施例的终端设备4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42。所述处理器40执行所述计算机程序42时实现上述各个基于区块链的数据同步方法实施例中的步骤,例如图1所示的步骤101至103。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能,例如图3所示单元301至303的功能。
示例性的,所述计算机程序42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述终端设备4中的执行过程。
所述终端设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是终端设备4的示例,并不构成对终端设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述终端设备4的内部存储单元,例如终端设备4的硬盘或内存。所述存储器41也可以是所述终端设备4的外部存储设备,例如所述终端设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card,FC)等。进一步地,所述存储器41还可以既包括所述终端设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于区块链的数据同步方法,其特征在于,包括:
获取分布式***中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络;
将所述区块链P2P网络中每个所述分布式节点的节点信息进行量化,得到区块数据矩阵;所述区块数据矩阵用于表示每个所述分布式节点在每个区块中的数据值;
根据每个所述分布式节点的所述区块数据矩阵,计算所述分布式节点之间的数据差异度;
识别数据差异度大于或者等于预设的差异度阈值的分布式节点为待进行数据同步的同步节点;
对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证;
所述根据每个所述分布式节点的区块数据矩阵,计算所述分布式节点之间的数据差异度,包括:
通过公式
Figure QLYQS_1
计算每个区块数据之间的差异度;其中,P和U分别用于表示相互比较的两个分布式节点中的区块数据矩阵;θ用来表示这两个区块数据矩阵之间的夹角,θ的值用于表示两个分布式节点的区块数据矩阵之间的差异度的大小。
2.如权利要求1所述的基于区块链的数据同步方法,其特征在于,所述对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证,包括:
对所述同步节点进行数据同步;
在所述数据同步完成时,向所述区块链P2P网络中除所述同步节点之外的其余分布式节点发送验证指令;所述验证指令用于通知所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证;
接收所述区块链P2P网络中除所述同步节点之外的其余分布式节点基于所述验证指令发送的确认信息,若所述区块链P2P网络中除所述同步节点之外的其余分布式节点的确认信息一致,则向所述同步节点发送同步成功信息。
3.如权利要求1-2任一项所述的基于区块链的数据同步方法,其特征在于,所述获取分布式***中每个分布式节点的节点信息,并根据所述节点信息构建区块链点对点P2P网络之后,还包括:
获取所述区块链P2P网络之外的外部节点申请加入所述区块链P2P网络的请求信息,所述请求信息包括所述外部节点的节点信息;
根据所述外部节点的节点信息,对所述外部节点进行身份验证;
在身份验证通过之后,根据所述请求信息将所述外部节点加入所述区块链P2P网络中。
4.一种终端设备,其特征在于,包括存储器以及处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如下步骤:
获取分布式***中每个分布式节点的节点信息,根据所述节点信息构建区块链点对点P2P网络;
将所述区块链P2P网络中每个所述分布式节点的节点信息进行量化,得到区块数据矩阵;所述区块数据矩阵用于表示每个所述分布式节点在每个区块中的数据值;
根据每个所述分布式节点的所述区块数据矩阵,计算所述分布式节点之间的数据差异度;
识别数据差异度大于或者等于预设的差异度阈值的分布式节点为待进行数据同步的同步节点;
对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证;
所述根据每个所述分布式节点的区块数据矩阵,计算所述分布式节点之间的数据差异度,包括:
通过公式
Figure QLYQS_2
计算每个区块数据之间的差异度;其中,P和U分别用于表示相互比较的两个分布式节点中的区块数据矩阵;θ用来表示这两个区块数据矩阵之间的夹角,θ的值用于表示两个分布式节点的区块数据矩阵之间的差异度的大小。
5.如权利要求4所述的终端设备,其特征在于,所述对所述同步节点进行数据同步,并通过所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证,包括:
对所述同步节点进行数据同步;
在所述数据同步完成时,向所述区块链P2P网络中除所述同步节点之外的其余分布式节点发送验证指令;所述验证指令用于通知所述区块链P2P网络中除所述同步节点之外的其余分布式节点对所述同步节点同步之后的数据进行验证;
接收所述区块链P2P网络中除所述同步节点之外的其余分布式节点基于所述验证指令发送的确认信息,若所述区块链P2P网络中除所述同步节点之外的其余分布式节点的确认信息一致,则向所述同步节点发送同步成功信息。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述方法的步骤。
CN201811087788.9A 2018-09-18 2018-09-18 基于区块链的数据同步方法及终端设备 Active CN109189751B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811087788.9A CN109189751B (zh) 2018-09-18 2018-09-18 基于区块链的数据同步方法及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811087788.9A CN109189751B (zh) 2018-09-18 2018-09-18 基于区块链的数据同步方法及终端设备

Publications (2)

Publication Number Publication Date
CN109189751A CN109189751A (zh) 2019-01-11
CN109189751B true CN109189751B (zh) 2023-05-26

Family

ID=64911951

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811087788.9A Active CN109189751B (zh) 2018-09-18 2018-09-18 基于区块链的数据同步方法及终端设备

Country Status (1)

Country Link
CN (1) CN109189751B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857810B (zh) * 2019-02-02 2023-06-23 立旃(上海)科技有限公司 基于区块链的数据同步装置及方法
CN109951481B (zh) * 2019-03-19 2021-01-15 全链通有限公司 基于区块链网络相邻节点的信息处理方法和***
CN112988751A (zh) * 2019-04-22 2021-06-18 网易(杭州)网络有限公司 基于区块链的定时任务调度方法及装置
CN110266763B (zh) * 2019-05-20 2022-04-12 深圳壹账通智能科技有限公司 跨网段互连的区块链网络实现方法、***及存储介质
CN110866046B (zh) * 2019-10-28 2021-04-27 北京大学 一种可扩展的分布式查询方法及装置
CN110834477B (zh) * 2019-12-03 2021-02-26 深圳市汉森软件有限公司 分布式扫描打印***、光栅同步方法、装置及存储介质
CN111314427A (zh) * 2020-01-16 2020-06-19 杭州趣链科技有限公司 一种区块链全部节点信息的获取方法、设备和存储介质
CN111444204B (zh) * 2020-03-24 2021-09-28 腾讯科技(深圳)有限公司 一种同步处理方法、装置、设备及介质
CN111866076A (zh) * 2020-06-18 2020-10-30 中电健康云科技有限公司 基于gossip协议的离散采集前置机节点数据同步方法
CN111831674B (zh) * 2020-06-29 2024-07-12 山大地纬软件股份有限公司 一种区块链节点、***及数字资料副本分配方法
CN111818149B (zh) * 2020-07-02 2022-06-14 南京聚英数安智能科技有限公司 一种分布式***验证方法
CN114666326B (zh) * 2020-12-23 2023-12-15 中移动信息技术有限公司 数据同步方法、装置、电子设备及计算机存储介质
CN112277881B (zh) * 2020-12-25 2021-04-06 上海银基信息安全技术股份有限公司 一种身份认证方法及装置、车辆、用户设备
CN112839094B (zh) * 2021-01-13 2022-08-02 立旃(上海)科技有限公司 区块链网络的安全性评估方法及装置
CN115297130B (zh) * 2022-10-09 2022-12-09 四川蜀天信息技术有限公司 一种基于区块链的分布式存储网络数据同步方法
CN115865673B (zh) * 2022-11-30 2024-05-24 上海佰贝网络工程技术有限公司 区块链数据分发加速方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017127850A1 (en) * 2016-01-24 2017-07-27 Hasan Syed Kamran Computer security based on artificial intelligence
CN107944034A (zh) * 2017-12-13 2018-04-20 国云科技股份有限公司 一种基于区块链的数据非差异化方法
WO2018119930A1 (zh) * 2016-12-29 2018-07-05 深圳前海达闼云端智能科技有限公司 交易验证处理方法、装置及节点设备
CN108390891A (zh) * 2018-03-28 2018-08-10 电子科技大学天府协同创新中心 基于私有区块链的信息保护方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977717B2 (en) * 2016-03-30 2018-05-22 Wipro Limited System and method for coalescing and representing knowledge as structured data
WO2018112948A1 (zh) * 2016-12-23 2018-06-28 深圳前海达闼云端智能科技有限公司 区块生成方法、装置和区块链网络

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017127850A1 (en) * 2016-01-24 2017-07-27 Hasan Syed Kamran Computer security based on artificial intelligence
WO2018119930A1 (zh) * 2016-12-29 2018-07-05 深圳前海达闼云端智能科技有限公司 交易验证处理方法、装置及节点设备
CN107944034A (zh) * 2017-12-13 2018-04-20 国云科技股份有限公司 一种基于区块链的数据非差异化方法
CN108390891A (zh) * 2018-03-28 2018-08-10 电子科技大学天府协同创新中心 基于私有区块链的信息保护方法

Also Published As

Publication number Publication date
CN109189751A (zh) 2019-01-11

Similar Documents

Publication Publication Date Title
CN109189751B (zh) 基于区块链的数据同步方法及终端设备
US11461773B2 (en) Blockchain-based node management methods and apparatuses
CN107193490B (zh) 一种基于区块链的分布式数据存储***及方法
CN107888562B (zh) 一种平行链接入互联链的数据验证和收发方法、节点及***
US20180308091A1 (en) Fairness preserving byzantine agreements
WO2019119929A1 (zh) 区块链共识方法、装置和***、标识信息处理方法和装置
US10797877B2 (en) Method and system for byzantine fault-tolerance replicating of data
Rodrigues et al. Rosebud: A scalable byzantine-fault-tolerant storage architecture
CN111698315B (zh) 针对区块的数据处理方法、数据处理装置及计算机设备
CN112612856B (zh) 基于区块链的数据处理方法和装置
CN105069152B (zh) 数据处理方法及装置
EP3816914A1 (en) Credibility verification method of alliance chain, system, device and apparatus
CN113064764B (zh) 在区块链***中执行区块的方法及装置
CN110992035A (zh) 区块链节点管理方法、装置及***
CN111401904B (zh) 联盟链中的共识方法和***
Keshav et al. RCanopus: Making canopus resilient to failures and byzantine faults
CN110417833B (zh) 基于区块链的数据处理方法、装置及存储介质
CN111970370B (zh) 基于面向通信设备体系的多层区块链协议拓展***及方法
Al-Mamun et al. Dean: A lightweight and resource-efficient blockchain protocol for reliable edge computing
CN116846888A (zh) 区块链网络的共识处理方法、装置、设备及存储介质
CN114757777A (zh) 用于区块链的最优链路选择方法及装置和电子设备
CN113760519A (zh) 分布式事务处理方法、装置、***和电子设备
Eikel et al. RoBuSt: A crash-failure-resistant distributed storage system
Brasileiro et al. A large scale fault-tolerant grid information service
WO2023221772A1 (zh) 基于区块链网络的数据处理方法及相关产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant