CN115757625A - 数据同步方法、装置、电子设备和可读存储介质 - Google Patents
数据同步方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN115757625A CN115757625A CN202211453993.9A CN202211453993A CN115757625A CN 115757625 A CN115757625 A CN 115757625A CN 202211453993 A CN202211453993 A CN 202211453993A CN 115757625 A CN115757625 A CN 115757625A
- Authority
- CN
- China
- Prior art keywords
- transaction data
- data
- transaction
- query request
- equipment
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据同步方法、装置、电子设备和可读存储介质,涉及区块链技术领域。该方法包括:第一设备接收来自第二设备的数据查询请求,数据查询请求用于请求查询多个区块链节点的交易数据;第一设备基于数据查询请求,获取多个目标结构体,多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号;第一设备向第二设备发送数据查询响应,数据查询响应包括多个目标结构体对应的交易数据,以便第二设备将多个目标结构体对应的交易数据同步至客户端。本申请的方法无需修改原有协议,且降低了数据同步的复杂度,在保证系统安全性的情况下,提高了数据同步效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及数据同步方法、装置、电子设备和可读存储介质。
背景技术
联盟链具有多个区块链节点,通过点对点(peer to peer,P2P)协议进行区块链节点之间的通信,实现区块链节点之间的交易数据的同步,即某一区块链节点的交易数据可以来自自身区块链节点,也可以来自其他区块链节点。联盟链技术可以应用于具体业务应用系统,这时,需要将区块链节点上的交易数据同步到业务应用系统。但是,区块链通常是与业务应用系统隔离开的,导致来自其他区块链节点的交易数据无法同步到业务应用系统。
目前,可以选择定制化修改P2P协议和交易数据同步过程中的代码,在实现区块链节点之间的交易数据同步后,主动将交易数据同步至业务应用系统。但是,该方法复杂度高,且破坏了原有协议,使区块链节点之间同步的交易数据有被篡改的风险,带来了信任危机;并且会产生区块链节点升级时与修改后的协议不兼容的问题,导致区块链节点之间无法同步交易数据。
发明内容
本申请提供了一种数据方法、装置、电子设备和可读存储介质,无需修改原有协议,且降低了数据同步的复杂度,在保证系统安全性的情况下,提高了数据同步效率。
第一方面,本申请提供一种数据同步方法,应用于包括多个区块链节点的联盟链,该方法包括:
第一设备接收来自第二设备的数据查询请求,数据查询请求用于请求查询所述多个区块链节点的交易数据;
第一设备基于数据查询请求,获取多个目标结构体,多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号;
第一设备向第二设备发送数据查询响应,数据查询响应包括多个目标结构体对应的交易数据,以便第二设备将多个目标结构体对应的交易数据同步至客户端。
第二方面,本申请提供另一种数据同步方法,应用于包括多个区块链节点的联盟链,该方法包括:
第二设备向第一设备发送数据查询请求,数据查询请求用于请求查询所述多个区块链节点的交易数据;
第二设备接收来自第一设备的数据查询响应,数据查询响应包括多个目标结构体对应的交易数据,多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号;
第二设备向客户端发送多个目标结构体对应的交易数据。
第三方面,本申请提供一种数据同步装置,包括:
收发模块,用于接收来自第二设备的数据查询请求,数据查询请求用于请求查询多个区块链节点的交易数据;
处理模块,用于基于数据查询请求,获取多个目标结构体,多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号;
收发模块还用于:向第二设备发送数据查询响应,数据查询响应包括多个目标结构体对应的交易数据,以便第二设备将多个目标结构体对应的交易数据同步至客户端。
第四方面,本申请提供另一种数据同步装置,包括:
发送模块,用于向第一设备发送数据查询请求,数据查询请求用于请求查询多个区块链节点的交易数据;
接收模块,用于接收来自第一设备的数据查询响应,数据查询响应包括多个目标结构体对应的交易数据,多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号;
发送模块,还用于向客户端发送多个目标结构体对应的交易数据。
第五方面,本申请提供一种电子设备,包括:
至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面或第二方面所述的数据同步方法。
第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面所述的第一方面或第二方面所述的数据同步方法。
本申请提供的数据同步方法,通过第一设备接收第二设备的数据查询请求,获取多个目标结构体,将目标结构体对应的交易数据发送给第二设备,在通过第二设备将交易数据发送给业务应用系统对应的客户端,实现区块链节点与业务应用系统的交易数据同步。本申请无需修改原有协议,且降低了数据同步的复杂度,在保证系统安全性的情况下,提高了数据同步效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种数据同步方法的应用场景示意图;
图2为本申请实施例提供的一种数据同步方法的流程示意图;
图3为本申请实施例提供的一种数据同步装置的结构示意图;
图4为本申请实施例提供的另一种数据同步装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
联盟链(例如分布式账本解决方案的平台)具有多个区块链节点,通过点对点(peer to peer,P2P)协议(例如流行病协议)进行区块链节点之间的通信,实现区块链节点之间的交易数据的同步,即某一区块链节点的交易数据可以来自自身区块链节点,也可以来自其他区块链节点。联盟链技术可以应用于具体业务应用系统,这时,需要将区块链节点上的交易数据同步到业务应用系统。但是,区块链通常是与业务应用系统隔离开的,导致来自其他区块链节点的交易数据无法同步到业务应用系统。
目前,可以选择定制化修改P2P协议和交易数据同步过程中的代码,在实现区块链节点之间的交易数据同步后,主动将交易数据同步至业务应用系统。但是,该方法复杂度高,且破坏了原有协议,使区块链节点之间同步的交易数据有被篡改的风险,带来了信任危机;并且会产生区块链节点升级时与修改后的协议不兼容的问题,导致区块链节点之间无法同步交易数据。
有鉴于此,本申请实施例提出了一种数据同步方法,通过区块链节点接收第二设备的数据查询请求,获取多个目标结构体,将目标结构体对应的交易数据发送给第二设备,通过第二设备将交易数据发送给业务应用系统对应的客户端,实现区块链节点与业务应用系统的交易数据同步。该方法无需修改原有协议,且降低了数据同步的复杂度,在保证系统安全性的情况下,提高了数据同步效率。
应理解,不同的区块链节点可以对应各自的业务应用,各个业务应用形成了上述业务应用系统。各个业务应用可以分别部署在不同的客户端上。对于某个特定的客户端而言,用户可以通过该客户端上的业务应用实现该业务的交易,从而更新该客户端对应的区块链节点上的交易数据。
图1为本申请实施例提供的一种数据同步方法的应用场景示意图。如图1所示,该应用场景中包括区块链节点101、区块链节点102、第二设备103、客户端104和客户端105。联盟链包括区块链节点101和区块链节点102,区块链节点101和区块链节点102之间可以通过P2P协议同步交易数据。客户端104为区块链节点101对应的客户端,客户端105为区块链节点102对应的客户端。当用户通过客户端104修改了交易数据(例如新建交易数据、修改已建立的交易数据),区块链节点101更新其上的交易数据,并将该交易数据与联盟链中的区块链节点102同步,但是,为了防止区块链节点上的交易数据被篡改,区块链节点与业务应用系统是隔离开的,客户端105无法直接从区块链节点102获取该修改的交易数据,导致区块链节点的交易数据无法同步到业务应用系统。
因此,本申请在区块链节点102上部署了智能合约,从而使得区块链节点102可以基于区块链节点102上的交易数据生成结构体。第二设备103可以通过智能合约获取结构体,和该结构体对应的交易数据,并将该交易数据同步至客户端105。这样,客户端105与客户端104均可以存在上述交易信息,实现区块链节点的交易数据同步到业务应用系统。
应理解,上述示例仅以用户通过客户端104修改交易数据为例,在其他可能的实现方式中,客户端105也可以修改交易数据,第二设备103将该修改的交易数据同步至客户端104。
可选地,上述联盟链还可以包括区块链节点106。区块链节点106、区块链节点102和区块链节点101之间可以通过P2P协议相互同步交易数据。区块链节点106也可以对应一个客户端(图中未示出),第二设备103也可以将交易数据同步至区块链节点106对应的客户端。
应理解,图1只是示意图,区块链节点和客户端的数量可以有多个,本申请实施例对此不做限定。
图1示例性地将智能合约部署在区块链节点102的内部,在另一种可能的实现方式中,智能合约可以部署在另一个独立的设备中,该独立的设备可以和区块链节点102进行交互,基于区块链节点102的交易数据,生成结构体。第二设备103可以通过独立设备上的智能合约获取结构体,和该结构体对应的交易数据,并将该交易数据同步至客户端105。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为本申请实施例提供的一种数据同步方法的流程示意图。该数据同步方法200可以应用于上述图1所示的应用场景中,区块链节点102相当于该方法200中的第一设备,该方法可以由图1中所示的区块链节点102和第二设备103执行对应的步骤,也可以由服务器、计算机等其他物理设备执行,本实施例对于执行主体的具体产品形态和数量不作具体限制。如图2所示,该方法包括:
S201、第二设备向第一设备发送数据查询请求,数据查询请求用于请求查询多个区块链节点的交易数据。对应地,第一设备接收来自第二设备的数据查询请求。
应理解,第一设备作为本地区块链节点,可以接收并存储其它多个区块链节点的交易数据,第一设备与其它多个区块链节点可以通过网络数据协议(例如P2P协议)同步交易数据。
还应理解,第二设备可以将需要查询的交易数据以任务的形式保存下来,并根据任务向第一设备发送数据查询请求。
S202、第一设备基于数据查询请求,获取多个目标结构体,该多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号。
应理解,第一设备上可以设置数据库管理系统,例如面向文档的数据库管理系统(cluster of unreliable commodity hardware document-oriented database,CouchDB),并基于数据库管理系统(例如Couch DB)的特性(例如设置索引字段),通过第一设备上部署的智能合约为每笔交易数据建立结构体,结构体的书写规范依据了数据库管理系统(例如Couch DB)的特性(例如设置索引字段)。结构体与交易数据具有对应关系,第一设备可以通过结构体获取对应的交易数据。
应理解,第一设备可以以数据查询请求中包含的信息作为索引,在第一设备中获取满足索引的目标结构体。
示例性地,数据查询请求中包含业务类型为订单和更新时间大于等于十点的信息,第一设备以业务类型为订单和更新时间大于等于十点作为索引,在多个结构体中,获取业务类型为订单且更新时间大于等于十点的目标结构体。
应理解,交易数据的业务类型,可以是第一设备在交易数据中直接获取的,也可以是第一设备根据交易数据中的参数设定,本申请对此不做限定。
交易数据的创建时间,可以是交易数据对应的这笔交易创建的时间,也可以是交易数据上传到区块链节点时对应的时间戳,本申请对此不做限定。
交易数据的更新时间,在一种可能的实现方式中,如果交易数据对应的这笔交易没有发生状态变化,那么交易数据的更新时间和创建时间一致;在另一种可能的实现方式中,如果交易数据对应的这笔交易发生了状态变化,那么发生状态变化的时间为更新时间。示例性地,在十点时,一笔订单由客户端创建,该笔订单处于未支付状态,该笔订单的创建时间可以是十点,更新时间可以是十点,在十一点时,该笔订单的状态发生了变化,更新为已支付状态,该笔订单的创建时间可以是十点,但是更新时间更新为十一点。
应理解,在多区块链节点的情况下,交易信息发送至排序节点排序,然后通过P2P协议广播至各区块链节点节点重放交易进行信息同步,因此交易数据的创建时间与交易数据的更新时间需要作为结构体的内容,避免出现交易重放结果不一致而导致的上链失败。
交易数据的版本号,第一设备通过查询是否存在该交易数据的标识信息(例如,订单号),在没有存在同样的标识信息的情况下,确定该交易数据的版本号为1;在存在同样的标识信息的情况下,查询出该交易数据对应的结构体中的旧版本号,通过旧版本号确定新版本号,示例性地,旧版本号为1,新版本号为2。
S203、第一设备向第二设备发送数据查询响应,数据查询响应包括上述多个目标结构体对应的交易数据,以便第二设备将上述多个目标结构体对应的交易数据同步至客户端。对应地,第二设备接收来自第一设备的数据查询响应。
应理解,第一设备根据获取的多个目标结构体,将与多个目标结构体对应的交易数据发送给第二设备。
S204、第二设备向客户端发送上述多个目标结构体对应的交易数据。
应理解,客户端可以是业务应用系统中的客户端,客户端可以有多个,本申请对此不做限定。
还应理解,第二设备可以向客户端发送上述多个目标结构体和多个目标结构体对应的交易数据。另外,第二设备可以保存多个目标结构体中最近的交易数据的更新时间。
本申请提供的数据同步方法,通过第一设备接收第二设备的数据查询请求,获取多个目标结构体,将目标结构体对应的交易数据发送给第二设备,在通过第二设备将交易数据发送给业务应用系统对应的客户端,实现区块链节点与业务应用系统的交易数据同步。本申请无需修改原有协议,且降低了数据同步的复杂度,避免修改原有协议带来的信任危机,也避免在区块链节点升级时与修改后的协议不兼容的问题,在保证系统安全性的情况下,提高了数据同步效率。
可选地,每个结构体还包括:交易数据的标识信息和交易数据的状态信息,状态信息用于表示交易数据是否发生变化。
示例性地,交易数据对应的该笔交易可以为创建订单,交易数据的标识信息可以是订单号;示例性地,交易数据对应的该笔交易也可以为建立电子身份证,交易数据对应的标识信息可以是身份证号码。
示例性的,交易数据的状态信息,可以是订单为未支付状态或订单为已支付状态;示例性地,电子身份证为申请状态或电子身份证为申请成功状态。
可选地,数据查询请求包括下列至少一个:
交易数据的业务类型、交易数据的创建时间、交易数据的更新时间、交易数据的标识信息以及交易数据的状态信息。
应理解,交易数据的业务类型、交易数据的创建时间、交易数据的更新时间、交易数据的标识信息以及交易数据的状态信息可以作为查询条件,由第二设备通过数据查询请求发送给第一设备。
示例性地,数据查询请求可以包括业务类型:订单,以及,交易数据的更新时间:十点,数据查询请求可以请求查询属于订单类业务以及交易数据的更新时间大于等于十点的交易数据。
数据查询请求中的交易数据的更新时间的确定方法有以下两种方式:
在一种可能的实现方式中:在交易数据查询请求为第二设备首次发出,数据查询请求中包括交易数据的更新时间的情况下,数据查询请求中的交易数据的更新时间为初始值0,数据查询请求可以请求查询交易数据的更新时间大于0的交易数据。
在另一种可能的实现方式中,在交易数据查询请求为第二设备非首次发出,数据查询请求中包括交易数据的更新时间的情况下,本次数据查询请求中的交易数据的更新时间,可以是上次数据查询响应中多个目标结构体中最近的交易数据的更新时间,也可以是最近的交易数据的更新时间减去预设时长。示例性地,上次获取的多个目标结构体中,交易数据的更新时间分别为十点零二分、十点零五分和十点零八分,十点零八分为多个目标结构体中最近的交易数据的更新时间,预设时长为二分钟,则可以选择十点零六分作为本次数据查询请求中的交易数据的更新时间,避免遗漏交易数据。
可选地,数据查询请求是第二设备周期性发送的。
应理解,发送数据查询请求的时间间隔大于等于区块链的出块时间。
示例性地,出块时间间隔为25分钟,第二设备每隔30分钟向第一设备发送数据查询请求。
可选地,数据查询请求是第二设备周期性发送的,在第二设备非首次向第一设备发送数据查询请求的情况下,在第二设备接收来自第一设备的数据查询响应之后,该方法还包括:
第二设备对多次接收到的多个目标结构体对应的交易数据进行去重处理,得到去重后的交易数据;
第二设备向客户端发送多个目标结构体对应的交易数据,包括:
第二设备向客户端发送去重后的交易数据。
应理解,第二设备可以周期性的发送数据查询请求,对应地,第二设备可以周期性的接收数据查询响应,数据查询响应包括上述多个目标结构体对应的交易数据,第二设备将多次接收到的多个目标结构体对应的交易数据存储在数据库(例如,关系型数据库mysql)中。第二设备可以通过索引条件在数据库中对多次接收到的多个目标结构体对应的交易数据进行筛选,筛选出重复出现的交易数据,并将该重复出现的交易数据从本次的多个目标结构体对应的交易数据中删除,避免交易数据重复同步到客户端。
应理解,索引条件的确定方法有以下几种方式:
在一种可能的实现方式中,索引条件可以是交易数据的标识信息。
在另一种可能的实现方式中,可以基于多个信息通过哈希算法获得索引条件。示例性地,基于交易数据的标识信息和交易数据的状态信息,通过哈希算法计算得到pid值,以pid值作为索引条件。示例性地,也可以以pid值和交易数据的业务类型的组合作为索引条件。
下面以pid值作为索引条件为例,对第二设备对多次接收到的多个目标结构体对应的交易数据进行去重处理进行示例性说明。
前次第二设备接收多个目标结构体对应的交易数据,并将该多个目标结构体对应的交易数据存储在数据库中,基于交易数据的标识信息和交易数据的状态信息,通过哈希算法计算得到每一条交易数据的pid值(例如pid=5、pid=3、pid=2)。本次第二设备接收多个目标结构体对应的交易数据,依照前次同样的方法,计算出本次多个目标结构体对应的交易数据的pid值(例如pid=5、pid=4、pid=1),依次以pid=5、pid=4、pid=1作为索引条件,在数据库中查询是否存在相同pid值的交易数据,pid=5对应的交易数据在前次和本次接收的多个目标结构体对应的交易数据中均出现过,前次时,第二设备已将该pid=5对应的交易数据发送至客户端,为避免重复发送至客户端,第二设备在本次接收的多个目标结构体对应的交易数据中删除pid=5的交易数据,向客户端发送剩余的交易数据。
第二设备向客户端发送多个目标结构体对应的交易数据的方法有以下多种方式:
在一种可能的实现方式中,第二设备基于客户端的目标业务类型,对多个目标结构体对应的交易数据进行筛选,获得筛选后的交易数据;第二设备向客户端发送筛选后的交易数据。
应理解,第二设备基于客户端的目标业务类型,在多个目标结构体中筛选出与客户端的目标业务类型一致的结构体,通过筛选出的结构体获得筛选后的交易数据。
在另一种可能的实现方式中,第二设备向具有消息队列(message queue,MQ)容器的第三设备发送多个目标结构体对应的交易数据。对应地,第三设备接收该多个目标结构体对应的交易数据,第三设备基于客户端的目标业务类型,通过MQ对多个目标结构体对应的交易数据进行筛选,获得筛选后的交易数据;由第三设备向客户端发送筛选后的交易数据。
在另一种可能的实现方式中,第二设备向业务应用系统中的多个客户端均发送多个目标结构体对应的交易数据。对应地,业务应用系统中的多个客户端均可以接收多个目标结构体对应的交易数据,该多个客户端可以基于各自的目标业务类型,分别对多个目标结构体对应的交易数据进行筛选,并对筛选出的交易数据进行存储和处理。
在另一种可能的实现方式中,第二设备向具有消息队列(message queue,MQ)容器的第三设备发送多个目标结构体对应的交易数据。对应地,第三设备接收该多个目标结构体对应的交易数据,通过第三设备的MQ向业务应用系统中的多个客户端均发送多个目标结构体对应的交易数据。对应地,业务应用系统中的多个客户端均可以接收多个目标结构体对应的交易数据,该多个客户端可以基于各自的目标业务类型,分别对多个目标结构体对应的交易数据进行筛选,并对筛选出的交易数据进行存储和处理。
图3为本申请实施例提供的一种数据同步装置的结构示意图。如图3所示,该数据同步装置300包括:收发模块301和处理模块302。
收发模块301,用于接收来自第二设备的数据查询请求,该数据查询请求用于请求查询多个区块链节点的交易数据;
处理模块302,用于基于上述数据查询请求,获取多个目标结构体,该多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号;
收发模块301还用于:向第二设备发送数据查询响应,该数据查询响应包括上述多个目标结构体对应的交易数据,以便第二设备将上述多个目标结构体对应的交易数据同步至客户端。
可选地,每个结构体还包括:交易数据的标识信息和交易数据的状态信息,所述状态信息用于表示交易数据是否发生变化。
可选地,所述数据查询请求包括下列至少一个:
交易数据的业务类型、交易数据的创建时间、交易数据的更新时间、交易数据的标识信息以及交易数据的状态信息。
可选地,所述数据查询请求是第二设备周期性发送的。
图4为本申请实施例提供的一种数据同步装置的结构示意图。如图4所示,该数据同步装置400包括:发送模块401和接收模块402。
发送模块401,用于向第一设备发送数据查询请求,该数据查询请求用于请求查询多个区块链节点的交易数据;
接收模块402,用于接收来自第一设备的数据查询响应,该数据查询响应包括多个目标结构体对应的交易数据,上述多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号;
发送模块401,还用于向客户端发送上述多个目标结构体对应的交易数据。
可选地,数据查询请求是发送模块401周期性发送的,该装置400还包括:
处理模块403,用于在发送模块401非首次向第一设备发送所述数据查询请求的情况下,在接收模块402接收来自第一设备的数据查询响应之后,对多次接收到的多个目标结构体对应的交易数据进行去重处理,得到去重后的交易数据;
发送模块401还用于:向客户端发送去重后的交易数据。
可选地,处理模块403还用于:
基于客户端的目标业务类型,对多个目标结构体对应的交易数据进行筛选,获得筛选后的交易数据;
发送模块401还用于:向客户端发送筛选后的交易数据。
本申请实施例提供的数据同步装置300和装置400,适用于上述方法实施例,在此不再赘述。
本申请实施例还提供了一种电子设备500,如图5所示,图5所示的电子设备包括:处理器501和存储器502。其中,处理器501和存储器502相连,如通过总线503相连。可选地,电子设备还可以包括收发器。需要说明的是,实际应用中收发器不限于一个,该电子设备的结构并不构成对本申请实施例的限定。
处理器501可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器501也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线503可包括一通路,在上述组件之间传送信息。总线503可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线503或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线503等。总线503可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线503或一种类型的总线503。
存储器502可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器502用于存储执行本申请方案的应用程序代码,并由处理器501来控制执行。处理器501用于执行存储器502中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。还可以为服务器等。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本申请提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中的相应内容。
本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机程序(也可以称为代码,或指令),当该计算机程序在计算机上运行时,该计算机可以执行上述方法实施例中的相应内容。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (11)
1.一种数据同步方法,其特征在于,应用于包括多个区块链节点的联盟链,所述方法包括:
第一设备接收来自第二设备的数据查询请求,所述数据查询请求用于请求查询所述多个区块链节点的交易数据;
所述第一设备基于所述数据查询请求,获取多个目标结构体,所述多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号;
所述第一设备向所述第二设备发送数据查询响应,所述数据查询响应包括所述多个目标结构体对应的交易数据,以便所述第二设备将所述多个目标结构体对应的交易数据同步至客户端。
2.根据权利要求1所述的方法,其特征在于,所述每个结构体还包括:交易数据的标识信息和交易数据的状态信息,所述状态信息用于表示交易数据是否发生变化。
3.根据权利要求2所述的方法,其特征在于,所述数据查询请求包括下列至少一个:
交易数据的业务类型、交易数据的创建时间、交易数据的更新时间、交易数据的标识信息以及交易数据的状态信息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述数据查询请求是所述第二设备周期性发送的。
5.一种数据同步方法,其特征在于,应用于包括多个区块链节点的联盟链,所述方法包括:
第二设备向第一设备发送数据查询请求,所述数据查询请求用于请求查询所述多个区块链节点的交易数据;
所述第二设备接收来自所述第一设备的数据查询响应,所述数据查询响应包括多个目标结构体对应的交易数据,所述多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号;
所述第二设备向客户端发送所述多个目标结构体对应的交易数据。
6.根据权利要求5所述的方法,其特征在于,所述数据查询请求是所述第二设备周期性发送的,在所述第二设备非首次向所述第一设备发送所述数据查询请求的情况下,在所述第二设备接收来自所述第一设备的数据查询响应之后,所述方法还包括:
所述第二设备对多次接收到的多个目标结构体对应的交易数据进行去重处理,得到去重后的交易数据;
所述第二设备向客户端发送所述多个目标结构体对应的交易数据,包括:
所述第二设备向所述客户端发送所述去重后的交易数据。
7.根据权利要求5或6所述的方法,其特征在于,所述第二设备向客户端发送所述多个目标结构体对应的交易数据,包括:
所述第二设备基于所述客户端的目标业务类型,对所述多个目标结构体对应的交易数据进行筛选,获得筛选后的交易数据;
所述第二设备向所述客户端发送所述筛选后的交易数据。
8.一种数据同步装置,其特征在于,包括:
收发模块,用于接收来自第二设备的数据查询请求,所述数据查询请求用于请求查询多个区块链节点的交易数据;
处理模块,用于基于所述数据查询请求,获取多个目标结构体,所述多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号;
所述收发模块还用于:向所述第二设备发送数据查询响应,所述数据查询响应包括所述多个目标结构体对应的交易数据,以便所述第二设备将所述多个目标结构体对应的交易数据同步至客户端。
9.一种数据同步装置,其特征在于,包括:
发送模块,用于向第一设备发送数据查询请求,所述数据查询请求用于请求查询多个区块链节点的交易数据;
接收模块,用于接收来自所述第一设备的数据查询响应,所述数据查询响应包括多个目标结构体对应的交易数据,所述多个目标结构体中每个结构体包括交易数据的业务类型、交易数据的创建时间、交易数据的更新时间以及交易数据的版本号;
所述发送模块还用于:向客户端发送所述多个目标结构体对应的交易数据。
10.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-7任一项所述的数据同步方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211453993.9A CN115757625A (zh) | 2022-11-21 | 2022-11-21 | 数据同步方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211453993.9A CN115757625A (zh) | 2022-11-21 | 2022-11-21 | 数据同步方法、装置、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115757625A true CN115757625A (zh) | 2023-03-07 |
Family
ID=85333323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211453993.9A Pending CN115757625A (zh) | 2022-11-21 | 2022-11-21 | 数据同步方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757625A (zh) |
-
2022
- 2022-11-21 CN CN202211453993.9A patent/CN115757625A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111091429A (zh) | 电子票据标识分配方法及装置、电子票据生成系统 | |
CN109492013B (zh) | 应用于数据库集群的数据处理方法、装置和系统 | |
CN111694865A (zh) | 基于分布式系统的四层结构数据获取方法和装置 | |
CN111447069B (zh) | 一种基于区块链的低频访问数据处理方法 | |
CN107391033B (zh) | 数据迁移方法及装置、计算设备、计算机存储介质 | |
US20230102617A1 (en) | Repeat transaction verification method, apparatus, and device, and medium | |
CN112650812A (zh) | 一种数据分片存储方法、装置、计算机设备和存储介质 | |
CN111338834B (zh) | 数据存储方法和装置 | |
CN112948498A (zh) | 一种分布式系统全局标识的生成方法和装置 | |
CN107025257B (zh) | 一种事务处理方法及装置 | |
CN111008220A (zh) | 数据源的动态识别方法及装置、存储介质和电子装置 | |
CN103905512A (zh) | 一种数据处理方法和设备 | |
US20230022646A1 (en) | Method for updating applications in cloud environments | |
CN110798358B (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN116701413A (zh) | 主数据处理方法及装置 | |
CN112000850A (zh) | 进行数据处理的方法、装置、系统及设备 | |
CN111343220B (zh) | 转发器、分布式文件传输方法、系统、介质及电子设备 | |
CN108090152B (zh) | 一种数据同步方法及系统 | |
CN116233254A (zh) | 业务切流方法、装置、计算机设备和存储介质 | |
CN115757625A (zh) | 数据同步方法、装置、电子设备和可读存储介质 | |
CN116542668A (zh) | 一种基于区块链的数据处理方法、设备及可读存储介质 | |
CN113645309A (zh) | 多客户端数据差异化二次缓存及同步的处理方法及系统 | |
CN109325057B (zh) | 中间件管理方法、装置、计算机设备以及存储介质 | |
CN112181921A (zh) | 数据处理方法及装置 | |
CN111782346A (zh) | 基于同库模式的分布式事务全局id生成方法及装置 |
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 |