CN114338699A - 一种基于动态策略的区块链通信方法及系统 - Google Patents
一种基于动态策略的区块链通信方法及系统 Download PDFInfo
- Publication number
- CN114338699A CN114338699A CN202111371606.2A CN202111371606A CN114338699A CN 114338699 A CN114338699 A CN 114338699A CN 202111371606 A CN202111371606 A CN 202111371606A CN 114338699 A CN114338699 A CN 114338699A
- Authority
- CN
- China
- Prior art keywords
- node
- message
- nodes
- signature
- forwarding
- 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.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000004931 aggregating effect Effects 0.000 claims abstract description 17
- 238000001914 filtration Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 10
- 230000002776 aggregation Effects 0.000 description 8
- 238000004220 aggregation Methods 0.000 description 8
- 230000000644 propagated effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于动态策略的区块链通信方法及系统,消息接收端根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;当选出的转发节点数为零,当前消息接收端节点不再进行转播;本发明有效的减少了消息无效广播的数量。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种基于动态策略的区块链通信方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术,并不必然构成现有技术。
作为分布式架构的区块链,其中一个重要问题便是在通信中如何保证信息的一致性。Gossip是一种去中心化的分布式协议,用于实现节点或者进程之间的信息交换,是分布式系统中被广泛使用的一种最终一致性协议。目前诸多区块链如超级账本都用到了Gossip作为网络通信协议,进行交易、区块等消息的传播。Gossip过程是由种子节点发起,当一个种子节点有状态需要更新到网络中的其他节点时,它会随机的选择周围几个节点散播消息,收到消息的节点也会重复该过程,直至最终网络中所有的节点都收到了消息。
发明人发现,Gossip过程中,节点是随机选择周围节点发送消息,而收到消息的节点也会重复该步骤,因此不可避免的存在消息重复发送给同一节点的情况,造成了消息的冗余,增加节点间网络通信压力、节点收发消息处理压力;同时,区块链节点间进行消息通信时,为了保证消息的安全可信,发送节点会对消息进行签名后再发送,接收节点会先验证签名再处理消息,通过签名确保消息来源于可信的节点且没有被篡改,而消息中携带的签名数据会增加网络传输量。
发明内容
为了解决现有技术的不足,本发明提供了一种基于动态策略的区块链通信方法及系统,解决了区块链采用Gossip协议作为网络通信协议时,冗余消息导致的网络通信压力大、节点收发消息处理压力大、网络和计算资源被无用的消息传播过程占用的问题。
为了实现上述目的,本发明采用如下技术方案:
本发明第一方面提供了一种基于动态策略的区块链通信方法,包括以下过程:
消息源节点收到向网络中其它节点广播数据的请求;
消息源节点将数据封装成满足消息通信协议的消息,从邻居节点中随机选择预设个数的节点进行广播;
消息接收端节点收到消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
消息接收端节点选择要转发的节点,将当前消息接收端节点广播过消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
当选出的转发节点数为零,当前消息接收端节点不再进行转播。
进一步的,消息接收端节点选择要转发的节点,包括:
将当前消息接收端节点广播过消息的节点剔除;
将剩余节点分为两部分,第一部分不包含目标信息节点,第二部分是目标信息中的节点;
判断第一部分节点数m是否小于设置的转发数n,如果是进入下一步,否则从第一部分中随机选择n个放入要转发的节点中,完成转发节点的选择;
将第一部分所有节点共m个放入要转发的节点中;
判断第二部分节点个数k是否小于n-m,如果是进入下一步;否则,从第二部分中随机选择n-m个加到要转发的节点中,完成转发节点的选择;
将第二部分所有节点共k个加到要转发的节点中,完成转发节点的选择。
本发明第二方面提供了一种基于动态策略的区块链通信系统,包括:消息源节点和消息接收端节点,各个节点相互连通;
消息源节点收到向网络中其它节点广播数据的请求;
消息源节点将数据封装成满足消息通信协议的消息,从邻居节点中随机选择预设个数的节点进行广播;
消息接收端节点收到消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
当选出的转发节点数为零,当前消息接收端节点不再进行转播。
本发明第三方面提供了一种基于动态策略的区块链通信方法,应用于消息接收端节点;
包括以下过程:
消息接收端节点收到消息源节点的消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
当选出的转发节点数为零,当前消息接收端节点不再进行转播。
本发明第四方面提供了一种区块链节点,包括:数据终端,所述数据终端被配置为:
收到消息源节点的消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
当选出的转发节点数为零,当前消息接收端节点不再进行转播。
与现有技术相比,本发明的有益效果是:
1、本发明通过将消息签名改为全广播路径下所有节点的聚合签名,实现在不增加通信量的前提下,安全可信的让接收方确定的知道有哪些节点已经有该消息,且可防止恶意的发送方节点伪造源头。
2、本发明中,节点收到消息后,根据消息中的签名数据,可以确定的、可信的知道哪些节点已经收到了该消息,为是否继续转播、以及转播时判断哪些节点一定不再需要该消息提供了判定依据,减少消息无效广播数量,让没有该消息的节点尽早收到消息。
3、本发明通过消息中携带的目标信息,进一步大概率的减少消息无效广播的数量,加大向没有该消息的节点广播消息的概率。
4、本发明通过减少消息无效广播的数量,让没有该消息的节点尽早收到消息,可降低节点接收、处理和广播消息的压力,降低计算资源、网络资源占用,加快消息向全网传播的效率,实现快速达到最终一致性,提高区块链网络通信效率。
5、本发明所述区块链网络通信策略是动态的,不受节点数量和网络拓扑结构限制,没有固定的传播路径,每一轮的广播都是随着消息当前传播的状态进行最优策略的选择,具有灵活性和可扩展性,能适应不同的网络状况、连接状态。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例1提供的基于动态策略的区块链通信方法的流程示意图。
图2为本发明实施例1提供的选择转发节点的流程示意图。
图3为本发明实施例1提供的区块链网络拓扑图。
图4为本发明实施例1提供的区块链网络通信消息路径图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例1:
本发明实施例1提供了了一种基于动态策略的区块链通信方法,通过将消息ID与内容分离,消息接收方通过ID进行重复消息的识别与过滤,来减少后面的消息处理过程;通过消息中携带传播路径中所有发送方的聚合签名,使得在不增加消息大小的前提下,让消息接收方可以确定的、安全可信的知道有哪些节点一定已经收到了该消息,在随机选择节点继续传播的时候,一定不选择这些节点,避免了向这些节点再次发送消息造成的冗余;通过消息中携带本次传播的目标信息,使得接收方可以知道哪些节点大概率已经收到该消息,接收方选择要传播的节点时可以优先动态的选择大概率没有该消息的节点,进一步避免消息的冗余。
所述的动态策略是指节点每次在选择转播消息时,会依赖以下三种情况:
(1)当前节点的连接情况;
(2)收到的消息中包含节点签名,已签名的节点不再转播,随机选择其余节点转发消息;
(3)收到的消息中包含目标信息,目标信息表示记录的目标节点大概率已收到消息,优先不向这些节点转播消息。
消息的传播以尽可能减少消息重复转播率为目标进行选择,从而消息的下一转播路径是根据消息的历史转播路径动态选择的,无固定传播路径。
本实施例中,消息包含消息ID和内容两部分内容,消息ID是根据语义提取的能够作为识别重复消息的唯一标识,消息接收方收到消息后,先获取消息ID,判别是否是重复消息,如果是,直接返回,无需对消息内容进行解码及后续的处理。
可以理解的,消息ID也可以是其他自定义的识别编码,本领域技术人员可以根据具体情况设定,这里不再赘述。
消息中携带传播路径中所有发送方的聚合签名,是指节点发送消息时,将本节点收到的该消息的所有签名以及自己的签名聚合后,作为消息的签名,然后选择节点发送,选择节点时不再选择聚合签名中已有的节点,所述的聚合签名具有大小恒定且保证原始签名可验证的特性。
消息中携带本次传播的目标信息,是指发送的消息中附加了本次要广播给哪些节点的信息,接收方收到消息后,通过消息中携带的目标信息,判定这些节点大概率不再需要广播,选择转播节点时优先从剩余的其它节点中选择,直至无其它节点可选时,再选择这些目标信息中包含的节点。
与传统的Gossip协议相比,该方法在节点每次选择节点广播时,可以根据节点当前的连接状态、消息收发情况等信息,动态的进行最优策略的选择,实现相对确定的、大概率的选择没有该消息的节点进行广播,有效的减少消息的重复传播,让没有该消息的节点尽早收到消息,实现了快速达到最终一致性,提高了通信效率,同时减少了计算资源和网络资源的浪费,降低了网络拥堵,降低了消息收发压力。
如图1所示,具体的方法步骤如下:
步骤101:消息源节点收到本节点向网络中其它节点广播数据的请求。
步骤102:消息源节点将数据封装成满足消息通信协议的消息,从邻居节点中随机选择至多n个节点进行广播。其中满足消息通信协议的消息,包含消息ID、消息体、节点签名数据、广播的目标节点ID。
步骤103:消息接收端节点接收消息。消息接收端节点收到消息后,根据消息ID进行判重,对于非重复数据,验证消息签名后,对消息中的数据进行接收处理。
步骤104:消息接收端节点选择要转发的节点。将本节点广播过该消息的节点剔除掉,根据收集到的该消息的签名数据,过滤掉确定已经收到该消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点。
步骤105:判断选出的节点数是否为0,如果为0进入步骤106,否则进入107。
步骤106:将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,向选出的节点转发。
步骤107:当选出的转发节点数等于0,本节点不再进行转播。
步骤104中,选择转发节点,如图2所示,包括:
步骤1041:将本节点广播过该消息的节点剔除掉;
步骤1042:根据收到过的该消息的签名数据,去掉剩余节点中签名包含的节点;
步骤1043:将剩余节点分为两部分,第一部分不包含目标信息节点,第二部分是目标信息中的节点;
步骤1044:判断第一部分节点数m是否小于设置的转发数n,如果是进入步骤1045,否则进入步骤1049;
步骤1045:将第一部分所有节点共m个放入要转发的节点中;
步骤1046:判断第二部分节点个数k是否小于n-m,如果是进入步骤1047,否则进入1048;
步骤1047:将第二部分所有节点共k个加到要转发的节点中,完成转发节点的选择;
步骤1048:从第二部分中随机选择n-m个加到要转发的节点中,完成转发节点的选择;
步骤1049:从第一部分中随机选择n个放入要转发的节点中,完成转发节点的选择。
具体的,提供一种示例:
如图3所示,本示例中,区块链网络由A、B、C、D、E共5个节点构成,被配置为全连接的网络结构,消息通信每轮选择2个节点进行扩散。
如图4所示,该消息传播路径图,仅是其中的一种可行的情况,实际的网络通信路径包含但不限于此,依赖网络状况、连接状况、传播状况。
以下所述的Msg(AggSig[A,D],To[B,C]),用于表示传递的消息,消息中AggSig[A,D]表示消息中携带的各节点签名数据进行聚合后的聚合签名,示例AggSig[A,D]表示消息中携带的签名是节点A的签名和节点D的签名进行聚合后的签名。To[B,C]表示消息要广播给B、C。
节点A收到本节点向网络中节点广播数据的请求,作为消息源节点,随机选择两个节点B、C,广播消息Msg(AggSig[A],To[B,C])。
第①步,B节点收到Msg(AggSig[A],To[B,C]),通过签名排除掉A节点,根据目标信息,优先选择了D、E节点,将自己的签名通过聚合签名方式追加到AggSig[A]上,形成包含A、B的聚合签名AggSig[A,B],广播消息Msg(AggSig[A,B],To[D,E])。
第②步,C节点收到Msg(AggSig[A],To[B,C]),通过签名排除掉A节点,通过目标信息,优先选择了D、E节点广播,将自己的签名通过聚合签名方式追加到AggSig[A]上,形成包含A、C的聚合签名AggSig[A,C],广播消息Msg(AggSig[A,C],To[D,E])。
第③步,D节点收到Msg(AggSig[A,B],To[D,E]),通过签名排除掉A、B节点,只剩C、E节点,选择了C、E节点,将自己的签名通过聚合签名方式追加到AggSig[A,B]上,形成包含A、B、D的聚合签名AggSig[A,B,D],广播消息Msg(AggSig[A,B,D],To[C,E])。
第④步,E节点收到Msg(AggSig[A,B],To[D,E]),通过签名排除掉A、B节点,只剩C、D节点,选择了C、D节点,将自己的签名通过聚合签名方式追加到AggSig[A,B]上,形成包含A、B、E的聚合签名AggSig[A,B,E],广播消息Msg(AggSig[A,B,E],To[C,D])。
第⑤步,D节点收到Msg(AggSig[A,C],To[D,E]),通过签名,排除掉A、B、C节点,只剩E节点,D节点已经给E节点广播过,可转播节点数为0,不再转播。
第⑥步,E节点收到Msg(AggSig[A,C],To[D,E]),通过签名,排除掉A、B、C节点,只剩D节点,E节点已经给D节点广播过,可转播节点数为0,不再转播。
第⑦步,C节点收到Msg(AggSig[A,B,D],To[C,E]),通过签名,排除掉A、B、D节点,只剩E节点,C节点已经给E节点广播过,可转播节点数为0,不再转播。
第⑧步,E节点收到Msg(AggSig[A,B,D],To[C,E]),通过签名,排除掉A、B、C、D节点,可转播节点数为0,不再转播。
第⑨步,C节点收到Msg(AggSig[A,B,E],To[C,D]),通过签名,排除掉A、B、D、E节点,可转播节点数为0,不再转播。
第⑩步,D节点收到Msg(AggSig[A,B,E],To[C,D]),通过签名,排除掉A、B、C、E节点,可转播节点数为0,不再转播。至此,所有节点都不再转播,消息达到最终一致性。
实施例2:
本发明实施例2提供了一种基于动态策略的区块链通信系统,区块链中包含多个区块链节点,所述的区块链节点包含消息源节点和消息接收端节点,区块链各个节点间是连通的;
所述的消息源节点,接收本节点数据向网络中其它节点更新的请求,将数据封装成满足消息通信协议的消息,随机选择几个邻居节点进行广播。所述的满足消息通信协议的消息,包含消息ID、消息体、节点签名数据和广播的目标节点ID。
所述的消息接收端节点,接收其它节点广播的消息,进行消息处理和转发,直至收到的消息已经广播至全网则不再转发。
所述系统的工作方法为:
消息源节点收到向网络中其它节点广播数据的请求;
消息源节点将数据封装成满足消息通信协议的消息,从邻居节点中随机选择预设个数的节点进行广播;
消息接收端节点收到消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
当选出的转发节点数为零,当前消息接收端节点不再进行转播。
具体步骤与实施例1中的对应步骤相同,这里不再赘述。
实施例3:
本发明实施例3提供了一种基于动态策略的区块链通信方法,应用于消息接收端节点;
包括以下过程:
消息接收端节点收到消息源节点的消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
当选出的转发节点数为零,当前消息接收端节点不再进行转播。
具体步骤与实施例1中的对应步骤相同,这里不再赘述。
实施例4:
本发明实施例4提供了一种区块链节点,包括:数据终端,所述数据终端被配置为:
收到消息源节点的消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
当选出的转发节点数为零,当前消息接收端节点不再进行转播。
具体步骤与实施例1中的对应步骤相同,这里不再赘述。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于动态策略的区块链通信方法,其特征在于:
包括以下过程:
消息源节点收到向网络中其它节点广播数据的请求;
消息源节点将数据封装成满足消息通信协议的消息,从邻居节点中随机选择预设个数的节点进行广播;
消息接收端节点收到消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
当选出的转发节点数为零,当前消息接收端节点不再进行转播。
2.如权利要求1所述的基于动态策略的区块链通信方法,其特征在于:
消息接收端节点选择要转发的节点,包括:
将当前消息接收端节点广播过消息的节点剔除;
将剩余节点分为两部分,第一部分不包含目标信息节点,第二部分是目标信息中的节点;
判断第一部分节点数m是否小于设置的转发数n,如果是进入下一步,否则从第一部分中随机选择n个放入要转发的节点中,完成转发节点的选择;
将第一部分所有节点共m个放入要转发的节点中;
判断第二部分节点个数k是否小于n-m,如果是进入下一步;否则,从第二部分中随机选择n-m个加到要转发的节点中,完成转发节点的选择;
将第二部分所有节点共k个加到要转发的节点中,完成转发节点的选择。
3.如权利要求1所述的基于动态策略的区块链通信方法,其特征在于:
将消息的签名进行聚合,包括:
将当前消息接收端节点收到的消息的所有签名以及自己的签名进行聚合。
4.如权利要求1-3任一项所述的基于动态策略的区块链通信方法,其特征在于:
聚合签名的大小恒定。
5.如权利要求1所述的基于动态策略的区块链通信方法,其特征在于:
满足消息通信协议的消息,包括:消息识别码、消息体、节点签名数据和广播的目标节点。
6.一种基于动态策略的区块链通信系统,其特征在于:
包括:消息源节点和消息接收端节点,各个节点相互连通;
消息源节点收到向网络中其它节点广播数据的请求;
消息源节点将数据封装成满足消息通信协议的消息,从邻居节点中随机选择预设个数的节点进行广播;
消息接收端节点收到消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
当选出的转发节点数为零,当前消息接收端节点不再进行转播。
7.一种基于动态策略的区块链通信方法,其特征在于:应用于消息接收端节点;
包括以下过程:
消息接收端节点收到消息源节点的消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
当选出的转发节点数为零,当前消息接收端节点不再进行转播。
8.如权利要求7所述的基于动态策略的区块链通信方法,其特征在于:
消息接收端节点选择要转发的节点,包括:
将当前消息接收端节点广播过消息的节点剔除;
将剩余节点分为两部分,第一部分不包含目标信息节点,第二部分是目标信息中的节点;
判断第一部分节点数m是否小于设置的转发数n,如果是进入下一步,否则从第一部分中随机选择n个放入要转发的节点中,完成转发节点的选择;
将第一部分所有节点共m个放入要转发的节点中;
判断第二部分节点个数k是否小于n-m,如果是进入下一步;否则,从第二部分中随机选择n-m个加到要转发的节点中,完成转发节点的选择;
将第二部分所有节点共k个加到要转发的节点中,完成转发节点的选择。
9.一种区块链节点,其特征在于:
包括:数据终端,所述数据终端被配置为:
收到消息源节点的消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
当选出的转发节点数为零,当前消息接收端节点不再进行转播。
10.如权利要求9所述的区块链节点,其特征在于:
选择要转发的节点,包括:
将当前数据终端广播过消息的节点剔除;
将剩余节点分为两部分,第一部分不包含目标信息节点,第二部分是目标信息中的节点;
判断第一部分节点数m是否小于设置的转发数n,如果是进入下一步,否则从第一部分中随机选择n个放入要转发的节点中,完成转发节点的选择;
将第一部分所有节点共m个放入要转发的节点中;
判断第二部分节点个数k是否小于n-m,如果是进入下一步;否则,从第二部分中随机选择n-m个加到要转发的节点中,完成转发节点的选择;
将第二部分所有节点共k个加到要转发的节点中,完成转发节点的选择。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111371606.2A CN114338699B (zh) | 2021-11-18 | 2021-11-18 | 一种基于动态策略的区块链通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111371606.2A CN114338699B (zh) | 2021-11-18 | 2021-11-18 | 一种基于动态策略的区块链通信方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338699A true CN114338699A (zh) | 2022-04-12 |
CN114338699B CN114338699B (zh) | 2024-01-30 |
Family
ID=81046549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111371606.2A Active CN114338699B (zh) | 2021-11-18 | 2021-11-18 | 一种基于动态策略的区块链通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338699B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430066A (zh) * | 2019-07-15 | 2019-11-08 | 杭州复杂美科技有限公司 | 用于减少区块链交易重复广播的方法、设备及存储介质 |
CN110443610A (zh) * | 2019-07-15 | 2019-11-12 | 杭州复杂美科技有限公司 | 用于减少交易组重复广播的方法和系统、设备及存储介质 |
WO2020073543A1 (zh) * | 2018-10-12 | 2020-04-16 | 天津理工大学 | 一种基于区块链的软件版本数据管理系统及建立方法 |
CN112182612A (zh) * | 2020-09-28 | 2021-01-05 | 平安科技(深圳)有限公司 | 一种随机数生成方法、装置、终端设备及存储介质 |
CN112565392A (zh) * | 2020-12-01 | 2021-03-26 | 浙商银行股份有限公司 | 一种联盟链非全连接p2p网络的收敛方法及p2p节点 |
CN113300851A (zh) * | 2021-05-18 | 2021-08-24 | 中国信息通信研究院 | 基于dht的区块链消息广播方法、电子设备及存储介质 |
-
2021
- 2021-11-18 CN CN202111371606.2A patent/CN114338699B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020073543A1 (zh) * | 2018-10-12 | 2020-04-16 | 天津理工大学 | 一种基于区块链的软件版本数据管理系统及建立方法 |
CN110430066A (zh) * | 2019-07-15 | 2019-11-08 | 杭州复杂美科技有限公司 | 用于减少区块链交易重复广播的方法、设备及存储介质 |
CN110443610A (zh) * | 2019-07-15 | 2019-11-12 | 杭州复杂美科技有限公司 | 用于减少交易组重复广播的方法和系统、设备及存储介质 |
CN112182612A (zh) * | 2020-09-28 | 2021-01-05 | 平安科技(深圳)有限公司 | 一种随机数生成方法、装置、终端设备及存储介质 |
CN112565392A (zh) * | 2020-12-01 | 2021-03-26 | 浙商银行股份有限公司 | 一种联盟链非全连接p2p网络的收敛方法及p2p节点 |
CN113300851A (zh) * | 2021-05-18 | 2021-08-24 | 中国信息通信研究院 | 基于dht的区块链消息广播方法、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
苑超;徐蜜雪;斯雪明;: "基于聚合签名的共识算法优化方案", 计算机科学, no. 02 * |
Also Published As
Publication number | Publication date |
---|---|
CN114338699B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102893547B (zh) | 在无线设备中控制多个无线接入承载的方法和装置 | |
CN101743716B (zh) | 无线网络中可靠多播/广播的建立 | |
CN110166976B (zh) | 传输方式确定方法及装置,存储介质和电子装置 | |
JP5165031B2 (ja) | 車両アドホックネットワークにおけるノード | |
JP5364728B2 (ja) | ローカル・ピア・グループ(lpg)に基づく車両アドホックネットワークにおける高信頼度マルチキャスト方法 | |
CN106330414B (zh) | 一种报文传输方法及装置 | |
JP4927940B2 (ja) | セルラ・アクセス・システムにおける改良されたデータ通信のための方法および装置 | |
CN110855792B (zh) | 一种消息推送方法、装置、设备及介质 | |
CN102833691B (zh) | 基于波束成形和喷泉码的d2d多媒体广播和组播方法 | |
US20160013857A9 (en) | Communication method for relay node and next node of the relay node for network coding | |
CN1354931A (zh) | 在自动重复请求协议中使反馈响应最小的方法 | |
EP1453338B1 (en) | Packet data resending control method and apparatus therefor | |
JP4564668B2 (ja) | ビットマップを有効に使用する選択的繰り返しarq | |
GB2427324A (en) | A method of dual transfer mode handover | |
US20100110919A1 (en) | Method and device for controlling data connections in a data network having a plurality of data network nodes | |
CN107249203A (zh) | 一种基于喷泉码的车联网远距离数据通信中继代理方法 | |
CN111131179B (zh) | 业务处理方法、装置、网络设备及存储介质 | |
CN100505608C (zh) | 一种适合卫星网络的自适应拥塞控制方法及系统 | |
JPH1146187A (ja) | データ伝送方法及びデータ伝送装置 | |
CN109586932B (zh) | 组播方法及终端设备 | |
CN114362996A (zh) | 一种动态的跨链消息转发方法及系统 | |
CN1309202C (zh) | 一种确认数据的方法 | |
CN111327403B (zh) | 一种增强的rlc层数据传输方法 | |
CN1852264A (zh) | 一种传输链路状态信息的方法 | |
CN114338699A (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 |