Documentation
¶
Index ¶
Constants ¶
const ( // ID 是 identify 服务 1.0.0 版本的 protocol.ID ID = "/ipfs/id/1.0.0" // IDPush 是 Identify push 协议的 protocol.ID // 它发送包含对等节点当前状态的完整 identify 消息 IDPush = "/ipfs/id/push/1.0.0" // ServiceName 是 identify 服务的名称 ServiceName = "dep2p.identify" )
Variables ¶
var ActivationThresh = 4
ActivationThresh 设置一个地址必须被观察到多少次才能被"激活",并作为本地节点可被联系的地址广播给其他节点 这些"观察"事件默认在40分钟后过期(OwnObservedAddressTTL * ActivationThreshold) 它们会在 GCInterval 设置的 GC 轮次中被清理
var Timeout = 30 * time.Second
Timeout 是所有传入的 Identify 交互的超时时间
Functions ¶
func HasConsistentTransport ¶
HasConsistentTransport 如果地址 'a' 与绿色集合中的任何地址共享协议集,则返回 true 这用于检查给定地址是否可能是对等节点正在监听的地址之一 参数:
- a: ma.Multiaddr 要检查的地址
- green: []ma.Multiaddr 绿色地址集合
返回值:
- bool 是否共享协议集
Types ¶
type IDService ¶
type IDService interface {
// IdentifyConn 同步触发连接上的 identify 请求并等待其完成
// 如果连接正在被其他调用者识别,此调用将等待
// 如果连接已经被识别,它将立即返回
IdentifyConn(network.Conn)
// IdentifyWait 触发 identify(如果连接尚未被识别)并返回一个通道
// 该通道在 identify 协议完成时关闭
IdentifyWait(network.Conn) <-chan struct{}
// OwnObservedAddrs 返回对等节点报告我们拨号的地址
OwnObservedAddrs() []ma.Multiaddr
// ObservedAddrsFor 返回对等节点报告我们从特定本地地址拨号的地址
ObservedAddrsFor(local ma.Multiaddr) []ma.Multiaddr
// Start 启动 identify 服务
Start()
// Close 关闭 identify 服务
io.Closer
}
IDService 定义了 identify 服务的接口
type MetricsTracer ¶
type MetricsTracer interface {
// TriggeredPushes 统计由事件触发的 IdentifyPush 次数
TriggeredPushes(event any)
// ConnPushSupport 按 Push 支持情况统计对等节点
ConnPushSupport(identifyPushSupport)
// IdentifyReceived 跟踪接收 identify 响应的指标
IdentifyReceived(isPush bool, numProtocols int, numAddrs int)
// IdentifySent 跟踪发送 identify 响应的指标
IdentifySent(isPush bool, numProtocols int, numAddrs int)
}
MetricsTracer 定义了指标跟踪器的接口
func NewMetricsTracer ¶
func NewMetricsTracer(opts ...MetricsTracerOption) MetricsTracer
NewMetricsTracer 创建新的指标跟踪器 参数:
- opts: ...MetricsTracerOption 配置选项
返回值:
- MetricsTracer 指标跟踪器实例
type MetricsTracerOption ¶
type MetricsTracerOption func(*metricsTracerSetting)
MetricsTracerOption 定义了配置指标跟踪器的函数类型
func WithRegisterer ¶
func WithRegisterer(reg prometheus.Registerer) MetricsTracerOption
WithRegisterer 设置指标注册器 参数:
- reg: prometheus.Registerer 指标注册器
返回值:
- MetricsTracerOption 配置函数
type ObservedAddrManager ¶
type ObservedAddrManager struct {
// contains filtered or unexported fields
}
ObservedAddrManager 将连接的本地 multiaddr 映射到它们的外部可观察 multiaddr
func NewObservedAddrManager ¶
func NewObservedAddrManager(listenAddrs, hostAddrs func() []ma.Multiaddr, interfaceListenAddrs func() ([]ma.Multiaddr, error), normalize func(ma.Multiaddr) ma.Multiaddr) (*ObservedAddrManager, error)
NewObservedAddrManager 返回一个新的地址管理器,使用 peerstore.OwnObservedAddressTTL 作为 TTL 参数:
- listenAddrs: func() []ma.Multiaddr 返回监听地址的函数
- hostAddrs: func() []ma.Multiaddr 返回主机地址的函数
- interfaceListenAddrs: func() ([]ma.Multiaddr, error) 返回接口监听地址的函数
- normalize: func(ma.Multiaddr) ma.Multiaddr 地址规范化函数
返回值:
- *ObservedAddrManager: 新创建的地址管理器
- error: 创建过程中的错误
func (*ObservedAddrManager) Addrs ¶
func (o *ObservedAddrManager) Addrs() []ma.Multiaddr
Addrs 返回所有已激活的观察地址 返回值:
- []ma.Multiaddr: 所有已激活的观察地址列表
func (*ObservedAddrManager) AddrsFor ¶
func (o *ObservedAddrManager) AddrsFor(addr ma.Multiaddr) (addrs []ma.Multiaddr)
AddrsFor 返回与给定(已解析的)监听地址关联的所有已激活的观察地址 参数:
- addr: ma.Multiaddr 监听地址
返回值:
- []ma.Multiaddr: 已激活的观察地址列表
func (*ObservedAddrManager) Close ¶
func (o *ObservedAddrManager) Close() error
func (*ObservedAddrManager) Record ¶
func (o *ObservedAddrManager) Record(conn connMultiaddrs, observed ma.Multiaddr)
Record 将观察排队以进行记录 参数:
- conn: connMultiaddrs 连接对象
- observed: ma.Multiaddr 观察到的地址
type Option ¶
type Option func(*config)
Option 是用于标识协议的选项函数类型 参数:
- *config: 配置对象指针
func DisableObservedAddrManager ¶
func DisableObservedAddrManager() Option
DisableObservedAddrManager 禁用观察地址管理器 这也会有效地禁用 NAT 发射器和 EvtNATDeviceTypeChanged 事件 返回值:
- Option 配置选项函数
func DisableSignedPeerRecord ¶
func DisableSignedPeerRecord() Option
DisableSignedPeerRecord 禁用在传出标识响应中填充签名的对等节点记录,仅发送未签名的地址 返回值:
- Option 配置选项函数
func ProtocolVersion ¶
ProtocolVersion 设置用于标识对等节点所使用的协议族的协议版本字符串 参数:
- s: string 协议版本字符串
返回值:
- Option 配置选项函数
func WithMetricsTracer ¶
func WithMetricsTracer(tr MetricsTracer) Option
WithMetricsTracer 设置指标追踪器 参数:
- tr: MetricsTracer 指标追踪器接口
返回值:
- Option 配置选项函数