package
0.0.2
Repository: https://github.com/dep2p/go-dep2p.git
Documentation: pkg.go.dev

# Functions

BumpOverwrite 返回一个提升函数,用新值直接覆盖当前值。 返回值: - BumpFn: 覆盖式的提升函数.
BumpSumBounded 返回一个提升函数,在指定范围内累加分数。 参数: - min: 允许的最小值 - max: 允许的最大值 返回值: - BumpFn: 有界累加的提升函数.
BumpSumUnbounded 返回一个提升函数,简单地将增量加到当前分数上,不设上限。 返回值: - BumpFn: 无界累加的提升函数.
DecayExpireWhenInactive 返回一个衰减函数,在指定时间内没有提升时使标签过期。 参数: - after: 无活动后过期的时间间隔 返回值: - DecayFn: 基于不活动时间的衰减函数.
DecayFixed 返回一个固定衰减函数,每次从当前值中减去指定的数值。 当值首次达到0或负数时删除标签。 参数: - minuend: 每次衰减要减去的固定值 返回值: - DecayFn: 执行固定衰减的函数.
DecayLinear 返回一个线性衰减函数,对标签值应用一个分数系数。 使用 math.Floor 向下取整,当结果为0时删除标签。 参数: - coef: 衰减系数(0-1之间的小数) 返回值: - DecayFn: 执行线性衰减的函数.
DecayNone 返回一个不执行任何衰减的衰减函数。 返回值: - DecayFn: 衰减函数,保持标签值不变.
SupportsDecay 评估提供的 ConnManager 是否支持衰减,如果支持,则返回 Decayer 对象。 更多信息请参考 Decayer 的 godoc 文档。.

# Structs

DecayingValue 表示衰减标签的值。.
NullConnMgr 是一个不提供任何功能的 ConnMgr。.
TagInfo 存储与对等点关联的元数据。.

# Interfaces

ConnectionGater 可以由支持主动入站或出站连接控制的类型实现。 ConnectionGater 是主动的,而 ConnManager 倾向于被动。 在连接建立/升级生命周期的不同阶段,将会调用 ConnectionGater 进行咨询。 在整个过程中会调用特定的函数,允许你在该阶段拦截连接。 InterceptPeerDial 在即将进行出站对等节点拨号请求时调用,在该对等节点的地址可用/解析之前。 在这个阶段阻止连接通常用于黑名单场景。 InterceptAddrDial 在即将向特定地址的对等节点进行出站拨号时调用。 在这个阶段阻止连接通常用于地址过滤。 InterceptAccept 在传输监听器收到入站连接请求时立即调用,在任何升级发生之前。 接受已经安全和/或多路复用的连接的传输(例如可能是 QUIC)必须调用此方法,以确保正确性/一致性。 InterceptSecured 在完成安全握手并验证对等节点身份后,对入站和出站连接都会调用。 InterceptUpgraded 在 dep2p 完全将连接升级为安全、多路复用的通道后, 对入站和出站连接都会调用。 此接口可用于实现*严格/主动*的连接管理策略,例如: - 达到最大连接数后的硬限制 - 维护对等节点黑名单 - 按传输配额限制连接 实验性功能:未来将支持 DISCONNECT 协议/消息。 这允许控制器和其他组件传达连接关闭的意图,以减少潜在的重连尝试。 目前,InterceptUpgraded 在阻止连接时可以返回非零的 DisconnectReason, 但随着我们完善此功能,此接口可能在未来发生变化。 只有此方法可以处理 DisconnectReason 的原因是, 我们需要流多路复用功能来打开控制协议流以传输消息。.
ConnManager 跟踪与对等点的连接,并允许使用者为每个对等点关联元数据。 它允许基于实现定义的启发式方法修剪连接。 ConnManager 允许 dep2p 对打开的连接总数强制执行上限。 支持衰减标签的 ConnManager 实现了 Decayer 接口。 如果支持,请使用 SupportsDecay 函数安全地将实例转换为 Decayer。.
Decayer 由支持衰减标签的连接管理器实现。 衰减标签是一个其值会随时间自动衰减的标签。 实际的衰减行为封装在用户提供的衰减函数(DecayFn)中。 该函数在每个时间间隔(由interval参数确定)被调用,并返回标签的新值,或者标签是否应该被删除。 我们不直接设置衰减标签的值。 相反,我们通过增量来"提升"衰减标签。 这会调用BumpFn函数,传入旧值和增量,来确定新值。 这种可插拔的设计提供了很大的灵活性和多功能性。 容易实现的行为包括: - 每个时间间隔将标签值减1,或减半。 - 每次提升值时,将其与当前值相加。 - 每次提升时指数级提高分数。 - 将输入分数相加,但保持在最小值和最大值范围内。 本包提供了常用的DecayFns和BumpFns。.
DecayingTag 表示一个衰减标签。 该标签是一个长期存在的通用对象,用于操作对等节点的标签值。.
GetConnLimiter 提供对组件总连接限制的访问。.

# Type aliases

BumpFn 将增量应用到现有分数上,并返回新分数。 非平凡的提升函数包括指数提升、移动平均、上限等。.
DecayFn 对对等节点的分数应用衰减。 实现必须在注册标签时提供的时间间隔调用DecayFn。 它接收衰减值的副本,并返回应用衰减后的分数,以及一个标志以指示是否应删除该标签。.