Documentation
¶
Overview ¶
Package defs 提供了DeFS去中心化存储系统的网络握手协议实现
Index ¶
Constants ¶
View Source
const (
HandshakeProtocol = "/defs/handshake/1.0.0" // 握手协议标识符
)
常量定义
Variables ¶
This section is empty.
Functions ¶
func Handshake ¶
Handshake 执行与目标节点的握手过程 参数:
- ctx: 上下文对象,用于控制握手过程的生命周期
- h: libp2p主机实例,提供网络通信功能
- pi: 目标节点的地址信息,包含节点ID和多地址
返回值:
- []peer.AddrInfo: 从目标节点获取的其他节点的地址信息列表
- error: 如果握手过程中发生错误则返回错误信息
注意: 1. 连接池中累积了大量失效连接 2. 旧连接没有及时释放导致资源耗尽 3. 连接状态不一致导致新连接建立失败
建议: 1. 定期清理空闲连接 2. 实现心跳机制检测连接活性 3. 添加连接池大小限制 4. 监控并记录连接状态变化
func WriteHandshakeMessage ¶
func WriteHandshakeMessage(s network.Stream, msg HandshakeMessage) error
WriteHandshakeMessage 将握手消息写入网络流 参数:
- s: 网络流,用于发送数据
- msg: 要发送的握手消息
返回值:
- error: 如果写入过程中发生错误则返回错误信息
Types ¶
type HandshakeMessage ¶
type HandshakeMessage struct { Version string // 协议版本号,用于版本兼容性检查 NodeID peer.ID // 发送消息节点的唯一标识符 KnownPeers []peer.AddrInfo // 发送节点已知的其他节点的地址信息列表 }
HandshakeMessage 定义握手消息的格式
func ReadHandshakeMessage ¶
func ReadHandshakeMessage(s network.Stream) (HandshakeMessage, error)
ReadHandshakeMessage 从网络流中读取握手消息 参数:
- s: 网络流,用于接收数据
返回值:
- HandshakeMessage: 读取到的握手消息
- error: 如果读取过程中发生错误则返回错误信息
Click to show internal directories.
Click to hide internal directories.