filter协议
Waku的节点分为:全节点与轻节点,为了减少轻节点的消息处理压力与存储压力,filter协议的作用是在全节点与轻节点之间的通信做过滤,
filter协议是waku的消息过滤器,功能如下
1、过滤器本身的管理,包括订阅与去订阅等
2、在全节点往轻节点push消息的时候提供过滤功能。只有订阅了相关topic的轻节点才
filter数据结构图
Waku的节点分为:全节点与轻节点,filter协议的作用是在全节点与情节点之间的通信做筛选。Filter的核心作用筛选信息的管理
1、通过libp2p的host.SetStreamHandlerMatch接口设置到消息接收接口
2、全节点的SubscribersMap用来存储轻节点的订阅信息
订阅去订阅筛选器流程
消息推送流程(筛选过程)
noise协议
waku的noise实现了原生noise协议,noise协议的功能是实现节点间加密通信的密钥协商握手流程
密钥的协商的密码学基础是ECDH,采用的密码学算法是Curve25519。
noise协议原文连接:The Noise Protocol Framework
组件结构图
从数据结构上可以看出:waku的nosie协议由密钥协商模块(图左侧),waku特有的p2p通信模块(图右侧)
Handshake模块主要功能是:密钥协商与提供加密功能,与原生的noise协议基本一致,只实现了部分模式
p2p通信模块主要功能:waku的noise协议主要利用waku本身的通信功能,通过指定的topic进行密钥协商