CN112054878B - 基于区块链的数据传输的方法、装置、设备及存储介质 - Google Patents
基于区块链的数据传输的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112054878B CN112054878B CN202010830471.0A CN202010830471A CN112054878B CN 112054878 B CN112054878 B CN 112054878B CN 202010830471 A CN202010830471 A CN 202010830471A CN 112054878 B CN112054878 B CN 112054878B
- Authority
- CN
- China
- Prior art keywords
- node
- message
- source node
- state information
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
- H04L1/0017—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement
- H04L1/0018—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement based on latency requirement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种基于区块链的数据传输的方法、装置、设备及存储介质。应用于区块链***,其中区块链***包括多个节点,多个节点中的每个节点存储有多个节点中每个节点的状态信息,该状态信息包括网络距离值、在线稳定值和失败率;多个节点中的源节点根据状态信息确定将消息传输至目标节点的消息通道;源节点通过该消息通道向目标节点发送消息。本发明实施例解决了区块链进行数据传输的过程中存在数据传输效率较低的问题,提高了数据传输的效率。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于区块链的数据传输的方法、装置、设备及存储介质。
背景技术
区块链是一种多节点按照一定的协议规则,通过某一共识机制使所有参与共识的区块链节点达成一致的一种分布式账本技术。但无论是公有链还是许可链,区块链网络的工作都需要基于节点之间的数据传输来进行。
目前,区块链网络节点间数据传输的普遍方式是采用广播的形式,比如对交易、共识投票进行广播来实现数据传输。
但是随着区块链技术的发展,区块链***往往存在多种类型的节点,且很多场景下需要某一节点与***中的另一单一节点进行通信,通过广播的方式进行点对点通信,会将数据发送到不需要该数据的节点上,造成冗余通信,从而加重各节点的通信负担,降低了***数据传输的效率。
因此,目前基于区块链进行数据传输的过程中存在数据传输效率较低的问题。
发明内容
本发明实施例提供了一种基于区块链的数据传输的方法、装置、设备及存储介质,解决了区块链的数据传输的方法中存在数据传输效率较低的问题,提高了区块链中数据传输的效率。
为了解决上述技术问题,本发明:
第一方面,提供了一种基于区块链的数据传输的方法,该方法应用于区块链***,区块链***包括多个节点,多个节点中的每个节点存储有多个节点中每个节点的状态信息,状态信息包括网络距离值、在线稳定值和失败率;该方法包括:
多个节点中的源节点根据状态信息确定将消息传输至目标节点的消息通道;
源节点通过消息通道向目标节点发送消息;
其中,网络距离值是区块链***中节点与相邻节点之间的网络通信距离;在线稳定值是区块链***中节点在预设时间段内离线的次数;失败率是区块链***中节点在预设时间段内消息传输失败的次数。
在第一方面的一些实现方式中,多个节点中的源节点根据状态信息确定将消息传输至目标节点的消息通道,包括:
源节点根据状态信息、源节点和目标节点,采用最短路径算法确定消息通道。
在第一方面的一些实现方式中,该方法还包括:
源节点获取第一节点的状态信息,其中,第一节点是与源节点相邻的节点;
源节点根据第一节点的状态信息更新源节点存储的状态信息。
在第一方面的一些实现方式中,当源节点通过消息通道向目标节点传输消息时,启动超时定时器,以用于记录目标节点接收到消息时向源节点传输反馈信息的时间;
当源节点在超时定时器设置的预设时间内未接收到反馈信息时,源节点通过消息通道向目标节点重新发送消息。
在第一方面的一些实现方式中,当源节点接收到消息时,确定源节点是否建立将消息传输至目标节点的消息通道;
当源节点未建立消息通道时,源节点根据状态信息确定将消息传输至目标节点的消息通道。
第二方面,提供了一种基于区块链的数据传输的装置,应用于区块链***,该区块链***包括多个节点,多个节点中的每个节点存储有多个节点中每个节点的状态信息,状态信息包括网络距离值、在线稳定值和失败率;该装置包括:
处理模块,用于多个节点中的源节点根据状态信息确定将消息传输至目标节点的消息通道;
发送模块,用于源节点通过消息通道向目标节点发送消息;
其中,网络距离值是区块链***中节点与相邻节点之间的网络通信距离;在线稳定值是区块链***中节点在预设时间段内离线的次数;失败率是区块链***中节点在预设时间段内消息传输失败的次数。
在第二方面的一些实现方式中,处理模块,还用于源节点根据状态信息、源节点和目标节点,采用最短路径算法确定消息通道。
在第二方面的一些实现方式中,该装置还包括接收模块,
接收模块,用于源节点获取第一节点的状态信息,其中,第一节点是与源节点相邻的节点;
处理模块,还用于源节点根据第一节点的状态信息更新源节点存储的状态信息。
在第二方面的一些实现方式中,处理模块,还用于当源节点通过消息通道向目标节点传输消息时,启动超时定时器,以用于记录目标节点接收到消息时通过消息通道向源节点传输反馈信息的时间;
发送模块,还用于当源节点在超时定时器设置的预设时间内未接收到反馈信息时,源节点通过消息通道向目标节点重新发送消息。
在第二方面的一些实现方式中,处理模块,还用于当源节点接收到消息时,确定源节点是否建立将消息传输至目标节点的消息通道;
处理模块,还用于当源节点未建立消息通道时,源节点根据状态信息确定将消息传输至目标节点的消息通道。
第三方面,提供了一种电子设备,该电子设备包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现第一方面,以及第一方面的一些实现方式中基于区块链的数据传输的方法。
第四方面,提供了一种计算机存储介质,该计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现第一方面,以及第一方面的一些实现方式中基于区块链的数据传输的方法。
本发明实施例提供了一种基于区块链的数据传输的方法、装置、设备及存储介质。该区块链***包括多个节点,多个节点中的每个节点存储有所述多个节点中每个节点的状态信息,该状态信息包括网络距离值、在线稳定值和失败率。多个节点中的源节点根据所述状态信息确定将消息传输至目标节点的消息通道;之后源节点通过该消息通道向目标节点发送上述消息,完成数据的传输过程;其中,所述网络距离值是区块链***中节点与相邻节点之间的网络通信距离;所述在线稳定值是区块链***中节点在预设时间段内离线的次数;所述失败率是区块链***中节点预设时间段内消息传输失败的次数。因为本发明实施例根据包括网络距离值、在线稳定值和失败率的节点的状态信息确定消息通道,所以在确定该消息通道的过程中考虑了各个节点的状态,使得该消息通道能够避开负载过重及频繁离线的节点,提高了区块链中数据传输的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于区块链的数据传输的方法的流程示意图;
图2是本发明实施例提供的一种基于区块链的数据传输的装置的结构示意图;
图3是本发明实施例提供的一种计算设备的结构图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
区块链是一种多节点按照一定的协议规则,通过某一共识机制使所有参与共识的区块链节点达成一致的一种分布式账本技术。区块链节点与区块链节点通过互相连接组成区块链网络,区块链网络拓扑是不断变化的,节点可动态的加入网络或退出网络。无论是公有链还是许可链,区块链网络的工作都需要在节点之间互相通信。目前,区块链网络节点间消息通信的普遍方式是采用广播的形式,比如对交易、共识投票的广播等,或者是直接与相邻节点进行消息通信,比如区块链网络会通过与直连邻节点交互进而获取邻节点的连接列表信息。随着今后区块链技术的发展及各种应用的不同需求,需要区块链网络有更灵活、可靠的多节点间消息通信方式以适应不同的应用需求。
但是在现有的依赖广播进行通信的方式中,如果通过广播的方式进行点对点的通信,则会将消息发送到不需要该消息的节点上,造成冗余通信,进而加重各节点的通信负担,降低***的效率。
因此,在现有的基于区块链进行数据传输的过程中存在数据传输效率较低的问题。
为了解决目前的技术方案中存在的数据传输效率较低的问题,本发明实施例应用于区块链***,提供了一种基于区块链的数据传输的方法、装置、设备及存储介质。该区块链***包括多个节点,多个节点中的每个节点存储有多个节点中每个节点的状态信息,该状态信息包括网络距离值、在线稳定值和失败率。多个节点中的源节点根据状态信息确定将消息传输至目标节点的消息通道;之后源节点通过该消息通道向目标节点发送上述消息;其中,所述网络距离值是区块链***中节点与相邻节点之间的网络通信距离;所述在线稳定值是区块链***中节点在预设时间段内离线的次数;所述失败率是区块链***中节点在预设时间段内在某一消息通道传输失败或者超时的次数。因为本发明实施例根据包括网络距离值、在线稳定值和失败率的节点的状态信息确定消息通道,所以在确定该消息通道的过程中考虑了各个节点的状态,使得确定的该消息通道能够避开负载过重及频繁离线的节点,提高了区块链中数据传输的效率。
本发明实施例提供的一种基于区块链的数据传输的方法应用于区块链***,且该区块链***中包括有多个节点。
下面结合附图对本发明实施例提供的技术方案进行描述。
图1是本发明实施例提供的一种基于区块链的数据传输的方法的流程示意图。该方法的执行主体可以为组成区块链***的节点。
如图1所示,基于区块链的数据传输的方法可以包括:
S101:多个节点中的源节点根据状态信息确定将消息传输至目标节点的消息通道。
其中,该消息也可以称为待传输的数据或者待传输的消息。
具体的,多个节点中的每个节点都可以存储有多个节点中每个节点的状态信息。该状态信息可以包括网络距离值、在线稳定值和失败率。此外,由区块链多个节点中每个节点的状态信息组成的列表或者集合可以称为全网状态信息,也就是说,区块链中的每个节点都可以维护一个全网状态信息。
对于网络距离值来说,是指区块链***中任意一个节点与相邻节点之间的网络通信距离,因此网络距离值可以反映节点之间的网络带宽、节点负载的情况。
对于在线稳定值来说,是指区块链***中节点在预设时间段内离线的次数,因此在线稳定值可以反映一个节点在区块链网络中的在线稳定性的度量。
对于失败率来说,是指区块链***中节点在预设时间段内在某一消息通道传输失败或者超时的次数,因此该失败率可以反映某一消息通道传输效率的度量。
可选的,在一个实施例中,在确定该消息通道的过程中,源节点可以根据状态信息、源节点和目标节点,采用最短路径算法计算得到传输路径,之后,再根据该传输路径确定消息通道。在该实施例中,源节点是指接收到待传输的消息的节点,因为区块链***中任意一个节点都可以产生待传输的消息和/或接收待传输的消息,因此,区块链***中任意一个节点都可以作为源节点。
源节点可以根据源节点与目标节点,标识消息通道ChannelId,并依据最短路径算法选取最佳的传输路径,并将该最佳消息通道路径作为传输路径path。通过最短路径算法选取最佳消息通道路径的过程,是建立对区块链网络整体的评估机制以选择最佳的传输路径的过程,因此可以提高***整体的传输效率,平衡节点的负载。
源节点在获取传输路径path之后,开始建立消息通道。在建立该消息通道的过程中,源节点可以通过该传输路径的中间节点向目标节点发送建立通道消息CreateChannel<src,dst,path,E>。其中,src表示源节点,dst表示目标节点,path表示路径信息,E表示用于密钥协商的信息。中间节点收到该建立通道消息后,会维护该消息通道的上一跳节点以及下一跳节点,并将建立通道消息发往下一跳节点直至目标节点收到CreateChannel后计算共享密钥并向源节点返回通道建立确认消息CreateChannelAck<src,dst,E>。源节点在收到CreateChannelAck后会计算双方的共享密钥,计算完该共享密钥之后,标志着消息通道建立成功。
具体的,在计算该共享密钥的过程中,源节点与目标节点会握手协商密钥。握手协商密钥的过程中源节点与目标节点使用非对称加密的方式,根据用于密钥协商的信息E经过协商计算,得到对称加密所需的共享密钥,以用于后续源节点通过该共享密钥对待传输的数据进行对称加密,并将对称加密后的数据传输至目标节点。因为通过非对称加密的方式确定的共享密钥只有消息通道两端的节点即源节点和目标节点知晓,所以中间节点无法获知传输的数据的内容,满足两区块链网络节点之间进行隐私消息通信的需求,实现了数据传输的隐私性。
在一个实施例中,传输路径也可以只包括源节点和目标节点,因此中间节点可以不存在。
在一种实施例中,该消息通道设计为双向通道。源节点与目标节点在该消息通道中其实是相对而言的,当节点处于发送消息的状态时可以称为是源节点,当节点处于接收消息的状态时可以称为目标节点。该双向通道的通道身份证件(Identity document,ID)可以为ChannelId<N1,N2>,其中,N1可以为两端节点中ID的值小的节点,N2可以为两端节点中ID的值大的节点。因此,“下一跳”可以定义为N1->N2,“上一跳”可以定义为N2->N1。所以在发送消息时可以根据目标节点ID确定走消息通道的“上一跳”方向还是“下一跳”方向。
在建立消息通道之后,源节点便可以通过该消息通道向目标节点发送数据,即S102,从而实现数据传输。
S102:源节点通过消息通道向目标节点发送消息。
在源节点根据建立的消息通道向目标节点发送消息时,为了保证消息可靠的传输,可以使用超时定时器记录源节点从发出消息到收到目标节点的反馈信息的时间来对传输进行监控。因为目标节点在收到消息后会返回确认字符(acknowledgement character,Ack),即反馈信息,所以该超时定时器可以记录目标节点接收到该消息时通过消息通道向源节点传输反馈信息的时间。当源节点在超时定时器设置的预设时间内未接收到反馈信息时,即,源节点没有收到Ack,会触发超时,之后源节点可以通过已经确定的消息通道按指数退避算法向目标节点重新发送上述消息,直到目标节点成功返回反馈信息或超出重发次数,因此可以实现可靠传输上述消息。
此外,上述消息可以称之为待传输的数据,在一个实施例中,为了实现数据传输的隐私性,源节点可以通过S101中协商的共享密钥对待传输的数据进行对称加密,并将对称加密后的数据传输至目标节点。目标节点会根据S101中协商的共享密钥对对称加密后的数据进行解密,获取上述消息。因为通过非对称加密的方式确定的共享密钥只有消息通道两端的节点知晓,所以使得中间节点无法对对称加密后的消息进行解密,从而无法获知传输的内容,满足两区块链网络节点之间进行隐私消息通信的需求,实现了数据传输的隐私性。
在一个包括步骤1至步骤9的具体实施例中,示出了源节点从接收到消息到建立消息通道,并通过该消息通道传输数据的详细过程。具体可以包括,
步骤1,在源节点N1启动后,可以初始化其维护的全网状态信息表,并可以与邻节点进行push-pull操作拉取邻节点的全网状态信息表并进行合并,该维护可以指存储。
步骤2,源节点定时与邻节点进行全网状态信息表的合并,逐步达成收敛,其中,达到收敛是全网状态信息表中各个节点的状态信息逐渐更新的表现。
步骤3,源节点N1收到需要传输到目标节点N2的消息Nsg<N2,data>后,首先会查本地节点是否已经建立有通往N2的消息通道CHannelId<N1,N2>,如果没有,则根据最短路径算法,计算传输路径path,发送建立消息通道消息CreateChannel<N1,N2,path,E>。其中,Msg<N2,data>可以称为待传输的消息,在Msg<N2,data>中,N2为目标节点,data为待传输的消息中的数据。
步骤4,传输路径path的中间节点,在收到建立消息通道消息后,在该节点维护该通道的“下一跳”及“上一跳”信息,并依据传输路径path发往下一跳节点,直到发送至目标节点。
步骤5,目标节点收到后,生成密钥信息,并向源节点发送通道确认消息CreateChannelAck<N2,N1,E>,表示同意建立消息通道,并经过中间节点转发到达节点N1。
步骤6,源节点收到CreateChannelAck后,协商密钥,消息通道建立完成,之后依据步骤3中收到的待传输消息Msg<N2,data>构造待传输的新消息ChannelMsg<MsgId,N1,N2,E(data)>,启动超时定时器并将该新消息发往消息通道的下一跳节点。其中,MsgId即为该消息的唯一分布式ID,N1表示消息的源节点,N2表示消息的目标节点,E(data)表示加密后的数据。
步骤7,消息通道的中间节点收到新消息ChannelMsg<MsgId,N1,N2,E(data)>后,依次转发给目标节点。
步骤8,目标节点N2收到新消息后,向N1返回确认信息ChannelMsgAck<MsgId,N2,N1>。
步骤9,源节点N1收到后,消息发送成功,注销超时定时器。
至此,数据传输完毕。
本发明实施例中提供的基于区块链的数据传输的方法,应用于区块链***,该区块链***包括多个节点,多个节点中的每个节点存储有所述多个节点中每个节点的状态信息,状态信息包括网络距离值、在线稳定值和失败率。多个节点中的源节点根据状态信息并按照设计的路径选择算法确定将消息安全传输至目标节点的消息通道;之后源节点对该消息进行加密然后通过该消息通道向目标节点发送上述加密后的消息,目标节点收到消息后,解密并返回确认信息。因为本发明实施例根据包括网络距离值、在线稳定值和失败率的节点的状态信息确定消息通道,所以在确定该消息通道的过程中考虑了各个节点的状态,使得该消息通道能够避开负载过重及频繁离线的节点,提高了区块链中数据传输的效率。
可选的,在一个实施例中,区块链***中的任意一个还可以对每个节点的状态信息进行获取以生成全网状态信息,用于S101中源节点根据全网状态信息中的节点的状态信息确定消息通道。
由区块链多个节点中每个节点的状态信息组成的列表或者集合可以称为全网状态信息。该全网状态信息可表示为Map(N,Set<N′,V>,Alive,Failure,Version),其中,Map表示全网状态信息的列表,N表示区块链***中任意一个节点,Set表示该任意一个节点的邻节点的集合,N′表示邻节点,V表示权值,Alive表示在线稳定值,Failure表示失败率。
区块链***中的每个连接都可以表示为(N,N′,V),即,表示节点N连接到节点N′,节点N与节点N′之间的权值为V。权值起始状态可以默认初始化为1。权值的计算公式可以如公式1所示。
Vnew=δ·Vold+(1-δ)·(α·Distance+β·Alive+γ·Failure) (1)
其中,Vnew为更新后的权值,Vold为更新前的权值,δ为平滑因子,Distance、Alive、Failure分别表示网络距离值、在线稳定值、失败率三个影响区块链网络传输的变量,其系数α、β、γ为各自对应的权重,具体值可根据实际网络的不同而根据需要调整,其中,δ的推荐值可以为0.7。
源节点获取状态信息的过程可以是指获取其他节点的网络距离值、在线稳定值和失败率的过程。
因为区块链***中的每个节点需定时随机选择K个邻节点与之交互各自全网状态信息,其中,与邻节点进行交互的每个节点中的任意一个节点可以称为本地节点。因此,具体交互方式可以为本地节点将本地节点的全网状态信息以及当前时间戳值T1构造消息Msg<Map(N,Set<N′,V>,Alive,Failure,Version),T1>发送给邻节点,其中该时间戳T1的精度可以为毫秒ms级别。然后,邻节点在收到附上时间戳值T1的全网状态信息Msg<Map(N,Set<N′,V>,Alive,Failure,Version),T1>后与其进行状态信息合并,并返回合并后的新的状态信息Msg′,本地节点Ni收到邻节点Nk返回的新的状态信息后,获取当前时间T2与发送时时间戳T1的差值Distance=T2-T1作为新的网络距离值,然后可按权值计算公式Vnew=δ·Vold+(1-δ)·(α·Distance+β·Alive+γ·Failure)更新全网状态信息表中对应项(Ni,Nk,Vnew)的权值信息,并将全网状态信息表中本节点Ni对应项的版本号加1。
获取在线稳定值的过程,具体可以为当区块链***中的一个节点检测到一个邻节点不在线时,该节点将状态信息中不在线的邻节点的ID的Alive值加1,以此来实现对节点的在线稳定值的获取。如果该Alive值发生变化,那么可以更新该节点维护的全网状态信息表中该节点连接列表中与Alive值变化的邻节点有边的权值。
获取失败率的过程,具体可以为每当区块链***的消息通道发送消息失败或者超时时,可以将消息通道导致消息发送失败的节点的Failure值加1,以此来实现对节点的失败率进行获取。对应的,为了清除历史失败率对现有失败率评估的影响,区块链***中的每个节点定时24小时对所有节点的Failure值减1,最低减到0为止。
在一个实施例中,上述的其他节点可以包括第一节点,在源节点获取第一节点的状态信息之后,可以根据第一节点的状态信息更新源节点存储的状态信息,其中,第一节点是指该源节点的邻节点,即,与源节点相邻的节点。
具体的,为了使节点存储的全网状态信息能够实现更新,因此需要全网中的所有节点都定时与随机选择的k个邻节点进行状态交互。在这个过程中,需要进行节点间的状态合并,具体合并规则如下:本地节点当前状态信息为Map(N,Set<N′,V>,Alive,Failure,Version),收到邻接节点的状态信息之后,遍历节点/>中的每一节点项Ni,以进行状态合并。
如果在本地Map表中没有对应的节点项Ni,则在本地Map表中新增该节点项Ni,并从中复制该节点项Ni的所有状态值。如果在本地Map中有对应项Ni,则比较各自的版本号Version值的大小;如果/>则将本地Map表中对应项Ni的状态值更新为/>中对应项的状态值;如果/>则不进行该节点项状态的更新;如果则有可能发生数据冲突,即版本号相同,但各自的状态数据不同,解决数据冲突的方法如下:在状态合并时,在线稳定值Alive合并后为两者的均值失败率Failure合并后为两个的均值/>某一节点的连接节点集合Set<N′,V>取交集进行合并,如果V值不同,合并时也取均值。
本发明实施例中提供的基于区块链的数据传输的方法,应用于区块链***,该区块链***包括多个节点,多个节点中的每个节点存储有所述多个节点中每个节点的状态信息而且可以不断的获取和更新每个节点的状态信息,该状态信息包括网络距离值、在线稳定值和失败率。多个节点中的源节点根据状态信息确定将消息传输至目标节点的消息通道;之后源节点通过该消息通道向目标节点发送上述消息;其中,所述网络距离值是区块链***中节点与相邻节点之间的网络通信距离;所述在线稳定值是区块链***中节点在预设时间段内离线的次数;所述失败率是区块链***中节点预设时间段内在某一消息通道传输失败或者超时的次数。因为本发明实施例根据包括网络距离值、在线稳定值和失败率的节点的状态信息确定消息通道,所以在确定该消息通道的过程中考虑了各个节点的状态,使得该消息通道能够避开负载过重及频繁离线的节点,提高了区块链中数据传输的效率。
可选的,在一个实施例中,当源节点接收到待传输的消息时,源节点可以先确定是否已经建立将该消息传输至目标节点的消息通道。当源节点未建立该消息通道时,源节点可以根据状态信息确定将消息传输至目标节点的消息通道。当源节点已经建立消息通道时,源节点可以根据该消息通道将消息传输至目标节点。
本发明实施例中提供的基于区块链的数据传输的方法,应用于区块链***,该区块链***包括多个节点,多个节点中的每个节点存储有所述多个节点中每个节点的状态信息,该状态信息包括网络距离值、在线稳定值和失败率。多个节点中的源节点先判断是否已经建立消息通道,若未建立该通道,则根据状态信息并按照设计的路径选择算法确定将消息安全传输至目标节点的消息通道;之后源节点对该消息进行加密然后通过该消息通道向目标节点发送上述加密后的消息,目标节点收到消息后,解密并返回确认信息,完成数据的传输过程。因为本发明实施例根据包括网络距离值、在线稳定值和失败率的节点的状态信息确定消息通道,所以在确定该消息通道的过程中考虑了各个节点的状态,使得该消息通道能够避开负载过重及频繁离线的节点,提高了区块链中数据传输的效率。
与图1中基于区块链的数据传输的方法的流程示意图相对应,本发明实施例还提供了一种基于区块链的数据传输的装置。
图2是本发明实施例提供的一种基于区块链的数据传输的装置的结构示意图。如图2所示,货物签收的装置可以包括:处理模块201,发送模块202。
处理模块201,可以用于多个节点中的源节点根据状态信息确定将消息传输至目标节点的消息通道。
发送模块202,可以用于源节点通过消息通道向目标节点发送消息。
其中,网络距离值是区块链***中节点与相邻节点之间的网络通信距离;在线稳定值是区块链***中节点在预设时间段内离线的次数;失败率是指区块链***中节点在预设时间段内在某一消息通道传输失败或者超时的次数。
处理模块201,还可以用于源节点根据状态信息、源节点和目标节点,采用最短路径算法确定消息通道。
处理模块201,还可以用于源节点通过消息通道向目标节点传输消息时,启动超时定时器,以用于记录目标节点接收到消息时通过消息通道向源节点传输反馈信息的时间。
发送模块202,还可以用于当源节点在超时定时器设置的预设时间内未接收到反馈信息时,源节点通过消息通道向目标节点重新发送消息。
可以理解的是,图2所示的基于区块链的数据传输的装置中的各个模块具有实现图1中各个步骤的功能,为简洁描述,在此不再赘述。
本发明实施例中提供的基于区块链的数据传输的装置。应用于区块链***,该区块链***包括多个节点,多个节点中的每个节点存储有所述多个节点中每个节点的状态信息,该状态信息包括网络距离值、在线稳定值和失败率。多个节点中的源节点根据所述状态信息确定将消息传输至目标节点的消息通道;之后源节点通过该消息通道向目标节点发送上述消息;其中,所述网络距离值是区块链***中节点与相邻节点之间的网络通信距离;所述在线稳定值是区块链***中节点在预设时间段内离线的次数;所述失败率是区块链***中节点预设时间段内在某一消息通道传输失败或者超时的次数。因为本发明实施例根据包括网络距离值、在线稳定值和失败率的节点的状态信息确定消息通道,所以在确定该消息通道的过程中考虑了各个节点的状态,使得该消息通道能够避开负载过重及频繁离线的节点,提高了区块链中数据传输的效率。
可选的,在一个实施例中,该装置中还可以包括接收模块,图中未示出;
接收模块,可以用于所述源节点获取第一节点的状态信息,其中,所述第一节点是与所述源节点相邻的节点;
处理模块201,还可以用于所述源节点根据所述第一节点的状态信息更新所述源节点存储的状态信息。
可以理解的是,图2所示的基于区块链的数据传输的装置中的各个模块具有实现图1中各个步骤的功能,为简洁描述,在此不再赘述。
本发明实施例中提供的基于区块链的数据传输的装置。应用于区块链***,该区块链***包括多个节点,多个节点中的每个节点存储有所述多个节点中每个节点的状态信息而且可以不断的获取即更新每个节点的状态信息,该状态信息包括网络距离值、在线稳定值和失败率。多个节点中的源节点根据所述状态信息确定将消息传输至目标节点的消息通道;之后源节点通过该消息通道向目标节点发送上述消息;其中,所述网络距离值是区块链***中节点与相邻节点之间的网络通信距离;所述在线稳定值是区块链***中节点在预设时间段内离线的次数;所述失败率是区块链***中节点预设时间段内在某一消息通道传输失败或者超时的次数。因为本发明实施例根据包括网络距离值、在线稳定值和失败率的节点的状态信息确定消息通道,所以在确定该消息通道的过程中考虑了各个节点的状态,使得该消息通道能够避开负载过重及频繁离线的节点,提高了区块链中数据传输的效率。
可选的,在一个实施例中,处理模块201,还可以用于当源节点接收到消息时,确定源节点是否建立将消息传输至目标节点的消息通道。
处理模块201,还可以用于当源节点未建立消息通道时,源节点根据状态信息确定将消息传输至目标节点的消息通道。
可以理解的是,图2所示的基于区块链的数据传输的装置中的各个模块具有实现图1中各个步骤的功能,为简洁描述,在此不再赘述。
本发明实施例中提供的基于区块链的数据传输的装置。应用于区块链***,该区块链***包括多个节点,多个节点中的每个节点存储有所述多个节点中每个节点的状态信息,该状态信息包括网络距离值、在线稳定值和失败率。多个节点中的源节点先判断是否已经建立消息通道,若未建立该通道,则根据状态信息并按照设计的路径选择算法确定将消息安全传输至目标节点的消息通道;之后源节点对该消息进行加密然后通过该消息通道向目标节点发送上述加密后的消息,目标节点收到消息后,解密并返回确认信息,完成数据的传输过程。因为本发明实施例根据包括网络距离值、在线稳定值和失败率的节点的状态信息确定消息通道,所以在确定该消息通道的过程中考虑了各个节点的状态,使得该消息通道能够避开负载过重及频繁离线的节点,提高了区块链中数据传输的效率。
图3是本发明实施例提供的一种计算设备的硬件架构的结构图。如图3所示,计算设备300包括输入设备301、输入接口302、中央处理器303、存储器304、输出接口305、以及输出设备306。其中,输入接口302、中央处理器303、存储器304、以及输出接口305通过总线310相互连接,输入设备301和输出设备306分别通过输入接口302和输出接口305与总线310连接,进而与计算设备300的其他组件连接。
具体地,输入设备301接收来自外部的输入信息,并通过输入接口302将输入信息传送到中央处理器303;中央处理器303基于存储器304中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器304中,然后通过输出接口305将输出信息传送到输出设备306;输出设备306将输出信息输出到计算设备300的外部供用户使用。
也就是说,图3所示的计算设备也可以被实现为基于区块链的数据传输的设备,该设备可以包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现本发明实施例提供的基于区块链的数据传输的方法。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的基于区块链的数据传输的方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或***。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于区块链的数据传输的方法,其特征在于,应用于区块链***,所述区块链***包括多个节点,所述多个节点中的每个节点存储有根据所述多个节点中每个节点的状态信息生成的全网状态信息,所述状态信息包括网络距离值、在线稳定值和失败率;所述方法包括:
所述多个节点中的源节点获取第一节点的全网状态信息,其中,所述第一节点是与所述源节点相邻的节点;
所述源节点根据所述第一节点的全网状态信息更新所述源节点存储的全网状态信息;
所述源节点根据所述全网状态信息中的每个节点的连接权值确定将消息传输至目标节点的消息通道;
所述源节点通过所述消息通道向目标节点发送所述消息;
其中,所述网络距离值是区块链***中节点与相邻节点之间的网络通信距离;所述在线稳定值是区块链***中节点在预设时间段内离线的次数;所述失败率是区块链***中节点在预设时间段内消息传输失败的次数;
连接权值的通过以下公式获得:
Vnew=δ·Vold+(1-δ)·(α·Distance+β·Alive+γ·Failure)
其中,Vnew为更新后的权值,Vold为更新前的权值,δ为平滑因子,Distance、Alive、Failure分别表示网络距离值、在线稳定值、失败率三个影响区块链网络传输的变量,其系数α、β、γ为各自对应的权重。
2.根据权利要求1所述的方法,其特征在于,所述多个节点中的源节点根据所述状态信息确定将消息传输至目标节点的消息通道,包括:
所述源节点根据所述状态信息、所述源节点和所述目标节点,采用最短路径算法确定所述消息通道。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述源节点通过所述消息通道向所述目标节点传输所述消息时,启动超时定时器,以用于记录所述目标节点接收到所述消息时向所述源节点传输反馈信息的时间;
当所述源节点在超时定时器设置的预设时间内未接收到所述反馈信息时,所述源节点通过所述消息通道向目标节点重新发送所述消息。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述源节点接收到所述消息时,确定所述源节点是否建立将所述消息传输至所述目标节点的消息通道;
当所述源节点未建立所述消息通道时,所述源节点根据所述状态信息确定将消息传输至目标节点的消息通道。
5.一种基于区块链的数据传输的装置,其特征在于,应用于区块链***,所述区块链***包括多个节点,所述多个节点中的每个节点存储有根据所述多个节点中每个节点的状态信息生成的全网状态信息,所述状态信息包括网络距离值、在线稳定值和失败率;所述装置包括:
接收模块,用于所述多个节点中的源节点获取第一节点的全网状态信息,其中,所述第一节点是与所述源节点相邻的节点;
处理模块,用于所述源节点根据所述第一节点的全网状态信息更新所述源节点存储的全网状态信息;还用于所述源节点根据所述全网状态信息中的每个节点的连接权值确定将消息传输至目标节点的消息通道;
发送模块,用于所述源节点通过所述消息通道向目标节点发送所述消息;
其中,所述网络距离值是区块链***中节点与相邻节点之间的网络通信距离;所述在线稳定值是区块链***中节点在预设时间段内离线的次数;所述失败率是区块链***中节点在预设时间段内消息传输失败的次数;
连接权值的通过以下公式获得:
Vnew=δ·Vold+(1-δ)·(α·Distance+β·Alive+γ·Failure)
其中,Vnew为更新后的权值,Vold为更新前的权值,δ为平滑因子,Distance、Alive、Failure分别表示网络距离值、在线稳定值、失败率三个影响区块链网络传输的变量,其系数α、β、γ为各自对应的权重。
6.根据权利要求5所述的装置,其特征在于,
所述处理模块,还用于所述源节点根据所述状态信息、所述源节点和所述目标节点,采用最短路径算法确定所述消息通道。
7.根据权利要求5所述的装置,其特征在于,
所述处理模块,还用于所述源节点通过所述消息通道向所述目标节点传输所述消息时,启动超时定时器,以用于记录所述目标节点接收到所述消息时通过所述消息通道向所述源节点传输反馈信息的时间;
所述发送模块,还用于当所述源节点在超时定时器设置的预设时间内未接收到所述反馈信息时,所述源节点通过所述消息通道向目标节点重新发送所述消息。
8.根据权利要求5所述的装置,其特征在于,
所述处理模块,还用于当所述源节点接收到所述消息时,确定所述源节点是否建立将所述消息传输至所述目标节点的消息通道;
所述处理模块,还用于当所述源节点未建立所述消息通道时,所述源节点根据所述状态信息确定将消息传输至目标节点的消息通道。
9.一种电子设备,其特征在于,所述电子设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-4任意一项所述的基于区块链的数据传输的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-4任意一项所述的基于区块链的数据传输的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010830471.0A CN112054878B (zh) | 2020-08-18 | 2020-08-18 | 基于区块链的数据传输的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010830471.0A CN112054878B (zh) | 2020-08-18 | 2020-08-18 | 基于区块链的数据传输的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112054878A CN112054878A (zh) | 2020-12-08 |
CN112054878B true CN112054878B (zh) | 2023-10-13 |
Family
ID=73600213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010830471.0A Active CN112054878B (zh) | 2020-08-18 | 2020-08-18 | 基于区块链的数据传输的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112054878B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995274B (zh) * | 2021-01-28 | 2023-03-21 | 中央财经大学 | 确定连接节点的方法、装置、设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656784A (zh) * | 2016-10-14 | 2017-05-10 | ***股份有限公司 | 用于区块链网络的数据流传播***及方法 |
CN108683655A (zh) * | 2018-05-08 | 2018-10-19 | 深圳万智联合科技有限公司 | 一种区块链离链数据的安全存储*** |
CN109617759A (zh) * | 2018-12-04 | 2019-04-12 | 中钞***产业发展有限公司杭州区块链技术研究院 | 区块链***稳定性测试方法、装置、设备及存储介质 |
CN109951389A (zh) * | 2019-03-06 | 2019-06-28 | 篱笆墙网络科技有限公司 | 区块链离链数据的存储方法、装置、设备和存储介质 |
CN110458582A (zh) * | 2019-01-29 | 2019-11-15 | 深圳市智税链科技有限公司 | 基于区块链***的业务处理方法、装置、介质及电子设备 |
CN110475232A (zh) * | 2018-05-09 | 2019-11-19 | 厦门本能管家科技有限公司 | 一种基于蓝牙、nfc、airdrop的区块链网络传输方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190199700A1 (en) * | 2017-11-20 | 2019-06-27 | Marc Lauren Abramowitz | System and method for block chain encrypted communication and identification |
-
2020
- 2020-08-18 CN CN202010830471.0A patent/CN112054878B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656784A (zh) * | 2016-10-14 | 2017-05-10 | ***股份有限公司 | 用于区块链网络的数据流传播***及方法 |
CN108683655A (zh) * | 2018-05-08 | 2018-10-19 | 深圳万智联合科技有限公司 | 一种区块链离链数据的安全存储*** |
CN110475232A (zh) * | 2018-05-09 | 2019-11-19 | 厦门本能管家科技有限公司 | 一种基于蓝牙、nfc、airdrop的区块链网络传输方法及*** |
CN109617759A (zh) * | 2018-12-04 | 2019-04-12 | 中钞***产业发展有限公司杭州区块链技术研究院 | 区块链***稳定性测试方法、装置、设备及存储介质 |
CN110458582A (zh) * | 2019-01-29 | 2019-11-15 | 深圳市智税链科技有限公司 | 基于区块链***的业务处理方法、装置、介质及电子设备 |
CN109951389A (zh) * | 2019-03-06 | 2019-06-28 | 篱笆墙网络科技有限公司 | 区块链离链数据的存储方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112054878A (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9843443B2 (en) | Device and method for generating a session key | |
CN111404672B (zh) | 量子密钥分发方法及装置 | |
US20140372812A1 (en) | System and method for quantum key distribution | |
CN113261245B (zh) | 网络链路或节点故障的恢复***和方法 | |
Misra et al. | A unique key sharing protocol among three users using non-commutative group for electronic health record system | |
CN110581763A (zh) | 一种量子密钥服务区块链网络*** | |
US11496290B2 (en) | Blockchain network and finalization method therefor | |
US20120237033A1 (en) | Node, a root node, and a computer readable medium | |
CN112054878B (zh) | 基于区块链的数据传输的方法、装置、设备及存储介质 | |
US20210409408A1 (en) | METHOD AND APPARATUS FOR MoCA NETWORK WITH PROTECTED SET-UP | |
CN107836095A (zh) | 用于在网络中产生秘密或秘钥的方法 | |
Hamouid et al. | Efficient certificateless web-of-trust model for public-key authentication in MANET | |
US7971064B2 (en) | Distributed Rivest Shamir Adleman signature method and signature generation node | |
CN115276976A (zh) | 量子密钥分发方法、装置及电子设备 | |
JP2005182145A (ja) | 通信端末装置の認証方法及び通信端末装置 | |
US11451381B2 (en) | Reaching agreement on a secret value | |
JP2006050377A (ja) | 無線ネットワークシステム | |
CN114422120B (zh) | 信道调制权转移的高维多跳无损隐形传送方法 | |
JP2013144410A (ja) | 画像形成装置、その制御方法、およびそのプログラム | |
US10003470B2 (en) | Method and terminal for transmitting and receiving data | |
JP4757591B2 (ja) | パスワード認証鍵交換装置、システム、方法、及びコンピュータプログラム | |
US9491088B2 (en) | Distributed system and method for sharing capacity in an ad-hoc network | |
Shenets | Authentication in dynamic peer-to-peer networks based on homomorphic secret sharing | |
Wang et al. | Randomness analysis of end-to-end delay in random forwarding networks | |
Kaur et al. | Implementing RSA Algorithm in MANET and Comparison with RSA Digital Signature |
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 |