net

package
v2.0.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 11, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

Package defs 提供了DeFS去中心化存储系统的网络握手协议实现

Index

Constants

View Source
const (
	HandshakeProtocol = "/defs/handshake/1.0.0" // 握手协议标识符

)

常量定义

Variables

This section is empty.

Functions

func Handshake

func Handshake(ctx context.Context, h host.Host, pi peer.AddrInfo) ([]peer.AddrInfo, error)

Handshake 执行与目标节点的握手过程 参数:

  • ctx: 上下文对象,用于控制握手过程的生命周期
  • h: libp2p主机实例,提供网络通信功能
  • pi: 目标节点的地址信息,包含节点ID和多地址

返回值:

  • []peer.AddrInfo: 从目标节点获取的其他节点的地址信息列表
  • error: 如果握手过程中发生错误则返回错误信息

注意: 1. 连接池中累积了大量失效连接 2. 旧连接没有及时释放导致资源耗尽 3. 连接状态不一致导致新连接建立失败

建议: 1. 定期清理空闲连接 2. 实现心跳机制检测连接活性 3. 添加连接池大小限制 4. 监控并记录连接状态变化

func RegisterHandshakeProtocol

func RegisterHandshakeProtocol(h host.Host)

RegisterHandshakeProtocol 注册握手协议的处理函数 参数:

  • h: libp2p主机实例,用于注册协议处理器

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: 如果读取过程中发生错误则返回错误信息

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL