Documentation
¶
Overview ¶
Package defs 提供了DeFS去中心化存储系统的网络握手协议实现
Package net 提供了网络相关的功能实现
Index ¶
- Constants
- func CreateDefaultLimitConfig() (limitConfig rcmgr.ConcreteLimitConfig, err error)
- func Handshake(ctx context.Context, h host.Host, pi peer.AddrInfo) ([]peer.AddrInfo, error)
- func RegisterHandshakeProtocol(h host.Host)
- func WriteHandshakeMessage(s network.Stream, msg HandshakeMessage) error
- type HandshakeMessage
Constants ¶
View Source
const ( // DefaultConnMgrHighWater 定义了连接管理器的高水位线 // 当连接数超过此值时,将触发连接修剪 //DefaultConnMgrHighWater = 200 DefaultConnMgrHighWater = 96 // DefaultConnMgrLowWater 定义了连接管理器的低水位线 // 连接修剪时会保留此数量的连接 //DefaultConnMgrLowWater = 100 DefaultConnMgrLowWater = 32 // DefaultConnMgrGracePeriod 定义了新建连接的宽限期 // 在此期间内新连接不会被修剪 DefaultConnMgrGracePeriod = time.Second * 20 )
View Source
const DefaultConnMgrType = "basic"
DefaultConnMgrType 定义了连接管理器的默认类型 当前设置为 "basic" 基础类型
View Source
const DefaultResourceMgrMinInboundConns = 800 // 从800增加到1600
DefaultResourceMgrMinInboundConns 定义了作为良好网络公民的最小入站连接数 这是一个经验值,通常足以保证网络的正常运行 const DefaultResourceMgrMinInboundConns = 800 3. 增加最小入站连接数
View Source
const (
HandshakeProtocol = "/defs/handshake/1.0.0" // 握手协议标识符
)
常量定义
Variables ¶
This section is empty.
Functions ¶
func CreateDefaultLimitConfig ¶ added in v2.0.23
func CreateDefaultLimitConfig() (limitConfig rcmgr.ConcreteLimitConfig, err error)
createDefaultLimitConfig 创建并返回一个默认的资源限制配置
此函数根据系统资源情况自动计算和设置各种限制,包括内存、文件描述符、 连接数和流量等。它遵循 docs/libp2p-resource-management.md 中的文档规范。
返回值:
- rcmgr.ConcreteLimitConfig: 包含所有具体限制配置的结构体
- error: 如果在创建过程中发生错误则返回错误信息
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.