一种基于动态策略的区块链通信方法及系统技术方案

技术编号:33081645 阅读:13 留言:0更新日期:2022-04-15 10:36
本发明专利技术提供了一种基于动态策略的区块链通信方法及系统,消息接收端根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;当选出的转发节点数为零,当前消息接收端节点不再进行转播;本发明专利技术有效的减少了消息无效广播的数量。效广播的数量。效广播的数量。

【技术实现步骤摘要】
一种基于动态策略的区块链通信方法及系统


[0001]本专利技术涉及区块链
,特别涉及一种基于动态策略的区块链通信方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
,并不必然构成现有技术。
[0003]作为分布式架构的区块链,其中一个重要问题便是在通信中如何保证信息的一致性。Gossip是一种去中心化的分布式协议,用于实现节点或者进程之间的信息交换,是分布式系统中被广泛使用的一种最终一致性协议。目前诸多区块链如超级账本都用到了Gossip作为网络通信协议,进行交易、区块等消息的传播。Gossip过程是由种子节点发起,当一个种子节点有状态需要更新到网络中的其他节点时,它会随机的选择周围几个节点散播消息,收到消息的节点也会重复该过程,直至最终网络中所有的节点都收到了消息。
[0004]专利技术人发现,Gossip过程中,节点是随机选择周围节点发送消息,而收到消息的节点也会重复该步骤,因此不可避免的存在消息重复发送给同一节点的情况,造成了消息的冗余,增加节点间网络通信压力、节点收发消息处理压力;同时,区块链节点间进行消息通信时,为了保证消息的安全可信,发送节点会对消息进行签名后再发送,接收节点会先验证签名再处理消息,通过签名确保消息来源于可信的节点且没有被篡改,而消息中携带的签名数据会增加网络传输量。

技术实现思路

[0005]为了解决现有技术的不足,本专利技术提供了一种基于动态策略的区块链通信方法及系统,解决了区块链采用Gossip协议作为网络通信协议时,冗余消息导致的网络通信压力大、节点收发消息处理压力大、网络和计算资源被无用的消息传播过程占用的问题。
[0006]为了实现上述目的,本专利技术采用如下技术方案:
[0007]本专利技术第一方面提供了一种基于动态策略的区块链通信方法,包括以下过程:
[0008]消息源节点收到向网络中其它节点广播数据的请求;
[0009]消息源节点将数据封装成满足消息通信协议的消息,从邻居节点中随机选择预设个数的节点进行广播;
[0010]消息接收端节点收到消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
[0011]消息接收端节点选择要转发的节点,将当前消息接收端节点广播过消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
[0012]当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
[0013]当选出的转发节点数为零,当前消息接收端节点不再进行转播。
[0014]进一步的,消息接收端节点选择要转发的节点,包括:
[0015]将当前消息接收端节点广播过消息的节点剔除;
[0016]将剩余节点分为两部分,第一部分不包含目标信息节点,第二部分是目标信息中的节点;
[0017]判断第一部分节点数m是否小于设置的转发数n,如果是进入下一步,否则从第一部分中随机选择n个放入要转发的节点中,完成转发节点的选择;
[0018]将第一部分所有节点共m个放入要转发的节点中;
[0019]判断第二部分节点个数k是否小于n

m,如果是进入下一步;否则,从第二部分中随机选择n

m个加到要转发的节点中,完成转发节点的选择;
[0020]将第二部分所有节点共k个加到要转发的节点中,完成转发节点的选择。
[0021]本专利技术第二方面提供了一种基于动态策略的区块链通信系统,包括:消息源节点和消息接收端节点,各个节点相互连通;
[0022]消息源节点收到向网络中其它节点广播数据的请求;
[0023]消息源节点将数据封装成满足消息通信协议的消息,从邻居节点中随机选择预设个数的节点进行广播;
[0024]消息接收端节点收到消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
[0025]消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
[0026]当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
[0027]当选出的转发节点数为零,当前消息接收端节点不再进行转播。
[0028]本专利技术第三方面提供了一种基于动态策略的区块链通信方法,应用于消息接收端节点;
[0029]包括以下过程:
[0030]消息接收端节点收到消息源节点的消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
[0031]消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
[0032]当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
[0033]当选出的转发节点数为零,当前消息接收端节点不再进行转播。
[0034]本专利技术第四方面提供了一种区块链节点,包括:数据终端,所述数据终端被配置为:
[0035]收到消息源节点的消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;
[0036]选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;
[0037]当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;
[0038]当选出的转发节点数为零,当前消息接收端节点不再进行转播。
[0039]与现有技术相比,本专利技术的有益效果是:
[0040]1、本专利技术通过将消息签名改为全广播路径下所有节点的聚合签名,实现在不增加通信量的前提下,安全可信的让接收方确定的知道有哪些节点已经有该消息,且可防止恶意的发送方节点伪造源头。
[0041]2、本专利技术中,节点收到消息后,根据消息中的签名数据,可以确定的、可信的知道哪些节点已经收到了该消息,为是否继续转播、以及转播时判断哪些节点一定不再需要该消息提供了判定依据,减少消息无效广播数量,让没有该消息的节点尽早收到消息。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于动态策略的区块链通信方法,其特征在于:包括以下过程:消息源节点收到向网络中其它节点广播数据的请求;消息源节点将数据封装成满足消息通信协议的消息,从邻居节点中随机选择预设个数的节点进行广播;消息接收端节点收到消息后,根据消息识别码进行判重,对于非重复数据,验证消息签名后,接收消息中的数据;消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;当选出的转发节点数为零,当前消息接收端节点不再进行转播。2.如权利要求1所述的基于动态策略的区块链通信方法,其特征在于:消息接收端节点选择要转发的节点,包括:将当前消息接收端节点广播过消息的节点剔除;将剩余节点分为两部分,第一部分不包含目标信息节点,第二部分是目标信息中的节点;判断第一部分节点数m是否小于设置的转发数n,如果是进入下一步,否则从第一部分中随机选择n个放入要转发的节点中,完成转发节点的选择;将第一部分所有节点共m个放入要转发的节点中;判断第二部分节点个数k是否小于n

m,如果是进入下一步;否则,从第二部分中随机选择n

m个加到要转发的节点中,完成转发节点的选择;将第二部分所有节点共k个加到要转发的节点中,完成转发节点的选择。3.如权利要求1所述的基于动态策略的区块链通信方法,其特征在于:将消息的签名进行聚合,包括:将当前消息接收端节点收到的消息的所有签名以及自己的签名进行聚合。4.如权利要求1

3任一项所述的基于动态策略的区块链通信方法,其特征在于:聚合签名的大小恒定。5.如权利要求1所述的基于动态策略的区块链通信方法,其特征在于:满足消息通信协议的消息,包括:消息识别码、消息体、节点签名数据和广播的目标节点。6.一种基于动态策略的区块链通信系统,其特征在于:包括:消息源节点和消息接收端节点,各个节点相互连通;消息源节点收到向网络中其它节点广播数据的请求;消息源节点将数据封装成满足消息通信协议的消息,从邻居节点中随机选择预设个数的节点进行广播;消息接收端节点收到消息后,根据消息识别码进行判重,对于非重复数据,验证消息签
名后,接收消息中的数据;消息接收端节点选择要转发的节点,将当前消息接收端节点广播过该消息的节点剔除,根据接收到的签名数据,过滤掉确定已经收到消息的节点,从剩余的节点中选择转发节点,选择时优先选择不属于目标信息中包含的节点;当选出的转发节点数不为零,则将收到过的该消息的签名以及本节点的签名进行聚合,作为本次消息广播的签名,将本次广播选中的节点作为目标信息添加到消息中,并向选出的节点转发;当选出的转发节...

【专利技术属性】
技术研发人员:赵永光肖宗水闵新平张玉波张世栋仪莉王敏虾王子豪宋婷婷
申请(专利权)人:山大地纬软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1