CN112417052B - 区块链网络中的数据同步方法、装置、设备及存储介质 - Google Patents
区块链网络中的数据同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112417052B CN112417052B CN202011404307.XA CN202011404307A CN112417052B CN 112417052 B CN112417052 B CN 112417052B CN 202011404307 A CN202011404307 A CN 202011404307A CN 112417052 B CN112417052 B CN 112417052B
- Authority
- CN
- China
- Prior art keywords
- service node
- data
- target
- node
- network
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种区块链网络中的数据同步方法、装置、设备及存储介质,涉及区块链技术领域,该方法为:第一业务节点获取各个第二业务节点的时延信息,其中,第一业务节点和第二业务节点,均为区块链网络的见证网络中的节点。根据各个第二业务节点的时延信息,从各个第二业务节点中确定至少一个目标业务节点,然后根据至少一个目标业务节点的时延信息以及第一业务节点的数据预获取量,从至少一个目标业务节点中获取相应数据量的目标数据。基于时延信息选择同步数据的目标业务节点,可以选择出时延小的目标业务节点,故从目标业务节点中同步数据时,可以有效提高同步数据的速度,进而提高见证网络中各个业务节点中的数据达到一致性的速度。
Description
技术领域
本发明实施例涉及区块链技术领域,尤其涉及区块链网络中的数据同步方法、装置、设备及存储介质。
背景技术
随着互联网技术的发展,区块链逐渐受到越来越多的个人及企业的关注;所谓的区块链是一种分布式数据存储、点对点传输(P2P传输)、共识机制、加密算法等计算机技术的新型应用模式,其本质上是一个去中心化的数据库。基于区块链和点对点网络所构成的网络可称为区块链网络,区块链网络通常包括多个节点,节点和另一节点之间可相互进行数据通信实现数据同步。
而随着区块链网络被广泛应用,不同节点之间需要同步的数据越来越多,如何提高数据同步的速度成为了研究热点。
发明内容
本申请实施例提供了一种区块链网络中的数据同步方法、装置、设备及存储介质,用于提高业务节点同步数据的速度。
一方面,本申请实施例提供了一种区块链网络中的数据同步方法,该方法包括:
第一业务节点获取各个第二业务节点的时延信息,其中,所述第一业务节点和所述第二业务节点,均为所述区块链网络的见证网络中的节点;
所述第一业务节点根据所述各个第二业务节点的时延信息,从所述各个第二业务节点中确定至少一个目标业务节点;
所述第一业务节点根据所述至少一个目标业务节点的时延信息以及所述第一业务节点的数据预获取量,从所述至少一个目标业务节点中获取相应数据量的目标数据。
一方面,本申请实施例提供了一种区块链网络中的数据同步装置,该装置包括:
获取模块,用于获取各个第二业务节点的时延信息,其中,所述第一业务节点和所述第二业务节点,均为所述区块链网络的见证网络中的节点;
选择模块,用于根据所述各个第二业务节点的时延信息,从所述各个第二业务节点中确定至少一个目标业务节点;
数据同步模块,用于根据所述至少一个目标业务节点的时延信息以及所述第一业务节点的数据预获取量,从所述至少一个目标业务节点中获取相应数据量的目标数据。
可选地,所述时延信息为往返时延;
所述选择模块用于:
按照往返时延从小到大的顺序,对所述各个第二业务节点进行排序;
将前N个第二业务节点作为目标业务节点,其中,N为预设值,且N≥1。
可选地,所述数据同步模块用于:
若N取值为1,则从一个目标业务节点中,获取符合所述数据预获取量的目标数据;
若N取值大于1,则基于所述N个目标业务节点的往返时延以及所述第一业务节点的数据预获取量,分别确定所述N个目标业务节点各自对应的分数据量;
分别从所述N个目标业务节点中,获取相应分数据量的数据块;
基于获得的数据块,获得所述目标数据。
可选地,所述获取模块用于:
向所述各个第二业务节点发送时延探测信号;
根据所述各个第二业务节点返回的响应信号,确定各个第二业务节点的时延信息。
可选地,所述获取模块用于:
获取预设的路由信息;
向所述路由信息中记录的各个第二业务节点,分别发送时延探测信号。
可选地,所述区块链网络还包括路由层以及共识网络,其中,所述路由层包括至少一个路由节点,所述共识网络包括至少一个共识链,每个共识链上包括至少两个记账节点;
所述至少一个目标业务节点中的数据,是所述至少一个目标业务节点从所述见证网络中所述第一业务节点之外的其他业务节点中获取的,或者,通过所述路由层中的至少一个路由节点从所述共识网络中的至少一个记账节点中获取的。
可选地,所述数据同步模块还用于:
若从所述至少一个目标业务节点中获取相应数据量的目标数据的时长满足预设条件,通过所述路由层中的至少一个路由节点,从所述共识网络中的至少一个记账节点中获取符合所述数据预获取量的目标数据。
一方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述区块链网络中的数据同步方法的步骤。
一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述区块链网络中的数据同步方法的步骤。
本申请实施例中,第一业务节点基于各个第二业务节点的时延信息,从各个第二业务节点中确定出同步数据的目标业务节点,可以选择出时延小的目标业务节点,故第一业务节点从目标业务节点中获取数据时,能有效提高第一业务节点同步数据的速度,进而提高见证网络中各个业务节点中的数据达到一致性的速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种区块链网络架构的结构示意图;
图2为本申请实施例提供的一种区块链网络中的数据同步方法的流程示意图;
图3为本申请实施例提供的一种路由表更新方法的流程示意图;
图4为本申请实施例提供的一种路由表更新方法的流程示意图;
图5为本申请实施例提供的一种确定目标业务节点的方法的流程示意图;
图6为本申请实施例提供的一种确定目标业务节点的方法的流程示意图;
图7为本申请实施例提供的一种区块链网络中的数据同步方法的流程示意图;
图8为本申请实施例提供的一种电子发票区块链系统的结构示意图;
图9为本申请实施例提供的一种区块链网络中的数据同步装置的结构示意图;
图10为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本发明实施例中涉及的名词进行解释。
区块链(Blockchain)是一种分布式数据存储、点对点传输(P2P传输)、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);
基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
P2P网络,点对点连接的网络,基于一类特定的网络协议,网络节点之间不需要一个中心节点来维护网络状态,而是每个节点通过和相邻节点的广播交互来维护全网的节点状态或者是其相邻的节点连接状态。
下面对本申请实施例的设计思想进行介绍。
当区块链被用于政府或者商业机构的一些场景中时,并非所有的区块链参与节点都有足够的资源和必要性成为参与区块链共识的节点。而出于对数据的安全性考虑,在区块链体系中涉及个人隐私或者国家安全的相关数据时,也不适用普遍的数据对等式的区块链部署方式。
鉴于此,为了保证数据通信的安全性和保密性,本申请实施例提出了一种分层的区块链网络。该分层的区块链网络可以为以下任一种网络:联盟链网络、公有链网络、私有链网络。其中,联盟链网络又可称为共同体区块链网络,是指由若干个机构共同参与经营的一个区块链网络;公有链网络是指无用户授权机制的区块链网络;私有链网络是指由某一个结构进行经营的一个区块链网络。
请参见图1,是本申请实施例提供的一种区块链网络架构的结构示意图。如图1所示,该网络架构可以称为分层区块链架构,该网络架构可以包括见证网络101、共识网络102和路由层103,见证网络101可以包括一个或者多个业务节点,业务节点主要进行业务执行,不参与记账共识。如图1所示的见证网络具体可以包括:业务节点1011、业务节点1012、……、业务节点1018,共识网络102可以包括至少两个运行区块链共识协议的记账节点,如图1所示的共识网络102具体可以包括:记账节点1021、记账节点1022、记账节点1023、……、记账节点1028,路由层103可以包括一个或者多个路由节点。见证网络101和共识网络102之间通过路由层103来进行隔离,即见证网络101与共识网络102之间的通信需要通过路由层103来进行交互。其中,共识网络102处于相对安全的私有云中,共识网络102中不同记账节点之间的通信存在共识机制保证安全,无需加入额外的身份管理和网络控制;而见证网络101可以为公共网络,该见证网络101中的业务节点可以能会被不确定身份的网络终端进行访问,因此见证网络101中的任一业务节点接入共识网络102的行为均需要进行严格控制,即业务节点与共识网络102之间的通信可以通过数字证书进行SSL(SecureSockets Layer安全套接字协议)安全通信,可以通过路由层103对接入共识网络102的每个业务节点所对应的数字证书进行验证,以确认业务节点的身份。
其中,见证网络101中的任一业务节点、共识网络102中的任一记账节点以及路由层103中的任一路由节点均可以是终端设备,或者是服务器;其中,终端设备可以包括智能手机、平板电脑、笔记本电脑、台式计算机、掌上电脑、移动互联网设备(mobileinternetdevice,MID)、可穿戴设备(例如智能手表、智能手环等)等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在图1所示的网络架构中,见证网络中的业务节点不参与记账共识,而是通过身份认证的方式从共识网络中的记账节点中获得数据,具体从记账节点中获取区块头数据和部分授权可见的区块数据。业务节点从记账节点中获取数据后,可以将获取的数据同步至其他业务节点。为了提高业务节点之间数据同步的速度,可以采用预连接的方式,先探测各个业务节点时延信息,然后基于时延信息选择同步数据的业务节点。具体地,第一业务节点获取各个第二业务节点的时延信息,根据各个第二业务节点的时延信息,从各个第二业务节点中确定至少一个目标业务节点,然后根据至少一个目标业务节点的时延信息以及第一业务节点的数据预获取量,从至少一个目标业务节点中获取相应数据量的目标数据。
本申请实施例中,第一业务节点基于各个第二业务节点的时延信息,从各个第二业务节点中确定出同步数据的目标业务节点,可以选择出时延小的目标业务节点,故第一业务节点从目标业务节点中获取数据时,能有效提高第一业务节点同步数据的速度,进而提高见证网络中各个业务节点中的数据达到一致性的速度。
参考图2,其为本申请实施例适用的一种区块链网络中的数据同步方法,该方法的流程由区块链网络中的业务节点执行,包括以下步骤:
步骤S201,第一业务节点获取各个第二业务节点的时延信息。
具体地,区块链网络包括见证网络、路由层和共识网络。第一业务节点和第二业务节点,均为见证网络中的节点。路由层包括至少一个路由节点,共识网络包括至少一个共识链,每个共识链上包括至少两个记账节点。
第一业务节点向各个第二业务节点发送时延探测信号。第一业务节点根据各个第二业务节点返回的响应信号,确定各个第二业务节点的时延信息。具体实施中,时延信息可以是往返时延(Round-Trip Time,RTT),即第一业务节点向第二业务节点发送时延探测信号至第一业务节点接收到第二业务节点返回的响应信号之间的时长;时延信息也可以是发送时延,即第一业务节点向第二业务节点发送时延探测信号至第二业务节点接收到时延探测信息之间的时长;时延信息还可以是返回时延,即第二业务节点接收到时延探测信息号至第一业务节点接收到第二业务节点返回的响应信号之间的时长,对此,本申请不做具体限定。
第一业务节点可以定期探测通信连接的第二业务节点的时延信息,然后将过去一段时间的往返时延的平均值作为第二业务节点的往返时延,也可以将过去一段时间的往返时延的最大值或最小值作为第二业务节点的往返时延,还可以根据实际需求从过去一段时间的往返时延中选取往返时延作为第二业务节点的往返时延,对此,本申请不做具体限定。
步骤S202,第一业务节点根据各个第二业务节点的时延信息,从各个第二业务节点中确定至少一个目标业务节点。
具体地,第一业务节点可以根据各个第二业务节点的往返时延,从各个第二业务节点中确定至少一个目标业务节点,也可以根据各个第二业务节点的发送时延或返回时延,从各个第二业务节点中确定至少一个目标业务节点。
步骤S203,第一业务节点根据至少一个目标业务节点的时延信息以及第一业务节点的数据预获取量,从至少一个目标业务节点中获取相应数据量的目标数据。
具体地,数据预获取量指第一业务节点需要下载的数据量,数据预获取量可以是数据分片数量、区块数量等。目标业务节点中的数据,是目标业务节点从见证网络中第一业务节点之外的其他业务节点中获取的,或者,通过路由层中的至少一个路由节点从共识网络中的至少一个记账节点中获取的。
具体实施中,共识网络中生成新的区块数据后,见证网络中的任意一个业务节点都可以从共识网络中的记账节点中获取新的区块数据,然后将获取的区块数据同步至见证网络中的其他业务节点,因此,目标业务节点中的数据可以是从记账节点中获取的,也可以是从第一业务节点之外的其他业务节点中获取的,还可以是部分数据从记账节点中获取,另一部分数据从第一业务节点之外的其他业务节点中获取,对此,本申请不做具体限定。
本申请实施例中,第一业务节点基于各个第二业务节点的时延信息,从各个第二业务节点中确定出同步数据的目标业务节点,可以选择出时延小的目标业务节点,故第一业务节点从目标业务节点中获取数据时,能有效提高第一业务节点同步数据的速度,进而提高见证网络中各个业务节点中的数据达到一致性的速度。
可选地,在上述步骤S201中,第一业务节点获取预设的路由信息,然后向路由信息中记录的各个第二业务节点,分别发送时延探测信号。
具体地,路由信息可以是保存在业务节点中的p2p路由表,每个业务节点对应的p2p路由表中保存了与该业务节点通信连接的其他业务节点的标识,p2p路由表定期更新或触发跟新。
示例性地,如图3所示,设定业务节点M对应的p2p路由表中保存了与业务节点M通信连接的业务节点A的标识、业务节点B的标识、业务节点C的标识。当业务节点A故障时,业务节点M删除路由表中业务节点A的标识。业务节点M尝试连接业务节点A、业务节点B、业务节点C之外的业务节点。若业务节点M与业务节点D建立连接,则将业务节点D的标识添加至p2p路由表中。
示例性地,如图4所示,设定业务节点M对应的p2p路由表中保存了与业务节点M通信连接的业务节点A的标识、业务节点B的标识、业务节点C的标识。当业务节点M从业务节点A、业务节点B、业务节点C中同步数据时,出现超时的次数大于预设阈值时,业务节点M尝试连接业务节点A、业务节点B、业务节点C之外的业务节点。若业务节点M与业务节点D建立连接,则将业务节点D的标识添加至p2p路由表中。
可选地,在上述步骤S202中,本申请实施例至少采用以下几种实施方式,从各个第二业务节点中确定至少一个目标业务节点:
实施方式一、第一业务节点按照往返时延从小到大的顺序,对各个第二业务节点进行排序,将前N个第二业务节点作为目标业务节点,其中,N为预设值,且N≥1。
示例性地,如图5所示,设定业务节点M对应的p2p路由表中,保存了与业务节点M通信连接的业务节点A的标识、业务节点B的标识、业务节点C的标识、业务节点D的标识、业务节点F的标识。业务节点M分别探测p2p路由表中各个业务节点的往返时延,然后按照往返时延从小到大的顺序对各个业务节点进行排序,排序结果为:业务节点D、业务节点B、业务节点C、业务节点F、业务节点A。
若N取值为1,则目标业务节点为业务节点D。若N取值为2,则目标业务节点为业务节点D和业务节点B。
实施方式二、第一业务节点按照往返时延从小到大的顺序,对各个第二业务节点进行排序,然后筛选出排在前2N位的第二业务节点。再从前2N位的第二业务节点中间隔抽取N个第二业务节点作为目标业务节点,其中,N为预设值,且N≥1。
示例性地,如图6所示,设定业务节点M对应的p2p路由表中保存了与业务节点M通信连接的业务节点A的标识、业务节点B的标识、业务节点C的标识、业务节点D的标识、业务节点F的标识。业务节点M分别探测p2p路由表中各个业务节点的往返时延,然后按照往返时延从小到大的顺序对各个业务节点进行排序,排序结果为:业务节点D、业务节点B、业务节点C、业务节点F、业务节点A。若N取值为1,则筛选的第二业务节点为业务节点D、业务节点B,从筛选出的第二业务节点中间隔抽取一个第二业务节点作为目标业务节点,则目标业务节点为业务节点D。
若N取值为2,则筛选的第二业务节点为业务节点D、业务节点B、业务节点C、业务节点F。从筛选出的第二业务节点中间隔抽取两个第二业务节点作为目标业务节点,则目标业务节点为业务节点D和目标业务节点C。
需要说明的是,本申请实施例中从各个第二业务节点中确定至少一个目标业务节点的实施方式并不仅限于上述两种,还可以是其他的实施方式,比如,按照往返时延从小到大的顺序,对各个第二业务节点进行排序后,将后N个第二业务节点作为目标业务节点,或者将排在中间位置的N个第二业务节点作为目标业务节点等,对此,本申请不做具体限定。
本申请实施例中,按照往返时延从小到大的顺序,对各个第二业务节点进行排序,然后基于排序结果从各个第二业务节点中选取时延小的第二业务节点作为目标业务节点,故第一业务节点从目标业务节点中同步数据时,能有效提高数据同步的速度。
可选地,第一业务节点从各个第二业务节点中确定出N个目标业务节点后,若N取值为1,则第一业务节点从一个目标业务节点中,获取符合数据预获取量的目标数据。
若N取值大于1,则第一业务节点基于N个目标业务节点的往返时延以及第一业务节点的数据预获取量,分别确定N个目标业务节点各自对应的分数据量。然后分别从N个目标业务节点中,获取相应分数据量的数据块,基于获得的数据块,获得目标数据。
具体实施中,在使各个目标业务节点对应的分数据量的总和,为第一业务节点的数据预获取量的前提下,为往返时延较长的目标业务节点分配较少的分数据量,为往返时延较短的目标业务节点分配较多的分数据量。
一种可能的实施方式,预先设置各个目标业务节点的初始分数据量,各个目标业务节点的初始分数据量的总和,为第一业务节点的数据预获取量。然后计算每个目标业务节点对应的往返时延与初始分数据量的乘积,获得每个目标业务节点对应的总往返时延。然后将各个目标业务节点对应的总往返时延中,最大的总往返时延作为第一业务节点的数据同步时长。之后再调整各个目标业务节点的初始分数据量,直至第一业务节点的数据同步时长达到最小值。
示例性地,如图7所示,设定业务节点M需要下载的目标数据包括6个数据分片,分别为数据分片1、数据分片2、数据分片3、数据分片4、数据分片5、数据分片6。业务节点M对应的p2p路由表中保存了与业务节点M通信连接的业务节点A的标识、业务节点B的标识、业务节点C的标识。业务节点M分别向p2p路由表中各个业务节点发送时延探测信号,然后根据各个业务节点返回的响应信号确定各个业务节点的往返时延,业务节点A的往返时延t1=50ms,业务节点B的往返时延t2=250ms,业务节点C的往返时延t3=300ms。
按照往返时延从小到大的顺序对各个业务节点进行排序,排序结果为:业务节点A、业务节点B、业务节点C,将业务节点A和业务节点B作为目标业务节点。为业务节点A分配5个数据分片,业务节点M从业务节点A中下载5个数据分片的总往返时延为250ms。为业务节点B分配1个数据分片,业务节点M从业务节点B中下载1个数据分片的总往返时延为150ms,此时,第一业务节点的数据同步时长达到最小值,为250ms。
本申请实施例中,第一业务节点基于N个目标业务节点的往返时延以及第一业务节点的数据预获取量,分别确定N个目标业务节点各自对应的分数据量,使第一业务节点的数据同步时长达到最小值,从而提高了业务节点数据同步的速度。
可选地,若第一业务节点从至少一个目标业务节点中获取相应数据量的目标数据的时长满足预设条件,第一业务节点通过路由层中的至少一个路由节点,从共识网络中的至少一个记账节点中获取符合数据预获取量的目标数据。
具体地,预设条件可以是出现超时的次数大于预设阈值。第一业务节点可以从一个记账节点中获取符合数据预获取量的目标数据,也可以分别从多个结记账节点中获取相应分数据量的数据块,然后基于获得的数据块,组成目标数据。另外,当第一业务节点从至少一个目标业务节点中获取相应数据量的目标数据的时长满足预设条件时,第一业务节点也可以从p2p路由表中的其他业务节点中选取新的目标业务节点,然后从新的目标业务节点中获取符合数据预获取量的目标数据。
本申请实施例中,当第一业务节点从目标业务节点中获取数据时出现大量超时时,从共识网络的记账节点中同步数据,从而优化了数据同步速度。
为了更好的解释本申请实施例,下面以电子发票作为具体的实施场景描述本申请实施例提供的一种区块链网络中的数据同步方法的流程。参见图8,其为本申请实施例提供的一种电子发票区块链系统的结构示意图。
电子发票区块链系统包括业务层、路由代理层、核心共识网络层,路由代理层可以用于隔离业务层和核心共识网络层。其中,业务层处于见证网络中,业务层可以包括一个或多个业务节点,可以用于处理电子发票业务,例如,电子税局可以通过税务专网与业务层中的地方税局进行通信,企业可以通过公有云与业务层中的开票服务商、报销服务商以及重要客户企业(也可以称为KA企业)进行通信,消费者可以通过私有云与业务层中的支付服务商、流转服务商以及KA企业进行通信,其中,私有云的安全性要高于公有云,可以更好地保护消费者的个人信息。业务层中的地方税局、开票服务商、报销服务商、重要客户企业、支付服务商、流转服务商等均可以作为业务节点。
路由代理层中包括至少一个代理节点(也可以称为路由节点),在路由代理层中的服务可以包括路由服务、点对点服务以及认证服务等,路由代理层中还可以进行证书缓存,其中,路由服务可以用于在业务层和核心共识网络层之间转发数据,证书缓存可以用于对业务节点进行身份认证。
核心共识网络层包括多个核心链,如核心链1,……,核心链N(N为正整数)。核心链上包括可信区块链节点(也可以称为TrustsoL节点),比如,核心链1可以包括可信区块链节点801、可信区块链节点802等节点,核心链N可以包括可信区块链节点803、可信区块链节点804等节点。核心共识网络层中的可信区块链节点可以运行区块链网络中的共识协议,不同的核心链可以运行相同的共识协议,也可以运行不同的共识协议。
企业或个人需要开电子发票时,可以通过客户端向地方税局提交开票请求,此时的地方税局可以理解为是一个业务节点,业务节点获取与开票请求相关联的待校验电子发票数据,进而可以将待校验电子发票数据封装成业务交易数据,向路由节点发送该业务交易数据,以使路由节点将业务交易数据转发至核心共识网络层进行共识处理,得到业务交易数据对应的开票结果。核心共识网络层将开票结果返回给业务层中的业务节点,业务节点再将开票结果返回给客户端,同时可以将开票结果数据同步给业务层中的其他业务节点。业务层中的各个业务节点可以采用预连接的方式同步开票结果数据,具体过程如下:
第一业务节点向p2p路由表中的各个第二业务节点,发送时延探测信号。根据各个第二业务节点返回的响应信号,确定各个第二业务节点的往返时延。然后按照往返时延从小到大的顺序,对各个第二业务节点进行排序,将前两个第二业务节点作为目标业务节点。再基于两个目标业务节点的往返时延以及开票结果数据的数据量,分别确定两个目标业务节点各自对应的分数据量,之后再分别从两个目标业务节点中,获取相应分数据量的数据块,并基于获得的数据块,组成开票结果数据。
本申请实施例中,第一业务节点基于各个第二业务节点的时延信息,从各个第二业务节点中确定出同步数据的目标业务节点,可以选择出时延小的目标业务节点,故第一业务节点从目标业务节点中获取数据时,能有效提高第一业务节点同步数据的速度,进而提高见证网络中各个业务节点中的数据达到一致性的速度。
基于相同的技术构思,本申请实施例提供了一种区块链网络中的数据同步装置,如图9所示,该装置900包括:
获取模块901,用于获取各个第二业务节点的时延信息,其中,所述第一业务节点和所述第二业务节点,均为所述区块链网络的见证网络中的节点;
选择模块902,用于根据所述各个第二业务节点的时延信息,从所述各个第二业务节点中确定至少一个目标业务节点;
数据同步模块903,用于根据所述至少一个目标业务节点的时延信息以及所述第一业务节点的数据预获取量,从所述至少一个目标业务节点中获取相应数据量的目标数据。
可选地,所述时延信息为往返时延;
所述选择模块902具体用于:
按照往返时延从小到大的顺序,对所述各个第二业务节点进行排序;
将前N个第二业务节点作为目标业务节点,其中,N为预设值,且N≥1。
可选地,所述数据同步模块903具体用于:
若N取值为1,则从一个目标业务节点中,获取符合所述数据预获取量的目标数据;
若N取值大于1,则基于所述N个目标业务节点的往返时延以及所述第一业务节点的数据预获取量,分别确定所述N个目标业务节点各自对应的分数据量;
分别从所述N个目标业务节点中,获取相应分数据量的数据块;
基于获得的数据块,获得所述目标数据。
可选地,所述获取模块901具体用于:
向所述各个第二业务节点发送时延探测信号;
根据所述各个第二业务节点返回的响应信号,确定各个第二业务节点的时延信息。
可选地,所述获取模块901具体用于:
获取预设的路由信息;
向所述路由信息中记录的各个第二业务节点,分别发送时延探测信号。
可选地,所述区块链网络还包括路由层以及共识网络,其中,所述路由层包括至少一个路由节点,所述共识网络包括至少一个共识链,每个共识链上包括至少两个记账节点;
所述至少一个目标业务节点中的数据,是所述至少一个目标业务节点从所述见证网络中所述第一业务节点之外的其他业务节点中获取的,或者,通过所述路由层中的至少一个路由节点从所述共识网络中的至少一个记账节点中获取的。
可选地,所述数据同步模块903还用于:
若从所述至少一个目标业务节点中获取相应数据量的目标数据的时长满足预设条件,通过所述路由层中的至少一个路由节点,从所述共识网络中的至少一个记账节点中获取符合所述数据预获取量的目标数据。
本申请实施例中,第一业务节点基于各个第二业务节点的时延信息,从各个第二业务节点中确定出同步数据的目标业务节点,可以选择出时延小的目标业务节点,故第一业务节点从目标业务节点中获取数据时,能有效提高第一业务节点同步数据的速度,进而提高见证网络中各个业务节点中的数据达到一致性的速度。
基于相同的技术构思,本申请实施例提供了一种计算机设备,如图10所示,包括至少一个处理器1001,以及与至少一个处理器连接的存储器1002,本申请实施例中不限定处理器1001与存储器1002之间的具体连接介质,图10中处理器1001和存储器1002之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器1002存储有可被至少一个处理器1001执行的指令,至少一个处理器1001通过执行存储器1002存储的指令,可以执行上述区块链网络中的数据同步方法的步骤。
其中,处理器1001是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器1002内的指令以及调用存储在存储器1002内的数据,从而进行数据同步。可选的,处理器1001可包括一个或多个处理单元,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。在一些实施例中,处理器1001和存储器1002可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1001可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1002作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1002可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1002是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器1002还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于同一发明构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当程序在计算机设备上运行时,使得所述计算机设备执行上述区块链网络中的数据同步方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中提供的上述区块链网络中的数据同步方法的步骤。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种区块链网络中的数据同步方法,其特征在于,包括:
第一业务节点获取各个第二业务节点的时延信息,其中,所述第一业务节点和所述第二业务节点,均为所述区块链网络的见证网络中的节点;
所述第一业务节点根据所述各个第二业务节点的时延信息,从所述各个第二业务节点中确定至少一个目标业务节点,所述时延信息为往返时延;
所述第一业务节点基于每个目标业务节点对应的往返时延与对应的初始分数据量的乘积,确定每个目标业务节点的总往返时延,其中,所述各个目标业务节点的初始分数据量的总和,为所述第一业务节点的数据预获取量;
所述第一业务节点调整所述各个目标业务节点的初始分数据量,直至所述第一业务节点的数据同步时长达到最小值,获得各个目标业务节点分别对应的目标分数据量,其中,所述数据同步时长为所述各个目标业务节点的总往返时延中的最大总往返时延;
所述第一业务节点,从所述至少一个目标业务节点中获取相应目标分数据量的目标数据。
2.如权利要求1所述的方法,其特征在于,所述第一业务节点根据所述各个第二业务节点的时延信息,从所述各个第二业务节点中确定至少一个目标业务节点,包括:
所述第一业务节点按照往返时延从小到大的顺序,对所述各个第二业务节点进行排序;
所述第一业务节点将前N个第二业务节点作为目标业务节点,其中,N为预设值,且N≥1。
3.如权利要求1所述的方法,其特征在于,所述第一业务节点获取各个第二业务节点的时延信息,包括:
所述第一业务节点向所述各个第二业务节点发送时延探测信号;
所述第一业务节点根据所述各个第二业务节点返回的响应信号,确定各个第二业务节点的时延信息。
4.如权利要求3所述的方法,其特征在于,所述第一业务节点向各个第二业务节点发送时延探测信号,包括:
所述第一业务节点获取预设的路由信息;
所述第一业务节点向所述路由信息中记录的各个第二业务节点,分别发送时延探测信号。
5.如权利要求1-4任一项所述的方法,其特征在于,所述区块链网络还包括路由层以及共识网络,其中,所述路由层包括至少一个路由节点,所述共识网络包括至少一个共识链,每个共识链上包括至少两个记账节点;
所述至少一个目标业务节点中的数据,是所述至少一个目标业务节点从所述见证网络中所述第一业务节点之外的其他业务节点中获取的,或者,通过所述路由层中的至少一个路由节点从所述共识网络中的至少一个记账节点中获取的。
6.如权利要求5所述的方法,其特征在于,还包括:
若所述第一业务节点从所述至少一个目标业务节点中获取相应数据量的目标数据的时长满足预设条件,所述第一业务节点通过所述路由层中的至少一个路由节点,从所述共识网络中的至少一个记账节点中获取符合所述数据预获取量的目标数据。
7.一种区块链网络中的数据同步装置,其特征在于,包括:
获取模块,用于获取各个第二业务节点的时延信息,其中,第一业务节点和所述第二业务节点,均为所述区块链网络的见证网络中的节点;
选择模块,用于根据所述各个第二业务节点的时延信息,从所述各个第二业务节点中确定至少一个目标业务节点,所述时延信息为往返时延;
数据同步模块,用于基于每个目标业务节点对应的往返时延与对应的初始分数据量的乘积,确定每个目标业务节点的总往返时延,其中,所述各个目标业务节点的初始分数据量的总和,为所述第一业务节点的数据预获取量;调整所述各个目标业务节点的初始分数据量,直至所述第一业务节点的数据同步时长达到最小值,获得各个目标业务节点分别对应的目标分数据量,其中,所述数据同步时长为所述各个目标业务节点的总往返时延中的最大总往返时延;从所述至少一个目标业务节点中获取相应目标分数据量的目标数据。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~6任一所述方法的步骤。
9.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行权利要求1~6任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011404307.XA CN112417052B (zh) | 2020-12-03 | 2020-12-03 | 区块链网络中的数据同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011404307.XA CN112417052B (zh) | 2020-12-03 | 2020-12-03 | 区块链网络中的数据同步方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112417052A CN112417052A (zh) | 2021-02-26 |
CN112417052B true CN112417052B (zh) | 2021-08-20 |
Family
ID=74830071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011404307.XA Active CN112417052B (zh) | 2020-12-03 | 2020-12-03 | 区块链网络中的数据同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112417052B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116528337A (zh) * | 2022-01-22 | 2023-08-01 | 华为技术有限公司 | 业务协同方法、电子设备、可读存储介质和芯片系统 |
CN116599643A (zh) * | 2023-05-22 | 2023-08-15 | 湖南首辰健康科技有限公司 | 一种区块链数据同步方法、装置、电子设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109194646A (zh) * | 2018-08-30 | 2019-01-11 | 东北大学 | 一种基于区块链的安全认证数据存取方法 |
CN111294390A (zh) * | 2020-01-17 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种区块数据快速同步方法、装置、设备及存储介质 |
CN111447250A (zh) * | 2019-01-17 | 2020-07-24 | 杨税令 | 一种固定分片数据存储方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11165862B2 (en) * | 2017-10-24 | 2021-11-02 | 0Chain, LLC | Systems and methods of blockchain platform for distributed applications |
CN110636000B (zh) * | 2018-06-22 | 2021-07-27 | 贵州白山云科技股份有限公司 | 一种虚拟云网络控制方法、系统和网络装置 |
CN110460590B (zh) * | 2018-12-07 | 2022-07-19 | 深圳市智税链科技有限公司 | 区块链系统的数据管理方法、装置、介质及电子设备 |
CN110071876B (zh) * | 2019-04-28 | 2023-04-28 | 创新先进技术有限公司 | 一种基于区块链的数据传输方法、装置及电子设备 |
CN110365768B (zh) * | 2019-07-15 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 分布式系统的数据同步方法、装置、介质、电子设备 |
-
2020
- 2020-12-03 CN CN202011404307.XA patent/CN112417052B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109194646A (zh) * | 2018-08-30 | 2019-01-11 | 东北大学 | 一种基于区块链的安全认证数据存取方法 |
CN111447250A (zh) * | 2019-01-17 | 2020-07-24 | 杨税令 | 一种固定分片数据存储方法及系统 |
CN111294390A (zh) * | 2020-01-17 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种区块数据快速同步方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112417052A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112396423B (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
CN112685505B (zh) | 一种交易数据处理方法、装置、计算机设备及存储介质 | |
CN111556120B (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN113570466B (zh) | 一种交易数据处理方法、装置以及可读存储介质 | |
CN111444211B (zh) | 区块链共识节点校验方法、装置、设备以及存储介质 | |
CN111291060B (zh) | 一种管理区块链节点的方法、装置及计算机可读介质 | |
CN112862612A (zh) | 一种跨链发送资源的方法和装置 | |
CN111445333A (zh) | 区块生成方法、装置、计算机设备以及存储介质 | |
CN110599144B (zh) | 一种区块链节点的入网方法以及装置 | |
CN112417052B (zh) | 区块链网络中的数据同步方法、装置、设备及存储介质 | |
US20230370285A1 (en) | Block-chain-based data processing method, computer device, computer-readable storage medium | |
CN111597567B (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN111343212B (zh) | 消息处理方法、装置、设备以及存储介质 | |
CN112231414B (zh) | 区块链系统的数据同步方法、装置、可读介质及电子设备 | |
CN113259130B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN114327827A (zh) | 一种任务处理方法、装置和存储介质 | |
CN111008251A (zh) | 一种数据处理方法以及设备 | |
CN113162971B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN113987062A (zh) | 一种数据上链存储方法、系统、装置以及存储介质 | |
Ivanov et al. | Blockumulus: a scalable framework for smart contracts on the cloud | |
CN115329297A (zh) | 基于区块链的应用互信方法、装置、设备及存储介质 | |
CN116126480A (zh) | 事务的跨区块链处理方法、装置及智能设备、介质、产品 | |
US20240129143A1 (en) | Dividing data storage and service operations among plural blockchains | |
CN111162970B (zh) | 在区块链系统中测试去中心化应用服务器的方法及装置 | |
CN117354255A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40037951 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |