[发明专利]一种联盟链非全连接P2P网络的收敛方法及P2P节点有效
申请号: | 202011386475.0 | 申请日: | 2020-12-01 |
公开(公告)号: | CN112565392B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 臧铖;陈嘉俊;陈权;尤士豪 | 申请(专利权)人: | 浙商银行股份有限公司 |
主分类号: | H04L67/104 | 分类号: | H04L67/104;H04L45/02 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 刘静 |
地址: | 311200 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 联盟 链非全 连接 p2p 网络 收敛 方法 节点 | ||
1.一种联盟链非全连接P2P网络的收敛方法,其特征在于,该方法包括:
源节点根据自身邻居表计算消息从自身至目标节点是否需要中继转发;
源节点从零开始生成一个累加的序列号;
源节点选择邻居表中所有节点作为中继节点,并将其邻居表、序列号以及目标节点放入消息体中,向中继节点广播消息;源节点与直接连接节点建立网络连接后,相互交换信息,根据散列函数生成唯一的身份标识符,将所有身份标识符加入邻居表中;
若一个消息的目标节点标识符不在邻居表中,则该消息需要发送至中继节点进行转发;
收到消息的节点根据消息体中内容判断该消息是否需要转发:所述消息体中包含源节点的邻居表、唯一序列号以及目标节点,源节点选择邻居表中所有节点作为中继节点,向其广播消息;所述中继节点在收到消息后,根据消息体中的目标节点判断该消息是否需要转发,若需要转发则从自身邻居表中选出未包含于消息体邻居表的节点,将消息向这些节点转发;
如果收到消息的节点非目标节点,则从自身邻居表中选择未发送过该消息的节点,将节点添加至该消息的邻居表中,并向这些节点广播消息;
如果收到消息的节点是目标节点,则对源节点维护一个LRU,根据消息序列号进行过滤,不接收重复消息。
2.根据权利要求1所述的联盟链非全连接P2P网络的收敛方法,其特征在于,所述邻居表建立后,通过定期发送心跳消息探测邻居表中的邻居节点是否失效,将失效的邻居节点从所述邻居表中删除。
3.根据权利要求1所述的联盟链非全连接P2P网络的收敛方法,其特征在于,所述源节点生成的序列号是自增长的,具有唯一性,且序列号每增长S,会对序列号进行持久化,防止源节点宕机后序列号重复。
4.根据权利要求1所述的联盟链非全连接P2P网络的收敛方法,其特征在于,如果收到消息的节点非目标节点,也可以先判断目标节点是否在自身邻居表中,若在则直接发送至目标节点,不再继续中转。
5.根据权利要求1所述的联盟链非全连接P2P网络的收敛方法,其特征在于,所述LRU为一定长的键值对缓存,以消息序列号为键,按照接收顺序存储,存满后按照先进先出原则删除数据,节点需为所有非邻居节点各维护一个LRU。
6.一种P2P节点,其特征在于,该节点包括:
邻居表维护模块,用于维护自身邻居表;
消息序列号维护模块,用于生成唯一的自增长序列号,并定期进行持久化;
消息中继模块,与所述邻居表维护模块和消息序列号维护模块相连,用于生成,发送,接收中继消息;
其中,发送中继消息至目标节点时,消息中继模块先从邻居表维护模块获取邻居表,判断目标节点是否需要中继发送,若是,则从消息序列号维护模块获取中继消息序列号,选择邻居表中所有节点作为中继节点,并将邻居表、序列号以及目标节点放入消息体中,向中继节点广播消息;
接收中继消息时,消息中继模块从邻居表维护模块获取邻居表,从邻居表中选择该中继消息未到达过的节点,将这些节点添加至该消息的邻居表中,并向这些节点广播消息;
LRU维护模块,与所述邻居表维护模块和消息中继模块相连,用于对所有非邻居节点各维护一个LRU,保存来自各非邻居节点的最新的若干条中继消息序列号。
7.根据权利要求6所述的P2P节点,其特征在于:所述消息中继模块接收到中继消息,判断消息的目标节点是自身时,则将该中继消息的序列号和源节点交给LRU维护模块,若LRU维护模块判断该中继消息是新消息则保存序列号至LRU,若非新消息则丢弃。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙商银行股份有限公司,未经浙商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011386475.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种分板机
- 下一篇:一种电力营业厅智能收费机