config

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Jan 23, 2025 License: MIT Imports: 50 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func PrivKeyToStatelessResetKey

func PrivKeyToStatelessResetKey(key crypto.PrivKey) (quic.StatelessResetKey, error)

PrivKeyToStatelessResetKey 将私钥转换为 QUIC 无状态重置密钥 参数:

  • key: dep2p 私钥

返回:

  • quic.StatelessResetKey: 生成的无状态重置密钥
  • error: 转换过程中的错误,如果成功则返回 nil

func PrivKeyToTokenGeneratorKey

func PrivKeyToTokenGeneratorKey(key crypto.PrivKey) (quic.TokenGeneratorKey, error)

PrivKeyToTokenGeneratorKey 将私钥转换为 QUIC 令牌生成器密钥 参数:

  • key: dep2p 私钥

返回:

  • quic.TokenGeneratorKey: 生成的令牌生成器密钥
  • error: 转换过程中的错误,如果成功则返回 nil

Types

type AddrsFactory

type AddrsFactory = bhost.AddrsFactory

AddrsFactory 是一个函数类型,用于处理节点的地址工厂 参数:

  • 接收一组正在监听的多地址

返回值:

  • 返回一组应该向网络广播的多地址

type AutoNATConfig

type AutoNATConfig struct {
	ForceReachability   *network.Reachability // 强制设置节点的可达性状态
	EnableService       bool                  // 是否启用 AutoNAT 服务
	ThrottleGlobalLimit int                   // 全局限流阈值
	ThrottlePeerLimit   int                   // 每个对等点的限流阈值
	ThrottleInterval    time.Duration         // 限流检查的时间间隔
}

AutoNATConfig 定义了 dep2p host 的 AutoNAT 配置

type Config

type Config struct {
	UserAgent       string // 节点的用户代理标识符
	ProtocolVersion string // 节点使用的协议版本

	PeerKey crypto.PrivKey // 节点的私钥

	// 传输层配置
	QUICReuse          []fx.Option        // QUIC 连接复用的选项
	Transports         []fx.Option        // 传输层的配置选项
	Muxers             []tptu.StreamMuxer // 流多路复用器列表
	SecurityTransports []Security         // 安全传输配置列表
	Insecure           bool               // 是否允许不安全连接
	PSK                pnet.PSK           // 预共享密钥

	// 连接相关配置
	DialTimeout time.Duration // 连接超时时间

	// 中继相关配置
	RelayCustom        bool             // 是否使用自定义中继
	Relay              bool             // 是否启用中继功能
	EnableRelayService bool             // 是否启用中继服务
	RelayServiceOpts   []relayv2.Option // 中继服务的配置选项

	// 网络地址配置
	ListenAddrs     []ma.Multiaddr          // 监听地址列表
	AddrsFactory    bhost.AddrsFactory      // 地址工厂
	ConnectionGater connmgr.ConnectionGater // 连接过滤器

	// 资源管理配置
	ConnManager     connmgr.ConnManager     // 连接管理器
	ResourceManager network.ResourceManager // 资源管理器

	// NAT 和对等存储配置
	NATManager NATManagerC         // NAT 管理器构造函数
	Peerstore  peerstore.Peerstore // 对等点存储
	Reporter   metrics.Reporter    // 指标报告器

	// 网络功能配置
	MultiaddrResolver network.MultiaddrDNSResolver // 多地址 DNS 解析器
	DisablePing       bool                         // 是否禁用 ping
	Routing           RoutingC                     // 路由构造函数

	// 自动中继和 NAT 配置
	EnableAutoRelay bool               // 是否启用自动中继
	AutoRelayOpts   []autorelay.Option // 自动中继选项
	AutoNATConfig                      // AutoNAT 配置

	// 打洞功能配置
	EnableHolePunching  bool               // 是否启用打洞功能
	HolePunchingOptions []holepunch.Option // 打洞选项

	// 监控和指标配置
	DisableMetrics       bool                  // 是否禁用指标收集
	PrometheusRegisterer prometheus.Registerer // Prometheus 注册器

	// 网络优化配置
	DialRanker network.DialRanker // 拨号优先级排序器
	SwarmOpts  []swarm.Option     // Swarm 配置选项

	// 功能开关配置
	DisableIdentifyAddressDiscovery bool // 是否禁用地址发现
	EnableAutoNATv2                 bool // 是否启用 AutoNAT v2

	// 黑洞检测配置
	UDPBlackHoleSuccessCounter        *swarm.BlackHoleSuccessCounter // UDP 黑洞检测成功计数器
	CustomUDPBlackHoleSuccessCounter  bool                           // 是否使用自定义 UDP 黑洞检测计数器
	IPv6BlackHoleSuccessCounter       *swarm.BlackHoleSuccessCounter // IPv6 黑洞检测成功计数器
	CustomIPv6BlackHoleSuccessCounter bool                           // 是否使用自定义 IPv6 黑洞检测计数器

	// 用户自定义配置
	UserFxOptions []fx.Option // 用户自定义的 fx 选项

	// TCP 监听器共享配置
	ShareTCPListener bool // 是否共享 TCP 监听器
}

Config 描述了 dep2p 节点的完整配置

func (*Config) Apply

func (cfg *Config) Apply(opts ...Option) error

Apply 应用一组配置选项 参数:

  • opts: 配置选项列表

返回:

  • error: 应用配置时的错误

func (*Config) NewNode

func (cfg *Config) NewNode() (host.Host, error)

NewNode 从配置构造一个新的 dep2p Host

参数:

返回:

  • host.Host: 创建的 dep2p 主机实例
  • error: 创建过程中的错误

注意: 此函数会消耗配置,不要重复使用它

type NATManagerC

type NATManagerC func(network.Network) bhost.NATManager

NATManagerC 是一个函数类型,用于构造 NAT 管理器 参数:

  • network.Network: 网络对象,用于管理 NAT 穿透

返回值:

  • bhost.NATManager: 返回一个 NAT 管理器实例

type Option

type Option func(cfg *Config) error

Option 是一个函数类型,用于配置 dep2p 参数:

  • cfg: 配置对象指针

返回:

  • error: 配置错误

type RoutingC

type RoutingC func(host.Host) (routing.PeerRouting, error)

RoutingC 是一个函数类型,用于构造对等路由 参数:

  • host.Host: 主机对象,用于路由功能

返回值:

  • routing.PeerRouting: 对等路由实例
  • error: 如果发生错误,返回错误信息

type Security

type Security struct {
	ID          protocol.ID // 安全传输协议的标识符
	Constructor interface{} // 用于构造安全传输的构造器
}

Security 定义了安全传输的配置

Jump to

Keyboard shortcuts

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