dep2p

package module
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: 44 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultConnectionManager = func(cfg *Config) error {

	mgr, err := connmgr.NewConnManager(160, 192)
	if err != nil {
		return err
	}

	return cfg.Apply(ConnectionManager(mgr))
}

DefaultConnectionManager 创建默认的连接管理器 参数:

  • cfg: *Config 配置对象

返回:

  • error: 如果发生错误则返回错误信息
View Source
var DefaultEnableRelay = func(cfg *Config) error {
	return cfg.Apply(EnableRelay())
}

DefaultEnableRelay 默认启用中继拨号和监听 参数:

  • cfg: *Config 配置对象

返回:

  • error: 如果发生错误则返回错误信息
View Source
var DefaultListenAddrs = func(cfg *Config) error {

	addrs := []string{
		"/ip4/0.0.0.0/tcp/0",
		"/ip4/0.0.0.0/udp/0/quic-v1",
		"/ip4/0.0.0.0/udp/0/quic-v1/webtransport",
		"/ip4/0.0.0.0/udp/0/webrtc-direct",
		"/ip6/::/tcp/0",
		"/ip6/::/udp/0/quic-v1",
		"/ip6/::/udp/0/quic-v1/webtransport",
		"/ip6/::/udp/0/webrtc-direct",
	}

	listenAddrs := make([]multiaddr.Multiaddr, 0, len(addrs))

	for _, s := range addrs {
		addr, err := multiaddr.NewMultiaddr(s)
		if err != nil {
			return err
		}
		listenAddrs = append(listenAddrs, addr)
	}
	return cfg.Apply(ListenAddrs(listenAddrs...))
}

DefaultListenAddrs 配置 dep2p 使用默认的监听地址 参数:

  • cfg: *Config 配置对象

返回:

  • error: 如果发生错误则返回错误信息

DefaultMuxers 配置 dep2p 使用流连接多路复用器 当需要扩展而不是替换 dep2p 使用的多路复用器时使用此选项

View Source
var DefaultPrivateTransports = ChainOptions(

	Transport(tcp.NewTCPTransport),

	Transport(ws.New),
)

DefaultPrivateTransports 是提供 PSK 时默认的 dep2p 传输配置 当需要扩展而不是替换 dep2p 使用的传输时使用此选项

View Source
var DefaultPrometheusRegisterer = func(cfg *Config) error {

	return cfg.Apply(PrometheusRegisterer(prometheus.DefaultRegisterer))
}

DefaultPrometheusRegisterer 配置dep2p使用默认的Prometheus注册器 参数:

  • cfg: *Config 配置对象

返回:

  • error: 如果发生错误则返回错误信息
View Source
var DefaultResourceManager = func(cfg *Config) error {

	limits := rcmgr.DefaultLimits
	SetDefaultServiceLimits(&limits)

	mgr, err := rcmgr.NewResourceManager(rcmgr.NewFixedLimiter(limits.AutoScale()))
	if err != nil {
		return err
	}

	return cfg.Apply(ResourceManager(mgr))
}

DefaultResourceManager 配置默认的资源管理器 参数:

  • cfg: *Config 配置对象

返回:

  • error: 如果发生错误则返回错误信息
View Source
var DefaultSecurity = ChainOptions(

	Security(tls.ID, tls.New),

	Security(noise.ID, noise.New),
)

DefaultSecurity 是默认的安全选项配置 当需要扩展而不是替换支持的传输安全协议时很有用

DefaultTransports 是默认的 dep2p 传输配置 当需要扩展而不是替换 dep2p 使用的传输时使用此选项

View Source
var NoListenAddrs = func(cfg *Config) error {
	cfg.ListenAddrs = []ma.Multiaddr{}
	if !cfg.RelayCustom {
		cfg.RelayCustom = true
		cfg.Relay = false
	}
	return nil
}

NoListenAddrs 配置dep2p默认不监听

这将清除任何已配置的监听地址并防止dep2p应用默认监听地址选项 它还禁用中继,除非用户通过选项显式指定,因为传输会创建一个隐式监听地址,使节点可以通过它连接的任何中继进行拨号

View Source
var NoTransports = func(cfg *Config) error {
	cfg.Transports = []fx.Option{}
	return nil
}

NoTransports 配置dep2p不启用任何传输

这将清除任何已配置的传输(在先前的dep2p选项中指定)并防止dep2p应用默认传输

View Source
var RandomIdentity = func(cfg *Config) error {

	priv, _, err := crypto.GenerateEd25519Key(rand.Reader)
	if err != nil {
		return err
	}
	return cfg.Apply(Identity(priv))
}

RandomIdentity 生成随机身份(默认行为) 参数:

  • cfg: *Config 配置对象

返回:

  • error: 如果发生错误则返回错误信息

Functions

func New

func New(opts ...Option) (host.Host, error)

New 使用给定选项构造一个新的 dep2p 节点,如果没有提供某些选项则使用合理的默认值 默认值包括: - 如果未提供传输和监听地址,节点将监听 "/ip4/0.0.0.0/tcp/0" 和 "/ip6/::/tcp/0" - 如果未提供传输选项,节点使用 TCP、websocket 和 QUIC 传输协议 - 如果未提供多路复用器配置,节点默认使用 yamux - 如果未提供安全传输,主机使用 go-dep2p 的 noise 和/或 tls 加密传输来加密所有流量 - 如果未提供对等身份,它会生成一个随机的 Ed25519 密钥对并从中派生新身份 - 如果未提供对等存储,主机将使用空的对等存储进行初始化

参数:

  • opts: ...Option 配置选项列表

返回:

  • host.Host: 新创建的 dep2p 主机
  • error: 如果发生错误则返回错误信息

func NewWithoutDefaults

func NewWithoutDefaults(opts ...Option) (host.Host, error)

NewWithoutDefaults 使用给定选项构造新的 dep2p 节点,但不使用默认值 警告: 此函数不应被视为稳定接口 我们可能随时选择添加必需的服务,使用此函数即表示您选择不使用我们可能提供的任何默认值

参数:

  • opts: ...Option 配置选项列表

返回:

  • host.Host: 新创建的 dep2p 主机
  • error: 如果发生错误则返回错误信息

func SetDefaultServiceLimits

func SetDefaultServiceLimits(config *rcmgr.ScalingLimitConfig)

SetDefaultServiceLimits 为内置的 dep2p 服务设置默认限制 参数:

  • config: *rcmgr.ScalingLimitConfig 资源限制配置对象

Types

type Config

type Config = config.Config

Config 描述了 dep2p 节点的一组设置

type Option

type Option = config.Option

Option 是一个 dep2p 配置选项,可以传递给 dep2p 构造函数 (`dep2p.New`)

var DefaultPeerstore Option = func(cfg *Config) error {

	ps, err := pstoremem.NewPeerstore()
	if err != nil {
		log.Debugf("创建内存对等点存储失败: %s", err)
		return err
	}
	return cfg.Apply(Peerstore(ps))
}

DefaultPeerstore 配置 dep2p 使用默认的对等点存储 参数:

  • cfg: *Config 配置对象

返回:

  • error: 如果发生错误则返回错误信息
var Defaults Option = func(cfg *Config) error {

	for _, def := range defaults {
		if err := cfg.Apply(def.opt); err != nil {
			return err
		}
	}
	return nil
}

Defaults 配置dep2p使用默认选项 可以与其他选项组合以扩展默认选项 参数:

  • cfg: *Config 配置对象

返回:

  • error: 如果发生错误则返回错误信息
var FallbackDefaults Option = func(cfg *Config) error {

	for _, def := range defaults {

		if !def.fallback(cfg) {
			continue
		}

		if err := cfg.Apply(def.opt); err != nil {
			return err
		}
	}
	return nil
}

FallbackDefaults 仅在未应用其他相关选项时才应用默认选项 将被附加到传递给New的选项中 参数:

  • cfg: *Config 配置对象

返回:

  • error: 如果发生错误则返回错误信息
var NoSecurity Option = func(cfg *Config) error {
	if len(cfg.SecurityTransports) > 0 {
		log.Debugf("不能在不安全的dep2p配置中使用安全传输")
		return fmt.Errorf("不能在不安全的dep2p配置中使用安全传输")
	}
	cfg.Insecure = true
	return nil
}

NoSecurity 是一个完全禁用所有传输安全的选项 它与所有其他传输安全协议不兼容

func AddrsFactory

func AddrsFactory(factory config.AddrsFactory) Option

AddrsFactory 配置dep2p使用给定的地址工厂 参数:

  • factory: 地址工厂实现

返回:

  • Option: 配置函数

func AutoNATServiceRateLimit

func AutoNATServiceRateLimit(global, perPeer int, interval time.Duration) Option

AutoNATServiceRateLimit 更改帮助其他对等点确定其可达性状态的默认速率限制 设置后,主机将限制在每60秒期间响应的请求数量为设定的数字 值为'0'禁用限制 参数:

  • global: 全局限制
  • perPeer: 每个对等点限制
  • interval: 限制间隔

返回:

  • Option: 配置函数

func BandwidthReporter

func BandwidthReporter(rep metrics.Reporter) Option

BandwidthReporter 配置dep2p使用给定的带宽报告器 参数:

  • rep: 带宽报告器实现

返回:

  • Option: 配置函数

func ChainOptions

func ChainOptions(opts ...Option) Option

ChainOptions 将多个选项链接成单个选项 参数:

  • opts: ...Option 要链接的选项列表

返回:

  • Option: 链接后的单个选项函数

func ConnectionGater

func ConnectionGater(cg connmgr.ConnectionGater) Option

ConnectionGater 配置dep2p使用给定的ConnectionGater根据连接的生命周期阶段主动拒绝入站/出站连接 参数:

  • cg: 连接门控器实现

返回:

  • Option: 配置函数

func ConnectionManager

func ConnectionManager(connman connmgr.ConnManager) Option

ConnectionManager 配置dep2p使用给定的连接管理器 当前"标准"连接管理器位于github.com/dep2p/go-dep2p-connmgr 参数:

  • connman: 连接管理器实现

返回:

  • Option: 配置函数

func DialRanker

func DialRanker(d network.DialRanker) Option

DialRanker 配置dep2p使用d作为拨号排序器。要启用智能拨号,使用`swarm.DefaultDialRanker`。使用`swarm.NoDelayDialRanker`禁用智能拨号

已弃用:使用SwarmOpts(swarm.WithDialRanker(d))代替 参数:

  • d: 拨号排序器实现

返回:

  • Option: 配置函数

func DisableIdentifyAddressDiscovery

func DisableIdentifyAddressDiscovery() Option

DisableIdentifyAddressDiscovery 禁用使用对等点在identify中提供的观察地址进行地址发现 如果你预先知道你的公共地址,建议使用AddressFactory为主机提供外部地址,并使用此选项禁用从identify进行的地址发现 参数:

返回:

  • Option: 配置函数

func DisableMetrics

func DisableMetrics() Option

DisableMetrics 配置dep2p禁用prometheus指标 返回:

  • Option: 配置函数

func DisableRelay

func DisableRelay() Option

DisableRelay 配置dep2p禁用中继传输 返回:

  • Option: 配置函数

func EnableAutoNATv2

func EnableAutoNATv2() Option

EnableAutoNATv2 启用AutoNAT v2功能 参数:

返回:

  • Option: 配置函数

func EnableAutoRelay

func EnableAutoRelay(opts ...autorelay.Option) Option

EnableAutoRelay 配置dep2p启用AutoRelay子系统 依赖:

  • 中继(默认启用)
  • 以下之一: 1. 静态中继列表 2. 提供中继chan的PeerSource函数。参见`autorelay.WithPeerSource`

当检测到节点公开不可访问时(例如在NAT后面),此子系统执行自动地址重写以通告中继地址

已弃用:使用EnableAutoRelayWithStaticRelays或EnableAutoRelayWithPeerSource 参数:

  • opts: AutoRelay选项

返回:

  • Option: 配置函数

func EnableAutoRelayWithPeerSource

func EnableAutoRelayWithPeerSource(peerSource autorelay.PeerSource, opts ...autorelay.Option) Option

EnableAutoRelayWithPeerSource 使用提供的PeerSource回调获取更多中继候选者来配置dep2p启用AutoRelay子系统 当检测到节点公开不可访问时(例如在NAT后面),此子系统执行自动地址重写以通告中继地址 参数:

  • peerSource: 对等点源回调函数
  • opts: AutoRelay选项

返回:

  • Option: 配置函数

func EnableAutoRelayWithStaticRelays

func EnableAutoRelayWithStaticRelays(static []peer.AddrInfo, opts ...autorelay.Option) Option

EnableAutoRelayWithStaticRelays 使用提供的中继作为中继候选者配置dep2p启用AutoRelay子系统 当检测到节点公开不可访问时(例如在NAT后面),此子系统执行自动地址重写以通告中继地址 参数:

  • static: 静态中继地址信息列表
  • opts: AutoRelay选项

返回:

  • Option: 配置函数

func EnableHolePunching

func EnableHolePunching(opts ...holepunch.Option) Option

Experimental EnableHolePunching 通过使NAT后的对等点能够发起和响应打洞尝试来启用NAT穿透,以创建与其他对等点的直接/NAT穿透连接(默认:禁用)

依赖:

  • 中继(默认启用)

此子系统执行两个功能:

  1. 在接收入站中继连接时,它通过在中继连接上发起和协调打洞来尝试与远程对等点创建直接连接
  2. 如果对等点在出站中继连接上看到协调打洞的请求,它将参与打洞以创建与远程对等点的直接连接

如果打洞成功,所有新流都将在打洞连接上创建 中继连接最终将在宽限期后关闭

用户必须重新打开中继连接上所有现有的无限期长期流在打洞连接上 用户可以使用Network发出的"Connected"/"Disconnected"通知来实现此目的

启用"AutoRelay"选项(参见"EnableAutoRelay")不是强制性的,但很好,这样如果对等点通过AutoNAT发现它是NAT后的并且通过私有可达性,它就可以发现并连接到中继服务器 这将使其能够通告中继地址,这些地址可用于接受入站中继连接以协调打洞

如果配置了"EnableAutoRelay"并且用户确信对等点具有私有可达性/在NAT后,可以配置"ForceReachabilityPrivate"选项以短路通过AutoNAT的可达性发现,以便对等点可以立即开始连接到中继服务器

如果配置了"EnableAutoRelay",可以使用"StaticRelays"选项配置一组静态中继服务器供"AutoRelay"连接,这样它就不需要通过路由发现中继服务器 参数:

  • opts: 打洞选项

返回:

  • Option: 配置函数

func EnableNATService

func EnableNATService() Option

EnableNATService 配置dep2p为对等点提供确定其可达性状态的服务 启用后,主机将尝试回拨对等点,然后告诉它们是否成功建立此类连接 返回:

  • Option: 配置函数

func EnableRelay

func EnableRelay() Option

EnableRelay 配置dep2p启用中继传输 此选项仅配置dep2p接受来自中继的入站连接,并在远程对等方请求时通过中继进行出站连接 此选项支持circuit v1和v2连接 (默认:启用) 返回:

  • Option: 配置函数

func EnableRelayService

func EnableRelayService(opts ...relayv2.Option) Option

EnableRelayService 配置dep2p运行circuit v2中继,如果我们检测到我们是公开可访问的 参数:

  • opts: 中继选项

返回:

  • Option: 配置函数

func ForceReachabilityPrivate

func ForceReachabilityPrivate() Option

ForceReachabilityPrivate 覆盖AutoNAT子系统中的自动可达性检测,强制本地节点相信它在NAT后面且外部不可达 返回:

  • Option: 配置函数

func ForceReachabilityPublic

func ForceReachabilityPublic() Option

ForceReachabilityPublic 覆盖AutoNAT子系统中的自动可达性检测,强制本地节点相信它是外部可达的 返回:

  • Option: 配置函数

func IPv6BlackHoleSuccessCounter

func IPv6BlackHoleSuccessCounter(f *swarm.BlackHoleSuccessCounter) Option

IPv6BlackHoleSuccessCounter 配置dep2p使用f作为IPv6地址的黑洞过滤器 参数:

  • f: *swarm.BlackHoleSuccessCounter 黑洞成功计数器

返回:

  • Option: 配置函数

func Identity

func Identity(sk crypto.PrivKey) Option

Identity 配置dep2p使用给定的私钥来标识自己 参数:

  • sk: 私钥

返回:

  • Option: 配置函数

func ListenAddrStrings

func ListenAddrStrings(s ...string) Option

ListenAddrStrings 配置dep2p监听给定的(未解析的)地址 参数:

  • s: 要监听的地址字符串切片

返回:

  • Option: 配置函数

func ListenAddrs

func ListenAddrs(addrs ...ma.Multiaddr) Option

ListenAddrs 配置dep2p监听给定的地址 参数:

  • addrs: 要监听的multiaddr地址切片

返回:

  • Option: 配置函数

func MultiaddrResolver

func MultiaddrResolver(rslv network.MultiaddrDNSResolver) Option

MultiaddrResolver 设置dep2p dns解析器 参数:

  • rslv: multiaddr DNS解析器实现

返回:

  • Option: 配置函数

func Muxer

func Muxer(name string, muxer network.Multiplexer) Option

Muxer 配置dep2p使用给定的流多路复用器 参数:

  • name: 协议名称
  • muxer: 多路复用器实现

返回:

  • Option: 配置函数

func NATManager

func NATManager(nm config.NATManagerC) Option

NATManager 配置dep2p使用请求的NATManager 此函数应传入一个接受dep2p Network的NATManager构造函数 参数:

  • nm: NAT管理器构造函数

返回:

  • Option: 配置函数

func NATPortMap

func NATPortMap() Option

NATPortMap 配置dep2p使用默认的NATManager 默认NATManager将尝试使用UPnP在网络防火墙中打开端口 返回:

  • Option: 配置函数

func Peerstore

func Peerstore(ps peerstore.Peerstore) Option

Peerstore 配置dep2p使用给定的peerstore 参数:

  • ps: peerstore实现

返回:

  • Option: 配置函数

func Ping

func Ping(enable bool) Option

Ping 配置dep2p支持ping服务;默认启用 参数:

  • enable: 是否启用ping

返回:

  • Option: 配置函数

func PrivateNetwork

func PrivateNetwork(psk pnet.PSK) Option

PrivateNetwork 配置dep2p使用给定的私有网络保护器 参数:

  • psk: 预共享密钥

返回:

  • Option: 配置函数

func PrometheusRegisterer

func PrometheusRegisterer(reg prometheus.Registerer) Option

PrometheusRegisterer 配置dep2p使用reg作为所有指标子系统的注册器 参数:

  • reg: prometheus注册器

返回:

  • Option: 配置函数

func ProtocolVersion

func ProtocolVersion(s string) Option

ProtocolVersion 设置dep2p Identify协议所需的协议版本字符串 参数:

  • s: 协议版本字符串

返回:

  • Option: 配置函数

func QUICReuse

func QUICReuse(constructor interface{}, opts ...quicreuse.Option) Option

QUICReuse 配置QUIC传输的地址重用 参数:

  • constructor: QUIC构造函数
  • opts: QUIC选项

返回:

  • Option: 配置函数

func ResourceManager

func ResourceManager(rcmgr network.ResourceManager) Option

ResourceManager 配置dep2p使用给定的ResourceManager 当使用p2p/host/resource-manager实现ResourceManager接口时,建议通过调用SetDefaultServiceLimits为dep2p协议设置限制 参数:

  • rcmgr: 资源管理器实现

返回:

  • Option: 配置函数

func Routing

func Routing(rt config.RoutingC) Option

Routing 配置dep2p使用路由 参数:

  • rt: 路由构造函数

返回:

  • Option: 配置函数

func Security

func Security(name string, constructor interface{}) Option

Security 配置dep2p使用给定的安全传输(或传输构造函数) 参数:

  • name: 协议名称
  • constructor: 传输构造函数,可以是已构造的security.Transport或一个函数,该函数可以接受以下任意参数:
  • 公钥
  • 私钥
  • Peer ID
  • Host
  • Network
  • Peerstore

返回:

  • Option: 配置函数

func ShareTCPListener

func ShareTCPListener() Option

ShareTCPListener 在TCP和Websocket传输之间共享相同的监听地址,这允许两种传输使用相同的TCP端口 目前此行为是可选的。在未来的版本中,这将成为默认行为,此选项将被移除 参数:

返回:

  • Option: 配置函数

func SwarmOpts

func SwarmOpts(opts ...swarm.Option) Option

SwarmOpts 配置dep2p使用带选项的swarm 参数:

  • opts: swarm选项

返回:

  • Option: 配置函数

func Transport

func Transport(constructor interface{}, opts ...interface{}) Option

Transport 配置dep2p使用给定的传输(或传输构造函数) 参数:

  • constructor: 传输构造函数,可以是已构造的transport.Transport或一个函数,该函数可以接受以下任意参数:
  • Transport Upgrader (*tptu.Upgrader)
  • Host
  • Stream muxer (muxer.Transport)
  • Security transport (security.Transport)
  • Private network protector (pnet.Protector)
  • Peer ID
  • Private Key
  • Public Key
  • Address filter (filter.Filter)
  • Peerstore
  • opts: 传输选项

返回:

  • Option: 配置函数

func UDPBlackHoleSuccessCounter

func UDPBlackHoleSuccessCounter(f *swarm.BlackHoleSuccessCounter) Option

UDPBlackHoleSuccessCounter 配置dep2p使用f作为UDP地址的黑洞过滤器 参数:

  • f: *swarm.BlackHoleSuccessCounter 黑洞成功计数器

返回:

  • Option: 配置函数

func UserAgent

func UserAgent(userAgent string) Option

UserAgent 设置与identify协议一起发送的dep2p用户代理 参数:

  • userAgent: 用户代理字符串

返回:

  • Option: 配置函数

func WithDialTimeout

func WithDialTimeout(t time.Duration) Option

WithDialTimeout 设置拨号超时时间 参数:

  • t: 超时时间

返回:

  • Option: 配置函数

func WithFxOption

func WithFxOption(opts ...fx.Option) Option

WithFxOption 添加用户提供的fx.Option到dep2p构造函数中 实验性功能:此选项可能会更改或删除 参数:

  • opts: ...fx.Option fx选项列表

返回:

  • Option: 配置函数

Directories

Path Synopsis
Package cid implements the Content-IDentifiers specification (https://github.com/ipld/cid) in Go.
Package cid implements the Content-IDentifiers specification (https://github.com/ipld/cid) in Go.
Package core 通过类型别名提供对基础的、核心的 go-dep2p 原语的便捷访问。
Package core 通过类型别名提供对基础的、核心的 go-dep2p 原语的便捷访问。
connmgr
connmgr 包为 dep2p 提供连接跟踪和管理接口。
connmgr 包为 dep2p 提供连接跟踪和管理接口。
crypto
Package crypto 实现了dep2p使用的各种加密工具。
Package crypto 实现了dep2p使用的各种加密工具。
discovery
Package discovery 提供了dep2p的服务广告和节点发现接口
Package discovery 提供了dep2p的服务广告和节点发现接口
event
Package event 包含本地事件总线的抽象,以及 dep2p 子系统可能发出的标准事件。
Package event 包含本地事件总线的抽象,以及 dep2p 子系统可能发出的标准事件。
host
Package host 提供了 dep2p 的核心 Host 接口。
Package host 提供了 dep2p 的核心 Host 接口。
metrics
Package metrics 提供了 dep2p 的指标收集和报告接口。
Package metrics 提供了 dep2p 的指标收集和报告接口。
network
Package network 提供了dep2p的核心网络抽象层。
Package network 提供了dep2p的核心网络抽象层。
network/mocks
Package mocknetwork 是一个由 GoMock 生成的包
Package mocknetwork 是一个由 GoMock 生成的包
peer
Package peer 实现了用于表示 dep2p 网络中对等节点的对象
Package peer 实现了用于表示 dep2p 网络中对等节点的对象
peerstore
Package peerstore provides types and interfaces for local storage of address information, metadata, and public key material about dep2p peers.
Package peerstore provides types and interfaces for local storage of address information, metadata, and public key material about dep2p peers.
pnet
Package pnet 提供 dep2p 中私有网络的接口。
Package pnet 提供 dep2p 中私有网络的接口。
protocol
Package protocol 提供了 dep2p 中用于协议路由和协商的核心接口。
Package protocol 提供了 dep2p 中用于协议路由和协商的核心接口。
sec
Package sec 提供了 dep2p 的安全连接和传输接口
Package sec 提供了 dep2p 的安全连接和传输接口
sec/insecure
Package insecure 提供了一个不安全的、未加密的 SecureConn 和 SecureTransport 接口实现。
Package insecure 提供了一个不安全的、未加密的 SecureConn 和 SecureTransport 接口实现。
transport
Package transport 提供了 Transport 接口,它代表用于发送和接收数据的设备和网络协议。
Package transport 提供了 Transport 接口,它代表用于发送和接收数据的设备和网络协议。
autobatch
Package autobatch provides a go-datastore implementation that automatically batches together writes by holding puts in memory until a certain threshold is met.
Package autobatch provides a go-datastore implementation that automatically batches together writes by holding puts in memory until a certain threshold is met.
delayed
Package delayed wraps a datastore allowing to artificially delay all operations.
Package delayed wraps a datastore allowing to artificially delay all operations.
examples
Package fs is a simple Datastore implementation that stores keys as directories and files, mirroring the key.
Package fs is a simple Datastore implementation that stores keys as directories and files, mirroring the key.
failstore
Package failstore implements a datastore which can produce custom failures on operations by calling a user-provided error function.
Package failstore implements a datastore which can produce custom failures on operations by calling a user-provided error function.
keytransform
Package keytransform introduces a Datastore Shim that transforms keys before passing them to its child.
Package keytransform introduces a Datastore Shim that transforms keys before passing them to its child.
mount
Package mount provides a Datastore that has other Datastores mounted at various key prefixes and is threadsafe
Package mount provides a Datastore that has other Datastores mounted at various key prefixes and is threadsafe
namespace
Package namespace introduces a namespace Datastore Shim, which basically mounts the entire child datastore under a prefix.
Package namespace introduces a namespace Datastore Shim, which basically mounts the entire child datastore under a prefix.
retrystore
Package retrystore provides a datastore wrapper which allows to retry operations.
Package retrystore provides a datastore wrapper which allows to retry operations.
multiformats
base32
Package base32 implements base32 encoding as specified by RFC 4648.
Package base32 implements base32 encoding as specified by RFC 4648.
base36
Package base36 provides a reasonably fast implementation of a binary base36 codec.
Package base36 provides a reasonably fast implementation of a binary base36 codec.
multiaddr
Package multiaddr provides an implementation of the Multiaddr network address format.
Package multiaddr provides an implementation of the Multiaddr network address format.
multiaddr/net
Package manet provides Multiaddr specific versions of common functions in stdlib's net package.
Package manet provides Multiaddr specific versions of common functions in stdlib's net package.
multicodec
Package multicodec exposes the multicodec table as Go constants.
Package multicodec exposes the multicodec table as Go constants.
multihash
Package multihash is the Go implementation of https://github.com/multiformats/multihash, or self-describing hashes.
Package multihash is the Go implementation of https://github.com/multiformats/multihash, or self-describing hashes.
multihash/opts
Package opts helps to write commands which may take multihash options.
Package opts helps to write commands which may take multihash options.
multihash/register/all
This package has no purpose except to perform registration of mulithashes.
This package has no purpose except to perform registration of mulithashes.
multihash/register/blake2
This package has no purpose except to perform registration of multihashes.
This package has no purpose except to perform registration of multihashes.
multihash/register/blake3
This package has no purpose except to register the blake3 hash function.
This package has no purpose except to register the blake3 hash function.
multihash/register/miniosha256
This package has no purpose except to perform registration of multihashes.
This package has no purpose except to perform registration of multihashes.
multihash/register/murmur3
This package has no purpose except to perform registration of multihashes.
This package has no purpose except to perform registration of multihashes.
multihash/register/sha256
This package has no purpose except to perform registration of multihashes.
This package has no purpose except to perform registration of multihashes.
multihash/register/sha3
This package has no purpose except to perform registration of multihashes.
This package has no purpose except to perform registration of multihashes.
multihash/test/sharness/t0030-lib
Generate hasher input that matches BLAKE3's test vectors.
Generate hasher input that matches BLAKE3's test vectors.
multistream
Package multistream implements a simple stream router for the multistream-select protocoli.
Package multistream implements a simple stream router for the multistream-select protocoli.
p2p
host/peerstore/pstoreds
已弃用: 基于数据库的 peerstore 将在未来从 go-dep2p 中移除。
已弃用: 基于数据库的 peerstore 将在未来从 go-dep2p 中移除。
host/resource-manager
rcmgr 包是 go-dep2p 的资源管理器。
rcmgr 包是 go-dep2p 的资源管理器。
host/resource-manager/obs
Package obs 实现资源管理器的指标跟踪
Package obs 实现资源管理器的指标跟踪
http
HTTP semantics with dep2p.
HTTP semantics with dep2p.
net/gostream
Package gostream 允许使用 [DeP2P](https://github.com/dep2p) 流替换 Go 中的标准网络栈。
Package gostream 允许使用 [DeP2P](https://github.com/dep2p) 流替换 Go 中的标准网络栈。
net/mock
Package mocknet 提供了一个用于测试的模拟网络 net.Network。
Package mocknet 提供了一个用于测试的模拟网络 net.Network。
net/reuseport
Package reuseport 提供了一个基础传输层,用于自动(且智能地)复用TCP端口
Package reuseport 提供了一个基础传输层,用于自动(且智能地)复用TCP端口
transport/webrtc/udpmux
The udpmux package contains the logic for multiplexing multiple WebRTC (ICE) connections over a single UDP socket.
The udpmux package contains the logic for multiplexing multiple WebRTC (ICE) connections over a single UDP socket.
transport/websocket
websocket 包实现了基于 websocket 的 go-dep2p 传输层
websocket 包实现了基于 websocket 的 go-dep2p 传输层
p2plib
asn/util
Package asnutil provides a mapping lookup for IPv6 ASNs.
Package asnutil provides a mapping lookup for IPv6 ASNs.
buffer/pool
Package pool provides a sync.Pool equivalent that buckets incoming requests to one of 32 sub-pools, one for each power of 2, 0-32.
Package pool provides a sync.Pool equivalent that buckets incoming requests to one of 32 sub-pools, one for each power of 2, 0-32.
msgio/pbio
Package pbio 读写带有 varint 前缀的 protobuf 消息,使用 Google 的 Protobuf 包。
Package pbio 读写带有 varint 前缀的 protobuf 消息,使用 Google 的 Protobuf 包。
msgio/protoio
Package protoio 提供了带有 varint 前缀的 protobuf 消息读写功能。
Package protoio 提供了带有 varint 前缀的 protobuf 消息读写功能。
nat
Package nat implements NAT handling facilities
Package nat implements NAT handling facilities
netroute
Originally found in https://github.com/google/gopacket/blob/master/routing/routing.go
Originally found in https://github.com/google/gopacket/blob/master/routing/routing.go
reuseport
Package reuseport provides Listen and Dial functions that set socket options in order to be able to reuse ports.
Package reuseport provides Listen and Dial functions that set socket options in order to be able to reuse ports.
zeroconf
Package zeroconf is a pure Golang library that employs Multicast DNS-SD for browsing and resolving services in your network and registering own services in the local network.
Package zeroconf is a pure Golang library that employs Multicast DNS-SD for browsing and resolving services in your network and registering own services in the local network.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳