CN110888892B - 一种区块同步方法、装置及存储介质 - Google Patents
一种区块同步方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110888892B CN110888892B CN201911124322.6A CN201911124322A CN110888892B CN 110888892 B CN110888892 B CN 110888892B CN 201911124322 A CN201911124322 A CN 201911124322A CN 110888892 B CN110888892 B CN 110888892B
- Authority
- CN
- China
- Prior art keywords
- node
- block
- target
- heat
- nodes
- 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/23—Updating
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种区块同步方法、装置及存储介质,其中,该方法包括:第一节点获取第一目标节点集合中各个节点的热度,所述第一节点是所述多个节点中的任意一个节点,所述第一目标节点集合包括所述多个节点中的至少一个节点;所述第一节点根据所述热度从所述第一目标节点集合中确定出第二节点;所述第一节点向所述第二节点发送同步区块请求,所述同步区块请求中携带了区块标识,所述同步区块请求用于指示所述第二节点获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。通过这种实施方式,有助于提高区块同步的效率和灵活性,以及提升网络流量的利用率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种区块同步方法、装置及存储介质。
背景技术
现有的区块链技术中,区块同步的方法是一个节点随机向区块链中的一个节点或多个节点请求一个高度的区块来实现区块同步。然而,这样方式可能会选取到热度较高的节点向其请求区块,从而导致区块同步的效率较低,同时区块链中其他热度较低的节点得不到合理利用,从而使得网络流量利用率较低。
发明内容
本发明实施例提供了一种区块同步方法、装置及存储介质,通过选取热度较低的节点来实现区块同步,有助于提高区块同步的效率和灵活性,以及提升网络流量的利用率。
第一方面,本发明实施例提供了一种区块同步方法,应用于区块链网络,所述区块链网络中包括多个节点,所述方法包括:
第一节点获取第一目标节点集合中各个节点的热度,所述第一节点是所述多个节点中的任意一个节点,所述第一目标节点集合包括所述多个节点中的至少一个节点;
所述第一节点根据所述热度从所述第一目标节点集合中确定出第二节点;
所述第一节点向所述第二节点发送同步区块请求,所述同步区块请求中携带了区块标识,所述同步区块请求用于指示所述第二节点获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。
第二方面,本发明实施例提供了另一种区块同步方法,应用于区块链网络,所述区块链网络中包括多个节点,所述方法包括:
第二节点接收第一节点发送的同步区块请求,所述同步区块请求中携带了区块标识,所述第一节点是所述多个节点中的任意一个节点,所述第二节点是所述第一节点根据热度从第一目标节点集合中确定出来的,所述第一目标节点集合包括所述多个节点中的至少一个节点;
所述第二节点响应所述同步区块请求获取区块链中与所述区块标识对应目标区块;
所述第二节点将所述目标区块发送给所述第一节点。
第三方面,本发明实施例提供了一种区块同步装置,应用于区块链网络,所述区块链网络中包括多个节点,所述装置包括:
第一获取模块,用于第一节点获取第一目标节点集合中各个节点的热度,所述第一节点是所述多个节点中的任意一个节点,所述第一目标节点集合包括所述多个节点中的至少一个节点;
确定模块,用于所述第一节点根据所述热度从所述第一目标节点集合中确定出第二节点;
第一发送模块,用于所述第一节点向所述第二节点发送同步区块请求,所述同步区块请求中携带了区块标识,所述同步区块请求用于指示所述第二节点获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。
第四方面,本发明实施例提供了另一种区块同步装置,应用于区块链网络,所述区块链网络中包括多个节点,所述装置包括:
接收模块,用于第二节点接收第一节点发送的同步区块请求,所述同步区块请求中携带了区块标识,所述第一节点是所述多个节点中的任意一个节点,所述第二节点是所述第一节点根据热度从第一目标节点集合中确定出来的,所述第一目标节点集合包括所述多个节点中的至少一个节点;
第二获取模块,用于所述第二节点响应所述同步区块请求获取区块链中与所述区块标识对应目标区块;
第二发送模块,用于所述第二节点将所述目标区块发送给所述第一节点。
第五方面,本发明实施例提供了一种节点,所述节点与前述第一节点对应,所述节点包括:处理器和存储器,所述处理器用于执行:
获取第一目标节点集合中各个节点的热度,所述第一节点是所述多个节点中的任意一个节点,所述第一目标节点集合包括所述多个节点中的至少一个节点;
根据所述热度从所述第一目标节点集合中确定出第二节点;
向所述第二节点发送同步区块请求,所述同步区块请求中携带了区块标识,所述同步区块请求用于指示所述第二节点获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。
第六方面,本发明实施例提供了另一种节点,所述节点与前述第二节点对应,所述节点包括:处理器和存储器,所述处理器用于执行:
接收第一节点发送的同步区块请求,所述同步区块请求中携带了区块标识,所述第一节点是所述多个节点中的任意一个节点,所述第二节点是所述第一节点根据热度从第一目标节点集合中确定出来的,所述第一目标节点集合包括所述多个节点中的至少一个节点;
响应所述同步区块请求获取区块链中与所述区块标识对应目标区块;
将所述目标区块发送给所述第一节点。
第七方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,该程序指令被执行时,用于实现上述第一方面或第二方面所述的方法。
本发明实施例,通过第一节点获取第一目标节点集合中各个节点的热度,并根据所述热度从所述第一目标节点集合中确定出第二节点,以向所述第二节点发送同步区块请求,所述同步区块请求中携带了区块标识,以使所述第二节点获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。通过第一节点根据第一目标节点集合中各个节点的热度选取第二节点发送同步区块请求,有助于提高区块同步的效率和灵活性,以及提升网络流量的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的一种区块链网络的结构示意图;
图1b是本发明实施例提供的一种区块链的结构示意图;
图1c是本发明实施例提供的一种产生新区块的过程示意图;
图2是本发明实施例提供的一种区块同步方法的流程示意图;
图3是本发明实施例提供的另一种区块同步方法的流程示意图;
图4是本发明实施例提供的一种区块同步装置的结构示意图;
图5是本发明实施例提供的另一种区块同步装置的结构示意图;
图6是本发明实施例提供的一种节点的结构示意图;
图7是本发明实施例提供的另一种节点的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本发明实施例中提供的区块同步方法应用于区块链网络中,其中,所述区块链网络中包括多个节点,所述多个节点中的各个节点之间可以建立通信连接。
下面结合附图1a-附图1c对本发明实施例提供的区块链网络进行示意性说明。
请参见图1a,图1a是本发明实施例提供的一种区块链网络的结构示意图,所述区块链网络11中包括多个节点111,各个节点111之间可以建立通信连接。
在一个实施例中,所述区块链网络11是指用于进行节点与节点之间数据共享的网络,区块链网络中可以包括多个节点111。每个节点111在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护区块链网络内的共享数据(即区块链)。为了保证区块链网络内的信息互通,每个节点之间可以存在信息连接,任意两个节点之间可以实现点对点(Peer To Peer,P2P)通信,具体可以通过有线通信链路或无线通信链路进行P2P通信。例如,当区块链网络中的任意节点接收到输入信息时,其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链网络中全部节点上存储的数据均一致。
需要说明的是,图1a中所示的节点的数目仅仅是示意性的,根据实际需要,可以部署任意数目的节点,区块链网络11中的各个节点之间可以进行通信。
其中,对于区块链网络11中的每个节点,均具有与其对应的节点标识,而且区块链网络11中的每个节点均可以存储有区块链网络中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链网络中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为互联网协议(Internet Protocol,IP)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
其中,区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1b,图1b是本发明实施例提供的一种区块链的结构示意图。区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
其中,在生成区块链中的各个区块时,参见图1c,图1c是本发明实施例提供的一种产生新区块的过程示意图。区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据区块链网络中其他节点的节点标识,将新生成的区块分别发送给其所在的区块链网络中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
其中,区块链网络11的节点上可以运行智能合约,智能合约是用于在满足一定条件时而执行的代码实现,开发人员可以通过编程语言定义合约逻辑,发布到区块链上(智能合约注册),根据合约条款的逻辑,调用密钥或者其他的事件触发执行,完成合约逻辑,同时还提供对智能合约升级、注销的功能。
下面结合附图2-附图3对本发明实施例提供的区块同步方法进行示意性说明。
具体请参见图2,图2是本发明实施例提供的一种区块同步方法的流程示意图,本发明实施例的区块同步方法可以由区块链网络中的第一节点执行,该第一节点可以是区块链网络中的多个节点中的任意一个节点。具体地,本发明实施例的所述方法包括如下步骤。
S201:第一节点获取第一目标节点集合中各个节点的热度,所述第一节点是所述多个节点中的任意一个节点,所述第一目标节点集合包括所述多个节点中的至少一个节点。
本发明实施例中,第一节点可以获取第一目标节点集合中各个节点的热度,所述第一节点是所述多个节点中的任意一个节点,所述第一目标节点集合包括所述多个节点中的至少一个节点。
在一个实施例中,所述第一目标节点集合中的各个节点是所述第一节点维护热度的节点,即所述第一节点可以接收到第一节点所维护的各个节点发送的热度,以使第一节点可以对所述维护的各个节点的热度进行更新等操作。
在一个示例中,假设第一节点维护节点a、节点b、节点c这3个节点的热度,则确定由节点a、节点b、节点c组成第一目标节点集合,因此第一节点可以获取到节点a、节点b、节点c发送的各自的热度。
在一些实施例中,所述各个节点的热度可以是根据各个节点在预设时长内被访问的次数、对外提供的区块数据量、节点的签名确认信息中的任意一种或多种确定的。在某些实施例中,所述各个节点的热度可以用数字、字母等任意一种或多种表示,本发明实施例在此不做具体限定,在一个示例中,节点a的热度为5。
在一种实施方式中,所述各个节点的热度可以根据预设的次数、区块数据量与热度的对应关系,确定出与各个节点在预设时长内被访问的次数和对外提供的区块数据量对应的热度。
在一个示例中,假设节点a在30s内被访问的次数为5次,对外发送出去的区块数据量为1024比特,则可以根据预设的次数、区块数据量与热度的对应关系,确定出与节点a在30s内的热度为6。
在一个实施例中,所述第一节点还可以接收所述第一目标节点集合中第三节点发送的心跳包,所述心跳包包括所述第三节点在预设时长内被访问的次数、对外提供的区块数据量和节点的签名确认信息,所述第三节点是所述第一目标节点集合中的任意一个节点;所述第一节点可以根据所述心跳包更新所述第三节点的热度。在某些实施例中,所述第三节点为所述第一节点维护热度的节点。在某些实施例中,所述节点的签名确认信息可以用于确认所述第三节点在预设时长内对外提供的区块数据量。
在一个示例中,假设第三节点为节点b,且节点b是第一节点维护热度节点,则第一节点可以接收节点b发送的心跳包,以使第一节点可以根据所述心跳包更新节点b的热度。
可见,本发明实施例通过第一节点获取所维护的各个节点的热度,有助于第一节点根据热度选择发送同步区块请求的第二节点。
S202:所述第一节点根据所述热度从所述第一目标节点集合中确定出第二节点。
本发明实施例中,所述第一节点可以根据所述热度从所述第一目标节点集合中确定出第二节点。
在一个实施例中,所述第一节点根据所述热度从所述第一目标节点集合中确定出第二节点时,可以根据所述热度从所述第一目标节点集合中确定出当前热度最低的第二节点。
在一个示例中,假设第一节点当前获取到节点a的热度为4,获取到节点b的热度5、获取到节点c的热度为3,则所述第一节点可以确定出当前热度最低的节点c为第二节点。
可见,本发明实施例通过确定当前热度最低的第二节点,有助于将同步区块请求发送给当前热度最低的第二节点获取区块时可以提高获取区块的效率。
S203:所述第一节点向所述第二节点发送同步区块请求,所述同步区块请求中携带了区块标识,所述同步区块请求用于指示所述第二节点获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。
本发明实施例中,所述第一节点可以向所述第二节点发送同步区块请求,所述同步区块请求中携带了区块标识,所述同步区块请求用于指示所述第二节点获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。在某些实施例中,所述区块标识可以包括但不限于区块高度,在某些实施例中,所述区块标识可以包括但不限于数字、字母等任意一种或多种,本发明实施例不做具体限定。在一个示例中,同步区块请求中携带的区块高度为100。
在一个示例中,所述第一节点可以向第二节点发送同步区块请求,所述同步区块请求中携带了区块标识1,以使第二节点可以获取区块链中与所述区块标识1对应目标区块,并将所述目标区块发送给所述第一节点。
在一个实施例中,所述第一节点在接收到所述第二节点发送的目标区块之后,可以进行签名确认,并将签名确认信息发送给所述第二节点。
本发明实施例中,第一节点通过获取第一目标节点集合中各个节点的热度,并根据所述热度从所述第一目标节点集合中确定出第二节点,以向所述第二节点发送同步区块请求,以使第二节点可以根据所述同步区块请求中携带的区块标识获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。通过选取热度较低的节点来获取同步区块,可以提高区块同步的效率和灵活性,提升网络流量的利用率。
具体请参见图3,图3是本发明实施例提供的另一种区块同步方法的流程示意图,本发明实施例的区块同步方法可以由区块链网络中的第二节点执行,该第二节点可以是区块链网络中的多个节点中的任意一个节点,具体地,本发明实施例的所述方法包括如下步骤。
S301:第二节点接收第一节点发送的同步区块请求,所述同步区块请求中携带了区块标识,所述第一节点是所述多个节点中的任意一个节点,所述第二节点是所述第一节点根据热度从第一目标节点集合中确定出来的,所述第一目标节点集合包括所述多个节点中的至少一个节点。
本发明实施例中,第二节点可以接收第一节点发送的同步区块请求,所述同步区块请求中携带了区块标识,所述第一节点是所述多个节点中的任意一个节点,所述第二节点是所述第一节点根据热度从第一目标节点集合中确定出来的,所述第一目标节点集合包括所述多个节点中的至少一个节点。具体实施例如前所述,此处不再赘述。
S302:所述第二节点响应所述同步区块请求获取区块链中与所述区块标识对应目标区块。
本发明实施例中,所述第二节点可以响应所述同步区块请求获取区块链中与所述区块标识对应目标区块。
在一个实施例中,所述第二节点响应所述同步区块请求获取区块链中与所述区块标识对应目标区块之前,可以获取所述第二节点的热度,若所述第二节点的热度指示所述第二节点的热度未达到预设热度阈值,则所述第二节点可以执行响应所述同步区块请求获取区块链中与所述区块标识对应目标区块的步骤。
在一个实施例中,若所述第二节点的热度指示所述第二节点的热度达到所述预设热度阈值,则所述第二节点可以从第二目标节点集合中确定出当前热度最低的第四节点,并向所述第一节点发送所述第四节点的标识信息,以使得所述第一节点根据所述第四节点的标识信息向所述第四节点发送所述同步区块请求。在某些实施例中,所述第二节点的热度指示所述第二节点的热度达到所述预设热度阈值时,即可以确认所述第二节点不能承担所述第一节点发送的同步区块请求。在某些实施例中,所述第二目标节点集合中的节点是所述第二节点维护热度的节点。
在一个示例中,假设第二节点维护热度的第二目标节点集合中包括节点d和节点e,如果第二节点在获取到第一节点发送的同步区块请求时获取到的第二节点的热度大于预设热度阈值,则第二节点可以从节点d和节点e中确定出当前热度最低的第四节点为节点e,并向所述第一节点发送所述节点e的标识信息,以使得所述第一节点根据节点e的标识信息向节点e发送所述同步区块请求。
可见,当第二节点在接收到同步区块请求时自身热度比较大的时候,可以向第一节点推荐第二节点维护的热度最低的第四节点,以使第一节点向热度低的第四节点发送同步区块请求,通过这种实施方式,有助于提高网络流量利用率,提高区块同步的效率。
在一个实施例中,当所述第二节点的热度指示所述第二节点的热度达到所述预设热度阈值时,如果所述第二节点检测到第二目标节点集合中的各个节点的热度均高于所述第一节点的热度,则第二节点可以向所述第一节点发送通知消息,所述通知消息用于通知所述第一节点所述第二节点当前无法处理,请第一节点向第一节点维护的其他节点发送同步区块请求。
在一个实施例中,当所述第二节点的热度指示所述第二节点的热度达到所述预设热度阈值时,如果所述第二节点检测到当前第二目标节点集合中没有节点,则所述第二节点可以向所述第一节点发送通知消息,所述通知消息用于通知所述第一节点所述第二节点当前无法处理,请第一节点向第一节点维护的其他节点发送同步区块请求。
S303:所述第二节点将所述目标区块发送给所述第一节点。
本发明实施例中,所述第二节点可以将所述目标区块发送给所述第一节点。
在一个实施例中,所述第二节点将所述目标区块发送给所述第一节点之后,可以接收所述第一节点在收到所述目标区块后发送的签名确认信息,并向所述第一节点发送心跳包,所述心跳包包括所述第二节点在预设时长内被访问的次数、对外提供的区块数据量和所述第一节点的签名确认信息,以使得所述第一节点根据所述心跳包更新所述第二节点的热度。
本发明实施例中,第二节点可以接收第一节点发送的同步区块请求,并响应所述同步区块请求获取区块链中与所述同步区块请求中携带的区块标识对应目标区块,从而将所述目标区块发送给所述第一节点。通过这种实施方式,有助于提高区块同步的效率和灵活性,以及提升网络流量的利用率。
请参见图4,图4是本发明实施例提供的一种区块同步装置的结构示意图。具体的,所述装置设置于区块链网络,所述区块链网络中包括多个节点,,所述装置包括:第一获取模块401、确定模块402以及第一发送模块403;
第一获取模块401,用于第一节点获取第一目标节点集合中各个节点的热度,所述第一节点是所述多个节点中的任意一个节点,所述第一目标节点集合包括所述多个节点中的至少一个节点;
确定模块402,用于所述第一节点根据所述热度从所述第一目标节点集合中确定出第二节点;
第一发送模块403,用于所述第一节点向所述第二节点发送同步区块请求,所述同步区块请求中携带了区块标识,所述同步区块请求用于指示所述第二节点获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。
进一步地,所述第一获取模块401还用于:
所述第一节点接收所述第一目标节点集合中第三节点发送的心跳包,所述心跳包包括所述第三节点在预设时长内被访问的次数、对外提供的区块数据量和节点的签名确认信息,所述第三节点是所述第一目标节点集合中的任意一个节点;
所述第一节点根据所述心跳包更新所述第三节点的热度。
进一步地,所述确定模块402用于第一节点根据所述热度从所述第一目标节点集合中确定出第二节点时,具体用于:
所述第一节点根据所述热度从所述第一目标节点集合中确定出当前热度最低的第二节点。
本发明实施例,通过获取第一目标节点集合中各个节点的热度,并根据所述热度从所述第一目标节点集合中确定出第二节点,以向所述第二节点发送同步区块请求,以使第二节点可以根据所述同步区块请求中携带的区块标识获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。通过选取热度较低的节点来获取同步区块,可以提高区块同步的效率和灵活性,提升网络流量的利用率。
请参见图5,图5是本发明实施例提供的另一种区块同步装置的结构示意图。具体的,所述装置设置于区块链网络,所述区块链网络中包括多个节点,所述装置包括:接收模块501、第二获取模块502以及第二发送模块503;
接收模块501,用于第二节点接收第一节点发送的同步区块请求,所述同步区块请求中携带了区块标识,所述第一节点是所述多个节点中的任意一个节点,所述第二节点是所述第一节点根据热度从第一目标节点集合中确定出来的,所述第一目标节点集合包括所述多个节点中的至少一个节点;
第二获取模块502,用于所述第二节点响应所述同步区块请求获取区块链中与所述区块标识对应目标区块;
第二发送模块503,用于所述第二节点将所述目标区块发送给所述第一节点。
进一步地,所述第二获取模块502用于第二节点响应所述同步区块请求获取区块链中与所述区块标识对应目标区块之前,还用于:
所述第二节点获取所述第二节点的热度;
若所述第二节点的热度指示所述第二节点的热度未达到预设热度阈值,则所述第二节点执行响应所述同步区块请求获取区块链中与所述区块标识对应目标区块的步骤。
进一步地,所述第二获取模块502还用于:
若所述第二节点的热度指示所述第二节点的热度达到所述预设热度阈值,则所述第二节点从第二目标节点集合中确定出当前热度最低的第四节点;
所述第二节点向所述第一节点发送所述第四节点的标识信息,以使得所述第一节点根据所述第四节点的标识信息向所述第四节点发送所述同步区块请求。
进一步地,所述第二发送模块503用于第二节点将所述目标区块发送给所述第一节点之后,还用于:
所述第二节点接收所述第一节点在收到所述目标区块后发送的签名确认信息;
所述第二节点向所述第一节点发送心跳包,所述心跳包包括所述第二节点在预设时长内被访问的次数、对外提供的区块数据量和所述第一节点的签名确认信息,以使得所述第一节点根据所述心跳包更新所述第二节点的热度。
本发明实施例,通过接收第一节点发送的同步区块请求,并响应所述同步区块请求获取区块链中与所述同步区块请求中携带的区块标识对应目标区块,从而将所述目标区块发送给所述第一节点。通过这种实施方式,有助于提高区块同步的效率和灵活性,以及提升网络流量的利用率。
请参见图6,图6是本发明实施例提供的一种节点的结构示意图,所述节点与前述第一节点对应相同,具体的,所述节点包括:存储器601、处理器602。
在一种实施例中,所述节点还包括数据接口603,所述数据接口603,用于传递节点和其他设备之间的数据信息。
所述存储器601可以包括易失性存储器(volatile memory);存储器601也可以包括非易失性存储器(non-volatile memory);存储器601还可以包括上述种类的存储器的组合。所述处理器602可以是中央处理器(central processing unit,CPU)。所述处理器602还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA)或其任意组合。
所述存储器601用于存储程序,所述处理器602可以调用存储601中存储的程序,用于执行如下步骤:
获取第一目标节点集合中各个节点的热度,所述第一节点是所述多个节点中的任意一个节点,所述第一目标节点集合包括所述多个节点中的至少一个节点;
根据所述热度从所述第一目标节点集合中确定出第二节点;
向所述第二节点发送同步区块请求,所述同步区块请求中携带了区块标识,所述同步区块请求用于指示所述第二节点获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。
进一步地,所述处理器602还用于:
接收所述第一目标节点集合中第三节点发送的心跳包,所述心跳包包括所述第三节点在预设时长内被访问的次数、对外提供的区块数据量和节点的签名确认信息,所述第三节点是所述第一目标节点集合中的任意一个节点;
根据所述心跳包更新所述第三节点的热度。
进一步地,所述处理器602根据所述热度从所述第一目标节点集合中确定出第二节点时,具体用于:
根据所述热度从所述第一目标节点集合中确定出当前热度最低的第二节点。
本发明实施例,通过获取第一目标节点集合中各个节点的热度,并根据所述热度从所述第一目标节点集合中确定出第二节点,以向所述第二节点发送同步区块请求,以使第二节点可以根据所述同步区块请求中携带的区块标识获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。通过选取热度较低的节点来获取同步区块,可以提高区块同步的效率和灵活性,提升网络流量的利用率。
请参见图7,图7是本发明实施例提供的另一种节点的结构示意图,所述节点与前述第二节点对应相同,具体的,所述节点包括:存储器701、处理器702。
在一种实施例中,所述节点还包括数据接口703,所述数据接口703,用于传递节点和其他设备之间的数据信息。
所述存储器701可以包括易失性存储器(volatile memory);存储器701也可以包括非易失性存储器(non-volatile memory);存储器701还可以包括上述种类的存储器的组合。所述处理器702可以是中央处理器(central processing unit,CPU)。所述处理器702还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA)或其任意组合。
所述存储器701用于存储程序,所述处理器702可以调用存储701中存储的程序,用于执行如下步骤:
接收第一节点发送的同步区块请求,所述同步区块请求中携带了区块标识,所述第一节点是所述多个节点中的任意一个节点,所述第二节点是所述第一节点根据热度从第一目标节点集合中确定出来的,所述第一目标节点集合包括所述多个节点中的至少一个节点;
响应所述同步区块请求获取区块链中与所述区块标识对应目标区块;
将所述目标区块发送给所述第一节点。
进一步地,所述处理器702响应所述同步区块请求获取区块链中与所述区块标识对应目标区块之前,还用于:
获取所述第二节点的热度;
若所述第二节点的热度指示所述第二节点的热度未达到预设热度阈值,则执行响应所述同步区块请求获取区块链中与所述区块标识对应目标区块的步骤。
进一步地,所述处理器702还用于:
若所述第二节点的热度指示所述第二节点的热度达到所述预设热度阈值,则从第二目标节点集合中确定出当前热度最低的第四节点;
向所述第一节点发送所述第四节点的标识信息,以使得所述第一节点根据所述第四节点的标识信息向所述第四节点发送所述同步区块请求。
进一步地,所述处理器702将所述目标区块发送给所述第一节点之后,还用于:
接收所述第一节点在收到所述目标区块后发送的签名确认信息;
向所述第一节点发送心跳包,所述心跳包包括所述第二节点在预设时长内被访问的次数、对外提供的区块数据量和所述第一节点的签名确认信息,以使得所述第一节点根据所述心跳包更新所述第二节点的热度。
本发明实施例,通过接收第一节点发送的同步区块请求,并响应所述同步区块请求获取区块链中与所述同步区块请求中携带的区块标识对应目标区块,从而将所述目标区块发送给所述第一节点。通过这种实施方式,有助于提高区块同步的效率和灵活性,以及提升网络流量的利用率。
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明图2或图3所对应实施例中描述的方法,也可实现图4或图5述本发明所对应实施例的装置,在此不再赘述。
所述计算机可读存储介质可以是前述任一实施例所述的设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述服务器所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明的部分实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (9)
1.一种区块同步方法,其特征在于,应用于区块链网络,所述区块链网络中包括多个节点,所述方法包括:
第一节点获取第一目标节点集合中各个节点的热度,所述第一节点是所述多个节点中的任意一个节点,所述第一目标节点集合包括所述多个节点中的至少一个节点;
所述第一节点接收所述第一目标节点集合中第三节点发送的心跳包,所述心跳包包括所述第三节点在预设时长内被访问的次数、对外提供的区块数据量和节点的签名确认信息,所述第三节点是所述第一目标节点集合中的任意一个节点;
所述第一节点根据所述心跳包更新所述第三节点的热度;
所述第一节点根据所述热度从所述第一目标节点集合中确定出第二节点;
所述第一节点向所述第二节点发送同步区块请求,所述同步区块请求中携带了区块标识,所述同步区块请求用于指示所述第二节点获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。
2.根据权利要求1所述的方法,其特征在于,所述第一节点根据所述热度从所述第一目标节点集合中确定出第二节点,包括:
所述第一节点根据所述热度从所述第一目标节点集合中确定出当前热度最低的第二节点。
3.一种区块同步方法,其特征在于,应用于区块链网络,所述区块链网络中包括多个节点,所述方法包括:
第二节点接收第一节点发送的同步区块请求,所述同步区块请求中携带了区块标识,所述第一节点是所述多个节点中的任意一个节点,所述第二节点是所述第一节点根据热度从第一目标节点集合中确定出来的,所述第一目标节点集合包括所述多个节点中的至少一个节点;
所述第二节点响应所述同步区块请求获取区块链中与所述区块标识对应目标区块;
所述第二节点将所述目标区块发送给所述第一节点;
所述第二节点接收所述第一节点在收到所述目标区块后发送的签名确认信息;
所述第二节点向所述第一节点发送心跳包,所述心跳包包括所述第二节点在预设时长内被访问的次数、对外提供的区块数据量和所述第一节点的签名确认信息,以使得所述第一节点根据所述心跳包更新所述第二节点的热度。
4.根据权利要求3所述的方法,其特征在于,所述第二节点响应所述同步区块请求获取区块链中与所述区块标识对应目标区块之前,所述方法还包括:
所述第二节点获取所述第二节点的热度;
若所述第二节点的热度指示所述第二节点的热度未达到预设热度阈值,则所述第二节点执行响应所述同步区块请求获取区块链中与所述区块标识对应目标区块的步骤。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述第二节点的热度指示所述第二节点的热度达到所述预设热度阈值,则所述第二节点从第二目标节点集合中确定出当前热度最低的第四节点;
所述第二节点向所述第一节点发送所述第四节点的标识信息,以使得所述第一节点根据所述第四节点的标识信息向所述第四节点发送所述同步区块请求。
6.一种区块同步装置,其特征在于,应用于区块链网络,所述区块链网络中包括多个节点,所述装置包括:
第一获取模块,用于第一节点获取第一目标节点集合中各个节点的热度,所述第一节点是所述多个节点中的任意一个节点,所述第一目标节点集合包括所述多个节点中的至少一个节点;
所述第一获取模块还用于:接收所述第一目标节点集合中第三节点发送的心跳包,所述心跳包包括所述第三节点在预设时长内被访问的次数、对外提供的区块数据量和节点的签名确认信息,所述第三节点是所述第一目标节点集合中的任意一个节点;根据所述心跳包更新所述第三节点的热度;
确定模块,用于所述第一节点根据所述热度从所述第一目标节点集合中确定出第二节点;
第一发送模块,用于所述第一节点向所述第二节点发送同步区块请求,所述同步区块请求中携带了区块标识,所述同步区块请求用于指示所述第二节点获取区块链中与所述区块标识对应目标区块,并将所述目标区块发送给所述第一节点。
7.一种区块同步装置,其特征在于,应用于区块链网络,所述区块链网络中包括多个节点,所述装置包括:
接收模块,用于第二节点接收第一节点发送的同步区块请求,所述同步区块请求中携带了区块标识,所述第一节点是所述多个节点中的任意一个节点,所述第二节点是所述第一节点根据热度从第一目标节点集合中确定出来的,所述第一目标节点集合包括所述多个节点中的至少一个节点;
第二获取模块,用于所述第二节点响应所述同步区块请求获取区块链中与所述区块标识对应目标区块;
第二发送模块,用于所述第二节点将所述目标区块发送给所述第一节点;接收所述第一节点在收到所述目标区块后发送的签名确认信息;向所述第一节点发送心跳包,所述心跳包包括所述第二节点在预设时长内被访问的次数、对外提供的区块数据量和所述第一节点的签名确认信息,以使得所述第一节点根据所述心跳包更新所述第二节点的热度。
8.一种区块链网络的节点,其特征在于,所述节点包括处理器、存储器以及数据接口,所述数据接口用于传递节点和其他设备之间的数据信息,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行如权利要求1-5任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有程序指令,该程序指令被执行时,用于实现如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911124322.6A CN110888892B (zh) | 2019-11-15 | 2019-11-15 | 一种区块同步方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911124322.6A CN110888892B (zh) | 2019-11-15 | 2019-11-15 | 一种区块同步方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888892A CN110888892A (zh) | 2020-03-17 |
CN110888892B true CN110888892B (zh) | 2023-06-16 |
Family
ID=69747717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911124322.6A Active CN110888892B (zh) | 2019-11-15 | 2019-11-15 | 一种区块同步方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888892B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259130B (zh) * | 2021-06-21 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置、设备以及介质 |
CN114048270B (zh) * | 2022-01-14 | 2022-05-13 | 北京大学深圳研究生院 | 区块链数据同步的方法和计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580447A (zh) * | 2014-12-29 | 2015-04-29 | 中国科学院计算机网络信息中心 | 一种基于访问热度的时空数据服务调度方法 |
WO2018119585A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 区块链的权限控制方法、装置、系统及节点设备 |
CN109960946A (zh) * | 2019-03-29 | 2019-07-02 | 百度在线网络技术(北京)有限公司 | 基于区块链的数据热度确定方法、装置、设备及介质 |
KR20190089506A (ko) * | 2018-01-23 | 2019-07-31 | 박동화 | 블록체인상에서 공유 분산장부와 외부 저장장치에 정보를 분리저장하여 구현한 안전한 전자계약시스템 |
CN110365768A (zh) * | 2019-07-15 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 分布式系统的数据同步方法、装置、介质、电子设备 |
-
2019
- 2019-11-15 CN CN201911124322.6A patent/CN110888892B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580447A (zh) * | 2014-12-29 | 2015-04-29 | 中国科学院计算机网络信息中心 | 一种基于访问热度的时空数据服务调度方法 |
WO2018119585A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 区块链的权限控制方法、装置、系统及节点设备 |
KR20190089506A (ko) * | 2018-01-23 | 2019-07-31 | 박동화 | 블록체인상에서 공유 분산장부와 외부 저장장치에 정보를 분리저장하여 구현한 안전한 전자계약시스템 |
CN109960946A (zh) * | 2019-03-29 | 2019-07-02 | 百度在线网络技术(北京)有限公司 | 基于区块链的数据热度确定方法、装置、设备及介质 |
CN110365768A (zh) * | 2019-07-15 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 分布式系统的数据同步方法、装置、介质、电子设备 |
Non-Patent Citations (2)
Title |
---|
Sho Nanao et al.Performance analysis of data block synchronization mechanism in coolstreaming.《QTNA '10: Proceedings of the 5th International Conference on Queueing Theory and Network Applications》.2010,第53-58页. * |
基于电商平台的区块链状态同步问题研究;毛宁 等;《现代计算机(专业版)》;第2019年卷(第06期);第7-11页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110888892A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
US10291482B2 (en) | ECU for transmitting large data in HiL test environment, system including the same and method thereof | |
CN110995513B (zh) | 物联网系统中的数据发送、接收方法、物联网设备及平台 | |
CN110597918B (zh) | 一种账户管理方法、装置及计算机可读存储介质 | |
US10469620B2 (en) | Method for transferring a new software version to at least one electricity meter via a communication network | |
CN110888892B (zh) | 一种区块同步方法、装置及存储介质 | |
JP6509367B2 (ja) | データ処理方法、装置、及びデバイス | |
EP3174318A1 (en) | Method for realizing resource attribute notification, and common service entity | |
CN105871963B (zh) | 资源操作请求的处理方法及装置 | |
CN112202877A (zh) | 网关联动方法、网关、云服务器及用户终端 | |
EP3319346A1 (en) | Method and apparatus for implementing member resource processing | |
US10637748B2 (en) | Method and apparatus for establishing interface between VNFMS, and system | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
CN111083016B (zh) | 一种轮询表处理方法及装置、存储介质和设备 | |
US12079201B2 (en) | Blockchain-based data storage method, related device and storage medium | |
US11134412B2 (en) | Wireless communication device, wireless communication method and non-transitory computer readable medium | |
CN111124316A (zh) | 存储空间的共享方法和装置及计算机可读存储介质 | |
EP3174322A1 (en) | Method for deleting notification resource, and common service entity | |
CN111464395B (zh) | 一种创建区块链的方法、装置及可读存储介质 | |
CN114189384B (zh) | 业务处理方法、装置、设备及存储介质 | |
CN110572857A (zh) | 网络连接处理方法和装置 | |
CN114173396B (zh) | 终端联网时间的确定方法和装置、电子设备和存储介质 | |
CN113660353B (zh) | 基于蓝牙Mesh的Provisioner地址管理的方法、装置、设备和介质 | |
CN113760519B (zh) | 分布式事务处理方法、装置、系统和电子设备 | |
CN107563942B (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 |