CN116599643A - 一种区块链数据同步方法、装置、电子设备和介质 - Google Patents

一种区块链数据同步方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN116599643A
CN116599643A CN202310573904.2A CN202310573904A CN116599643A CN 116599643 A CN116599643 A CN 116599643A CN 202310573904 A CN202310573904 A CN 202310573904A CN 116599643 A CN116599643 A CN 116599643A
Authority
CN
China
Prior art keywords
node device
block
target node
block height
communication quality
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
Application number
CN202310573904.2A
Other languages
English (en)
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.)
Hunan Shouchen Health Technology Co ltd
Original Assignee
Hunan Shouchen Health Technology 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 Hunan Shouchen Health Technology Co ltd filed Critical Hunan Shouchen Health Technology Co ltd
Priority to CN202310573904.2A priority Critical patent/CN116599643A/zh
Publication of CN116599643A publication Critical patent/CN116599643A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Abstract

本申请公开了一种区块链数据同步方法、装置、电子设备和介质,属于区块链领域。方法包括:在网络中广播的第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量;根据每个共识节点设备各自所对应的通信质量,确定出至少一个目标节点设备;根据每个目标节点设备各自所对应的通信质量,确定从每个目标节点设备处获取的区块高度区间;向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间;接收每个目标节点设备基于接收到的区块下载请求而发送的区块,并更新本地的区块链。

Description

一种区块链数据同步方法、装置、电子设备和介质
技术领域
本申请属于区块链领域,具体涉及一种区块链数据同步方法、装置、电子设备和介质。
背景技术
区块链(英语:blockchain或block chain)是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。在区块链网络中,当某个节点设备在进行区块链的同步时,会从网络中的其他节点设备(如共识节点设备)处逐个获取所需的区块,这样的方式同步效率较低。
发明内容
本申请实施例的目的是提供一种区块链数据同步方法、装置、电子设备和介质,能够在一定程度上解决区块链数据同步效率较低的问题。
第一方面,本申请实施例提供了一种区块链数据同步方法,该方法包括:监听网络中广播的第一区块高度;在所述第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量;根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备;根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,所有区块高度区间的并集等于所述第一区块高度和所述第二区块高度之间的差集;向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间;接收每个目标节点设备基于接收到的区块下载请求而发送的区块;基于接收到的区块,更新本地的区块链。
第二方面,本申请实施例提供了一种区块链数据同步装置,该装置包括:第一监听模块,用于监听网络中广播的第一区块高度;第一探测模块,用于在所述第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量;第一确定模块,用于根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备;第二确定模块,用于根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,所有区块高度区间的并集等于所述第一区块高度和所述第二区块高度之间的差集;第一发送模块,用于向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间;第一接收模块,用于接收每个目标节点设备基于接收到的区块下载请求而发送的区块;第一更新模块,用于基于接收到的区块,更新本地的区块链。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
在本申请实施例中,监听网络中广播的第一区块高度;在所述第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量;根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备;根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,所有区块高度区间的并集等于所述第一区块高度和所述第二区块高度之间的差集;向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间;接收每个目标节点设备基于接收到的区块下载请求而发送的区块;基于接收到的区块,更新本地的区块链。通过该区块链数据同步方法,进行区块链同步时,可以同时从多个通信质量可靠的共识节点设备中获取所需的区块,可以有效地提高区块链数据同步效率。
附图说明
图1示例性地示出了一种区块链网络;
图2示例性地示出了图1所示的区块链网络中Node2下线后重新上线时Node1-Node3维护的区块链状态的示意图;
图3示例性地示出了本申请实施例提供的一种区块链数据同步方法的流程图;
图4示例性地示出了本申请实施例提供的一种区块链数据同步方法的中数据同步时的数据流向图;
图5示例性地示出了申请实施例提供的一种区块链数据同步方法的区块整合的示意图;
图6示例性地示出了本申请实施例提供的区块链数据同步方法中的步骤S303的一种流程示意图;
图7示例性地示出了本申请实施例提供的区块链数据同步方法中的步骤S304的一种流程示意图;
图8示例性地示出了本申请实施例提供的区块链数据同步方法中的步骤S306和S307的一种流程示意图;
图9示例性地示出了本申请实施例提供的区块链数据同步方法中的进行同步时的一种状态;
图10示例性地示出了本申请实施例提供的区块链数据同步方法中的进行同步时的另一种状态;
图11示例性地示出了本申请实施例提供的容灾装置的一种结构示意图;
图12示例性地示出了本申请实施例提供的一种电子设备的结构示意图;
图13示例性地示出了本申请实施例的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的区块链数据同步方法进行详细地说明。
在区块链网络中,当某个节点设备在进行区块链的同步时,会从网络中的其他节点设备(如共识节点设备)处逐个获取所需的区块,这样的方式存在同步效率较低的技术问题。下面以一个示例说明该技术问题。
如图1所示,示例性地示出了一种区块链网络。请参见图1,在该区块链网络中,共有9个节点设备Node1-Node9,在每个节点设备中维护各自维护着一个区块链,通常每个节点设备中维护的区块链是完全相同。其中,双线箭头所指向的两个节点设备之间建立了通信连接,例如Node2与Node1之间建立了通信连接,又例如Node2与Node5之间建立了通信连接,每个节点设备可以从与之建立通信连接的邻居节点设备同步区块链数据。
当该网络中的某个节点设备从网络中下线后,与邻居节点设备之间断开通信连接,将不能再维护自身的区块链与其他节点设备存储的区块链的同步。例如,Node2从图1所示的区块链网络中下线后,不能再维护自身的区块链与其他节点设备存储的区块链的同步。假设Node2退网时,自身所维护的区块链为Block0-Block2(请结合参见图2)。
当下线的节点设备重新上线后,需要同步自身所维护的区块链。如图2所示,示例性地示出了图1所示的区块链网络中Node2下线后重新上线时Node1-Node3维护的区块链状态的示意图。请参见图2,Node2重新上线后所维护的区块链仍然是退网时所维护的区块链,已经与一直在线的Node2和Node3所维护的区块链存在明显差异,即缺少了新增的区块Block3-Block11(当然也同网络中的其他节点设备所维护的区块链也不同,在图2中未示意图1中的其他节点设备维护的区块链)。即,Node2需要同步其自身所维护的区块链,在相关技术中,Node2会从与之连接的邻居节点设备中依次下载缺少的区块。例如,先从邻居节点设备中随机选择了Node5,从Node5下载Block3;当Block3下载完毕后,再从邻居节点设备中随机选择了Node1,从Node1下载Block4;当Block4下载完毕后,再从邻居节点设备中随机选择了Node3,从Node3下载Block5。可以看出,Node2在进行区块链的同步时,是从网络中的其他节点设备处逐个获取所需的区块,这样的方式存在同步效率较低。
如图3所示,示出了本申请实施例提供的一种区块链数据同步方法的流程图。请参见图3,所述区块链数据同步方法包括以下步骤S301-S307:
S301,监听网络中广播的第一区块高度。
所述网络是区块链网络。区块链网络中的任意节点设备会定时或不定时地网络中广播包含所维护区块链的区块高度的数据包,其他节点设备则可以监听网络中广播的区块高度,以确定自身所维护的区块链是否需要更新。
示例性地,假设Node1(或Node3等其他节点)当前维护的区块链为Block0-Block11,区块高度为11,Node1(或Node3等其他节点)会不断向网络中广播包含区块高度11的数据包。Node2重新上线后可以监听网络中广播的区块高度,并将监听到的第一区块高度(例如是11)与自身的第二区块高度(例如是3)进行对比(请结合参见图5)。
S302,在所述第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量。
共识节点设备是网络中与当前节点设备通信连接的节点设备中与当前节点设备达成共识的节点设备。
示例性地,图1中所示的网络中所有与Node2连接的节点设备均是Node2是共识节点设备。
当第一区块高度高于第二区块高度时,说明当前节点设备维护的区块链需要更新,即需要从网络中的其他节点设备同步缺少的区块。
示例性地,Node2重新上线后可以监听网络中广播的第一区块高度是11,明显高于自身维护的第二区块高度3,即Node2缺少了Block3-Block11。
在同步前,当前节点设备先探测与至少一个共识节点设备之间的通信质量。在一些实施方式中,可以基于心跳包探测与共识节点设备之间的通信质量;在一些可选的实施方式中,可以基于点对点ping测试探测与共识节点设备之间的通信质量;当然,还可以基于其他测试方法探测与共识节点设备之间的通信质量,在本申请中不做具体限制。
在一些实施方式中,通信质量是基于当前节点设备与共识节点设备之间进行通信时传输数据的传输率和/或丢包率表征的。传输率是单位时间内从发送端向接收端传输的数据的容量。丢包率是单位时间内从发送端向接收端成功传输的数据占传输的总数据的比重。
示例性地,Node2探测与Node1、Node3、Node4、Node5和Node6之间的通信质量,测试结果如下表1所示。
表1
S303,根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备。
为了保证进行区块链能够顺利完成同步,在进行同步前,从与当前节点设备通信连接的共识节点设备中选择出通信质量满足要求的共识节点设备,从选择出的通信质量满足要求或通信质量达标的共识节点设备(即目标节点设备)同步当前节点设备缺少的区块,能够在一定程度上保证目标节点设备顺利将缺少的区块发送至当前节点设备,在一定程度上避免因为当前节点设备与同步区块的节点设备之间的通信质量不达标导致区块同步失败的情况出现。
在一些可选的实施方式中,步骤S303通过以下步骤S3031实现:
S3031,根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个通信质量满足预设条件的共识节点设备,得到所述至少一个目标节点设备。
其中,所述预设条件包括以下至少之一:
传输率不低于第一预设阈值;
丢包率不大于第二预设阈值。
在一些实施例中,第一预设阈值为800M/s,第二预设阈值是3%。当然本领域技术人员还可以根据实际需要灵活确定第一预设阈值和第二预设阈值的取值,例如第一预设阈值还可以是700M/s,第二预设阈值还可以是5%,在本申请中不做具体限制。
示例性地,预设条件包括传输率不低于第一预设阈值800M/s和丢包率不大于第二预设阈值3%。针对图1中的Node2进行区块链数据同步时,参见表1,只有Node1、Node3和Node6的通信质量满足预设条件,因此确定出的目标节点设备为Node1、Node3和Node6。
在一些可选的实施方式中,步骤S303也可以通过图6所示的实施例实现;在一些可选的实施方式中,步骤S303还可以通过结合步骤S3031和图6所示的实施例实现,具体请参见后文相关说明,在此不再赘述。
S304,根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,所有区块高度区间的并集等于所述第一区块高度和所述第二区块高度之间的差集。
可以根据当前节点设备与每个目标节点设备各自所对应的通信质量,确定从每个目标节点设备处获取的区块高度区间。
示例性地,可以从通信质量较好的目标节点设备处获取相对更多的区块,从通信质量较差的区块处获取相对更少的区块,从而有效地提高区块链数据的同步效率。
为了保证当前节点设备能与网络中的其他节点设备保持区块链的一致性,需要从网络中徒步将当前节点设备所缺少的所有区块,因此从目标节点获取的区块的并集正好是当前节点设备所缺少的所有区块,也即第一区块高度和所述第二区块高度之间的差集。
示例性地,目标节点设备中,Node2与Node6的通信质量最好(传输率最高且丢包率),Node2与Node1的通信质量次之,与Node2与Node1的通信质量最差。因此,需要从Node6获取的区块最多,例如是区块Block8-Block11;需要从Node1获取的区块次之,例如是区块Block3-Block5;需要从Node1获取的区块最多,例如是区块Block6-Block7,请结合参见图5。
在一些可选的实施方式中,步骤S304基于图7所示的实施例实现,具体请参见图7所示的实施例的相关说明,在此不再赘述。
S305,向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间。
如图4,示出了本申请实施例提供的一种区块链数据同步方法的中数据同步时的数据流向图,在图4中隐藏了除当前节点设备Node2和目标节点设备Node1、Node3和Node6之外的其他节点设备。请参见图4,向Node1发送的区块下载请求Block 3-5Download Request是请求从Node1下载区块Block3-Block5,向Node3发送的区块下载请求Block 6-7DownloadRequest是请求从Node3下载区块Block6-Block7,向Node6发送的区块下载请求Block8-11Download Request是请求从Node6下载区块Block8-Block11,请结合参见图5。
S306,接收每个目标节点设备基于接收到的区块下载请求而发送的区块。
目标节点设备在接收到区块下载请求后,可以基于区块下载请求中携带的区块高度区间,向当前节点设备返回对应的区块高度区间中包含的区块。
请继续参见图4,Node1向Node2传输区块Block3-Block5,Node3向Node2传输区块Block6-Block7,Node6向Node2传输区块Block8-Block11,请结合参见图5。
在一些可选的实施方式中,步骤S307通过以下步骤实现:
在接收到所有缺少的区块后,根据块高顺序,对接收到的所有区块进行排序,并将排序后的所有区块整合至本地区块链。
在一些可选的实施方式中,步骤S307可以通过图8所示的实施方式实现,具体请参见图8所示的实施方式,在此不再赘述。
S307,基于接收到的区块,更新本地的区块链。
如图5所示,示出了申请实施例提供的一种区块链数据同步方法的区块整合的示意图,在图5中未示意Node6向Node2传输区块Block8-Block11。请参见图5,Node1向Node2传输区块Block3-Block5,Node3向Node2传输区块Block6-Block7,Node2在接收到区块后,基于区块的区高顺序,将接收区块整合到本地的区块链上。
在一些可选的实施方式中,步骤S307可以通过图8所示的实施方式实现,具体请参见图8所示的实施方式,在此不再赘述。
在本申请实施例中,当前节点设备监听网络中广播的第一区块高度;在所述第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量;根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备;根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,所有区块高度区间的并集等于所述第一区块高度和所述第二区块高度之间的差集;向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间;接收每个目标节点设备基于接收到的区块下载请求而发送的区块;基于接收到的区块,更新本地的区块链。
通过该区块链数据同步方法,进行区块链同步时,可以同时从多个通信质量可靠的共识节点设备中同步获取所需的区块,可以有效地提高区块链数据同步效率。
如图6所示,示出了本申请实施例提供的区块链数据同步方法中的步骤S303的一种流程示意图。请参见图6,S303包括:
S601,根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个候选节点设备。
确定出候选节点设备是通信质量满足要求或通信质量达标的共识节点设备。
示例性地,针对图1中的Node2进行区块链数据同步时,Node1、Node3和Node6的通信质量达标,因此确定出的候选节点设备为Node1、Node3和Node6。
S602,向所述至少一个候选节点设备中每个候选节点设备发送资源获取请求,所述资源获取请求用于获取候选节点设备的资源参数。
向候选节点设备发送资源获取请求,候选节点设备在接收到资源获取请求后对自身的资源进行检查,并基于检查结果向当前节点设备发送资源参数。
在一些可选的实施方式中,资源参数包括以下至少之一:剩余算力、可用内存等。资源参数表征了候选节点设备的资源状态。
S603,接收每个候选节点设备返回的资源参数。
S604,根据每个候选节点设备对应的资源参数,从所述至少一个候选节点设备中确定出至少一个目标节点设备。
根据接收到的候选节点设备对应的资源参数,从候选节点设备中选择出资源状态存在冗余的节点设备作为目标节点设备。
确定出的目标节点设备不仅是能与当前节点设备顺利通信的节点设备,还是当前存在冗余资源为当前节点设备提供区块链数据同步的节点设备,进一步地提高了区块链数据同步的效率,并在一定程度上提高了区块链数据同步的成功率。
在一些可选的实施方式中,S303包括:
S601a,根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个通信质量满足预设条件的共识节点设备,得到所述至少一个候选节点设备。
其中,所述预设条件包括以下至少之一:
传输率不低于第一预设阈值;
丢包率不大于第二预设阈值。
S602a,向所述至少一个候选节点设备中每个候选节点设备发送资源获取请求,所述资源获取请求用于获取候选节点设备的资源参数。
S603a,接收每个候选节点设备返回的资源参数。
S604a,根据每个候选节点设备对应的资源参数,从所述至少一个候选节点设备中确定出至少一个目标节点设备。
在该实施方式中,S601a是S3031和S601结合后得到的,其具体的实施方式请参见S3031和S601相关描述,S602a-S604a与前述的S602-S604的相同,在此不再赘述。
如图7所示,示出了本申请实施例提供的区块链数据同步方法中的步骤S304的一种流程示意图。请参见图7,S304包括:
S701,根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块所占的比例。
在一些可选的实施方式中,通信质量是通过传输率表征时,基于每个目标节点设备各自所对应的传输率,确定从每个目标节点设备处获取的区块所占的比例。
示例性地,从每个目标节点设备处获取的区块所占的比例通过下式确定:
其中,o表示从该目标节点获取的区块所占的比例,x表示当前节点设备缺少的所有区块的总和,v(i)表示当前节点设备与Node i之间的传输率,∑v(i)表示所有目标节点对应的传输率之和,且o根据小数点后一位四舍五入取整。
例如,Node1对应的比例为
在一些可选的实施方式中,通信质量是通过丢包率表征时,基于每个目标节点设备各自所对应的丢包率,确定从每个目标节点设备处获取的区块所占的比例。
示例性地,从每个目标节点设备处获取的区块所占的比例通过下式确定:
其中,o表示从该目标节点获取的区块所占的比例,x表示当前节点设备缺少的所有区块的总和,y(i)表示当前节点设备与Node i之间的丢包率,∑y(i)表示所有目标节点对应的丢包率之和,且o根据小数点后一位四舍五入取整。
在一些可选的实施方式中,通信质量是通过传输率和丢包率共同表征时,基于每个目标节点设备各自所对应的传输率和丢包率,确定从每个目标节点设备处获取的区块所占的比例。
示例性地,从每个目标节点设备处获取的区块所占的比例通过下式确定:
其中,o表示从该目标节点获取的区块所占的比例,x表示当前节点设备缺少的所有区块的总和,v(i)表示当前节点设备与Node i之间的传输率,∑v(i)表示所有目标节点对应的传输率之和,y(i)表示当前节点设备与Node i之间的丢包率,∑y(i)表示所有目标节点对应的丢包率之和,a表示传输率对应的权重,b表示丢包率对应的权重,a+b=1,且o根据小数点后一位四舍五入取整。其中,a和b的取值可以根据实际需要灵活设置。
S702,根据确定出的从每个目标节点设备处获取的区块所占的比例,确定从每个目标节点设备处获取的区块高度区间。
示例性地,确定出Node1对应的比例为3,Node3对应的比例为2,Node6对应的比例为4。确定Node1对应的区块区间为[Block3、Block4、Block5],确定Node3对应的区块区间为[Block6、Block7],确定Node6对应的区块区间为[Block8、Block9、Block10、Block11]。
如图8所示,示出了本申请实施例提供的区块链数据同步方法中的步骤S306和S307的一种流程示意图。请参见图7,S306包括:
S801,创建下载队列,基于所述下载队列缓冲接收到的区块,所述下载队列中处于缓冲中的区块按照块高顺序进行排序。
在当前节点设备中创建下载队列,将每个待下载的区块按照块高顺序放入下载队列中进行缓冲,直至下载完成后,并在下载完成后暂存在下载队列中。
示例性的,结合图9和图10,在Node2中创建下载队列,下载Block3-Block11。
S307,包括:
S802,在所述下载队列中的任一区块下载完成的情况下,确定下载完成的所有区块与本地区块链的最高区块之间的高度差。
S803,在所述高度差为1的情况下,将所述高度差为1所对应的区块整合至本地区块链的链尾,直至所述下载队列中的所有区块下载完成并全部整合至本地区块链。
图9示出了本申请实施例提供的区块链数据同步方法中的进行同步时的一种状态。Block3下载完成后,与本地区块链的最高区块Block3之间的高度差为1,因此将Block3整合至本地区块链。
图10示出了本申请实施例提供的区块链数据同步方法中的进行同步时的另一种状态。Block5和Block8下载完成后,与本地区块链的最高区块Block3之间的高度差分别为2和5,因此将Block5和Block8暂存在下载队列中。其中,Block5等待Block4下载完成并整合至本地区块链后再从下载队列中取出整合至本地区块链,Block5等待Block7下载完成并整合至本地区块链后再从下载队列中取出整合至本地区块链。
基于图8所示的实施方式,可以在区块下载完成后的更短时间内完成区块链的整合,提高数据同步效率。
本申请实施例提供的区块链数据同步方法,执行主体可以为区块链数据同步装置。本申请实施例中以区块链数据同步装置执行区块链数据同步的方法为例,说明本申请实施例提供的区块链数据同步的装置。
如图11所示,示出了本申请实施例提供的区块链数据同步装置的一种结构示意图。请参见图11,所述区块链数据同步装置1100包括:
第一监听模块1101,用于监听网络中广播的第一区块高度;
第一探测模块1102,用于在所述第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量;
第一确定模块1103,用于根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备;
第二确定模块1104,用于根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,所有区块高度区间的并集等于所述第一区块高度和所述第二区块高度之间的差集;
第一发送模块1105,用于向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间;
第一接收模块1106,用于接收每个目标节点设备基于接收到的区块下载请求而发送的区块;
第一更新模块1107,用于基于接收到的区块,更新本地的区块链。
在一些可选的实施方式中,所述第一确定模块1103包括:
第一确定子模块,用于根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个通信质量满足预设条件的共识节点设备,得到所述至少一个目标节点设备;
所述预设条件包括以下至少之一:
传输率不低于第一预设阈值;
丢包率不大于第二预设阈值。
在一些可选的实施方式中,所述第一确定模块1103还包括:
第二确定子模块,用于根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个候选节点设备;
第一发送子模块,用于向所述至少一个候选节点设备中每个候选节点设备发送资源获取请求,所述资源获取请求用于获取候选节点设备的资源参数;
第一接收子模块,用于接收每个候选节点设备返回的资源参数;
第三确定子模块,用于根据每个候选节点设备对应的资源参数,从所述至少一个候选节点设备中确定出至少一个目标节点设备。
在一些可选的实施方式中,所述第二确定模块1104包括:
第四确定子模块,用于根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块所占的比例;
第五确定子模块,用于根据确定出的从每个目标节点设备处获取的区块所占的比例,确定从每个目标节点设备处获取的区块高度区间。
在一些可选的实施方式中,所述第一更新模块1107包括:
第一整合子模块,用于根据块高顺序,对接收到的所有区块进行排序,并将排序后的所有区块整合至本地区块链。
在一些可选的实施方式中,所述第一接收模块1106包括:
第一接收子模块,用于创建下载队列,基于所述下载队列缓冲接收到的区块,所述下载队列中处于缓冲中的区块按照块高顺序进行排序。
在一些可选的实施方式中,所述第一更新模块1107还包括:
第六确定子模块,用于在所述下载队列中的任一区块下载完成的情况下,确定下载完成的所有区块与本地区块链的最高区块之间的高度差;
第二整合子模块,用于在所述高度差为1的情况下,将所述高度差为1所对应的区块整合至本地区块链的链尾,直至所述下载队列中的所有区块下载完成并全部整合至本地区块链。
在本申请实施例中,当前节点设备监听网络中广播的第一区块高度;在所述第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量;根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备;根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,所有区块高度区间的并集等于所述第一区块高度和所述第二区块高度之间的差集;向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间;接收每个目标节点设备基于接收到的区块下载请求而发送的区块;基于接收到的区块,更新本地的区块链。
通过该区块链数据同步方法,进行区块链同步时,可以同时从多个通信质量可靠的共识节点设备中同步获取所需的区块,可以有效地提高区块链数据同步效率。
本申请实施例中的区块链数据同步装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的区块链数据同步装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的区块链数据同步装置能够实现图3至图10的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图12所示,本申请实施例还提供一种电子设备1200,包括处理器1201和存储器1202,存储器1202上存储有可在所述处理器1201上运行的程序或指令,该程序或指令被处理器1201执行时实现上述区块链数据同步方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图13为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备1300包括但不限于:射频单元1301、网络模块1302、音频输出单元1303、输入单元1304、传感器1305、显示单元1306、用户输入单元1307、接口单元1308、存储器1309、以及处理器1310等部件。
本领域技术人员可以理解,电子设备1300还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1310逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图13中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器1310,用于执行以下步骤:
监听网络中广播的第一区块高度;
在所述第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量;
根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备;
根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,所有区块高度区间的并集等于所述第一区块高度和所述第二区块高度之间的差集;
向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间;
接收每个目标节点设备基于接收到的区块下载请求而发送的区块;
基于接收到的区块,更新本地的区块链。
在本申请实施例中,当前节点设备监听网络中广播的第一区块高度;在所述第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量;根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备;根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,所有区块高度区间的并集等于所述第一区块高度和所述第二区块高度之间的差集;向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间;接收每个目标节点设备基于接收到的区块下载请求而发送的区块;基于接收到的区块,更新本地的区块链。
通过该区块链数据同步方法,进行区块链同步时,可以同时从多个通信质量可靠的共识节点设备中同步获取所需的区块,可以有效地提高区块链数据同步效率。
应理解的是,本申请实施例中,输入单元1304可以包括图形处理器(GraphicsProcessing Unit,GPU)13041和麦克风13042,图形处理器13041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1306可包括显示面板13061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板13061。用户输入单元1307包括触控面板13071以及其他输入设备13072中的至少一种。触控面板13071,也称为触摸屏。触控面板13071可包括触摸检测装置和触摸控制器两个部分。其他输入设备13072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器1309可用于存储软件程序以及各种数据。存储器1309可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器1309可以包括易失性存储器或非易失性存储器,或者,存储器x09可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器1309包括但不限于这些和任意其它适合类型的存储器。
处理器1310可包括一个或多个处理单元;可选的,处理器1310集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器1310中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述区块链数据同步方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (10)

1.一种区块链数据同步方法,其特征在于,所述方法包括:
监听网络中广播的第一区块高度;
在所述第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量;
根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备;
根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,所有区块高度区间的并集等于所述第一区块高度和所述第二区块高度之间的差集;
向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间;
接收每个目标节点设备基于接收到的区块下载请求而发送的区块;
基于接收到的区块,更新本地的区块链。
2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备,包括:
根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个通信质量满足预设条件的共识节点设备,得到所述至少一个目标节点设备;
所述预设条件包括以下至少之一:
传输率不低于第一预设阈值;
丢包率不大于第二预设阈值。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备,包括:
根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个候选节点设备;
向所述至少一个候选节点设备中每个候选节点设备发送资源获取请求,所述资源获取请求用于获取候选节点设备的资源参数;
接收每个候选节点设备返回的资源参数;
根据每个候选节点设备对应的资源参数,从所述至少一个候选节点设备中确定出至少一个目标节点设备。
4.根据权利要求1所述的方法,其特征在于,所述根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,包括:
根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块所占的比例;
根据确定出的从每个目标节点设备处获取的区块所占的比例,确定从每个目标节点设备处获取的区块高度区间。
5.根据权利要求1所述的方法,其特征在于,所述基于接收到的区块,更新本地的区块链,包括:
根据块高顺序,对接收到的所有区块进行排序,并将排序后的所有区块整合至本地区块链。
6.根据权利要求1、2、4或5所述的方法,其特征在于,所述接收每个目标节点设备基于接收到的区块下载请求而发送的区块,包括:
创建下载队列,基于所述下载队列缓冲接收到的区块,所述下载队列中处于缓冲中的区块按照块高顺序进行排序。
7.根据权利要求6所述的方法,其特征在于,所述基于接收到的区块,更新本地的区块链,包括:
在所述下载队列中的任一区块下载完成的情况下,确定下载完成的所有区块与本地区块链的最高区块之间的高度差;
在所述高度差为1的情况下,将所述高度差为1所对应的区块整合至本地区块链的链尾,直至所述下载队列中的所有区块下载完成并全部整合至本地区块链。
8.一种区块链数据同步装置,其特征在于,包括:
第一监听模块,用于监听网络中广播的第一区块高度;
第一探测模块,用于在所述第一区块高度高于当前节点设备的第二区块高度的情况下,探测与至少一个共识节点设备之间的通信质量;
第一确定模块,用于根据所述至少一个共识节点设备中每个共识节点设备各自所对应的通信质量,从所述至少一个共识节点设备中确定出至少一个目标节点设备;
第二确定模块,用于根据每个目标节点设备各自所对应的通信质量,确定从所述至少一个目标节点设备中每个目标节点设备处获取的区块高度区间,所有区块高度区间的并集等于所述第一区块高度和所述第二区块高度之间的差集;
第一发送模块,用于向每个目标节点设备发送对应的区块下载请求,其中,任一目标节点设备对应的区块下载请求中所携带的区块高度区间是确定出的从该目标节点设备处获取的区块高度区间;
第一接收模块,用于接收每个目标节点设备基于接收到的区块下载请求而发送的区块;
第一更新模块,用于基于接收到的区块,更新本地的区块链。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-7任一项所述的区块链数据同步方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-7任一项所述的区块链数据同步方法的步骤。
CN202310573904.2A 2023-05-22 2023-05-22 一种区块链数据同步方法、装置、电子设备和介质 Pending CN116599643A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310573904.2A CN116599643A (zh) 2023-05-22 2023-05-22 一种区块链数据同步方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310573904.2A CN116599643A (zh) 2023-05-22 2023-05-22 一种区块链数据同步方法、装置、电子设备和介质

Publications (1)

Publication Number Publication Date
CN116599643A true CN116599643A (zh) 2023-08-15

Family

ID=87589383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310573904.2A Pending CN116599643A (zh) 2023-05-22 2023-05-22 一种区块链数据同步方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN116599643A (zh)

Similar Documents

Publication Publication Date Title
CN108040108B (zh) 通信切换方法、装置、协调服务器及可读存储介质
CN109496419B (zh) 文件处理方法、装置和系统
KR102015070B1 (ko) 네트워크 발견 및 동기화를 위한 시스템
CN110417915B (zh) 一种推送消息传输方法、装置、存储介质及电子设备
CN110377570B (zh) 节点切换方法、装置、计算机设备及存储介质
CN110765744A (zh) 多人协同文档编辑方法及系统
CN110166791B (zh) 连接的建立方法、装置、设备及存储介质
CN102752402A (zh) 一种云存储方法及系统
US11588890B2 (en) System, method and apparatus having a redundant cluster for processing data
WO2021237433A1 (zh) 消息推送方法、装置、电子设备及计算机可读介质
CN111694757B (zh) 应用程序的测试方法、装置、电子设备及计算机可读存储介质
CN104301140A (zh) 业务请求响应方法、装置和系统
CN107729515A (zh) 一种数据同步的方法、装置及存储介质
CN112398689A (zh) 网络恢复方法、装置、存储介质及电子设备
KR101571374B1 (ko) 정보 관리 방법 및 장치
CN109788251B (zh) 视频处理方法、装置及存储介质
CN114257532A (zh) 服务端状态探测方法及装置
CN116599643A (zh) 一种区块链数据同步方法、装置、电子设备和介质
CN114884805B (zh) 数据传输方法、装置、终端及存储介质
CN114760240B (zh) 数据传输的方法、装置、电子设备及计算机可读存储介质
CN114866827B (zh) 音视频同步的检测方法和装置、存储介质及电子设备
CN104079368B (zh) 一种应用软件的测试数据传输方法及服务器
CN114268799B (zh) 一种流媒体传输方法、装置、电子设备及介质
CN115633016A (zh) 数据传输方法、装置、系统、电子设备及介质
CN110221854B (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