Documentation
¶
Index ¶
Constants ¶
View Source
const ( ServiceName = "dep2p.autonatv2" // DialBackProtocol 是用于回拨的协议标识符 DialBackProtocol = "/dep2p/autonat/2/dial-back" // DialProtocol 是用于拨号请求的协议标识符 DialProtocol = "/dep2p/autonat/2/dial-request" )
ServiceName 是 AutoNAT v2 服务的名称
Variables ¶
View Source
var ( // ErrNoValidPeers 表示没有有效的 AutoNAT v2 对等节点 ErrNoValidPeers = errors.New("没有有效的 AutoNAT v2 对等节点") // ErrDialRefused 表示拨号被拒绝 ErrDialRefused = errors.New("拨号被拒绝") )
Functions ¶
This section is empty.
Types ¶
type AutoNAT ¶
type AutoNAT struct {
// contains filtered or unexported fields
}
AutoNAT 实现了 AutoNAT v2 客户端和服务器 用户可以使用 CheckReachability 方法检查其地址的可达性 服务器提供放大攻击防护和速率限制
func New ¶
New 返回一个新的 AutoNAT 实例 参数:
- host: dep2p 主机
- dialerHost: 用于拨号的主机
- opts: AutoNAT 选项
返回值:
- *AutoNAT: 新创建的 AutoNAT 实例
- error: 如果创建失败则返回错误
注意:
- host 和 dialerHost 应具有相同的拨号能力
- 如果主机不支持某个传输,则该传输的地址的回拨请求将被忽略
func (*AutoNAT) GetReachability ¶
GetReachability 发起单个拨号请求以检查请求地址的可达性 参数:
- ctx: 上下文
- reqs: 要检查的地址请求列表
返回值:
- Result: 可达性检查结果
- error: 如果检查失败则返回错误
type AutoNATOption ¶
type AutoNATOption func(s *autoNATSettings) error
AutoNATOption 定义了修改 AutoNAT 设置的函数类型
func WithMetricsTracer ¶
func WithMetricsTracer(m MetricsTracer) AutoNATOption
WithMetricsTracer 设置指标追踪器
参数:
- m: MetricsTracer 指标追踪器接口
返回值:
- AutoNATOption 用于修改设置的函数
func WithServerRateLimit ¶
func WithServerRateLimit(rpm, perPeerRPM, dialDataRPM int) AutoNATOption
WithServerRateLimit 设置服务器的速率限制
参数:
- rpm: int 服务器每分钟请求数限制
- perPeerRPM: int 每个对等节点每分钟请求数限制
- dialDataRPM: int 服务器每分钟拨号数据请求限制
返回值:
- AutoNATOption 用于修改设置的函数
type EventDialRequestCompleted ¶
type EventDialRequestCompleted struct { Error error // 错误信息 ResponseStatus pb.DialResponse_ResponseStatus // 响应状态 DialStatus pb.DialStatus // 拨号状态 DialDataRequired bool // 是否需要拨号数据 DialedAddr ma.Multiaddr // 拨号地址 }
EventDialRequestCompleted 表示拨号请求完成的事件 包含了请求的结果信息
type MetricsTracer ¶
type MetricsTracer interface { // CompletedRequest 记录已完成的请求事件 // 参数: // - e: EventDialRequestCompleted 拨号请求完成事件 CompletedRequest(EventDialRequestCompleted) }
MetricsTracer 定义了指标追踪器的接口
func NewMetricsTracer ¶
func NewMetricsTracer(reg prometheus.Registerer) MetricsTracer
NewMetricsTracer 创建一个新的指标追踪器 参数:
- reg: prometheus.Registerer Prometheus 注册器
返回值:
- MetricsTracer 指标追踪器实例
type Request ¶
type Request struct { // Addr 是要验证的多地址 Addr ma.Multiaddr // SendDialData 表示如果服务器请求 Addr 的拨号数据,是否发送 SendDialData bool }
Request 是验证单个地址可达性的请求 参数:
- Addr: 要验证的多地址
- SendDialData: 如果服务器请求 Addr 的拨号数据,是否发送
type Result ¶
type Result struct { // Addr 是已拨号的地址 Addr ma.Multiaddr // Reachability 是已拨号地址的可达性 Reachability network.Reachability // Status 是回拨的结果状态 Status pb.DialStatus }
Result 是 CheckReachability 调用的结果 参数:
- Addr: 已拨号的地址
- Reachability: 已拨号地址的可达性
- Status: 回拨的结果状态
Click to show internal directories.
Click to hide internal directories.