Documentation
¶
Index ¶
- Variables
- func New(opts ...Option) (host.Host, error)
- func NewWithoutDefaults(opts ...Option) (host.Host, error)
- func SetDefaultServiceLimits(config *rcmgr.ScalingLimitConfig)
- type Config
- type Option
- func AddrsFactory(factory config.AddrsFactory) Option
- func AutoNATServiceRateLimit(global, perPeer int, interval time.Duration) Option
- func BandwidthReporter(rep metrics.Reporter) Option
- func ChainOptions(opts ...Option) Option
- func ConnectionGater(cg connmgr.ConnectionGater) Option
- func ConnectionManager(connman connmgr.ConnManager) Option
- func DialRanker(d network.DialRanker) Option
- func DisableIdentifyAddressDiscovery() Option
- func DisableMetrics() Option
- func DisableRelay() Option
- func EnableAutoNATv2() Option
- func EnableAutoRelay(opts ...autorelay.Option) Option
- func EnableAutoRelayWithPeerSource(peerSource autorelay.PeerSource, opts ...autorelay.Option) Option
- func EnableAutoRelayWithStaticRelays(static []peer.AddrInfo, opts ...autorelay.Option) Option
- func EnableHolePunching(opts ...holepunch.Option) Option
- func EnableNATService() Option
- func EnableRelay() Option
- func EnableRelayService(opts ...relayv2.Option) Option
- func ForceReachabilityPrivate() Option
- func ForceReachabilityPublic() Option
- func IPv6BlackHoleSuccessCounter(f *swarm.BlackHoleSuccessCounter) Option
- func Identity(sk crypto.PrivKey) Option
- func ListenAddrStrings(s ...string) Option
- func ListenAddrs(addrs ...ma.Multiaddr) Option
- func MultiaddrResolver(rslv network.MultiaddrDNSResolver) Option
- func Muxer(name string, muxer network.Multiplexer) Option
- func NATManager(nm config.NATManagerC) Option
- func NATPortMap() Option
- func Peerstore(ps peerstore.Peerstore) Option
- func Ping(enable bool) Option
- func PrivateNetwork(psk pnet.PSK) Option
- func PrometheusRegisterer(reg prometheus.Registerer) Option
- func ProtocolVersion(s string) Option
- func QUICReuse(constructor interface{}, opts ...quicreuse.Option) Option
- func ResourceManager(rcmgr network.ResourceManager) Option
- func Routing(rt config.RoutingC) Option
- func Security(name string, constructor interface{}) Option
- func ShareTCPListener() Option
- func SwarmOpts(opts ...swarm.Option) Option
- func Transport(constructor interface{}, opts ...interface{}) Option
- func UDPBlackHoleSuccessCounter(f *swarm.BlackHoleSuccessCounter) Option
- func UserAgent(userAgent string) Option
- func WithDialTimeout(t time.Duration) Option
- func WithFxOption(opts ...fx.Option) Option
Constants ¶
This section is empty.
Variables ¶
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: 如果发生错误则返回错误信息
var DefaultEnableRelay = func(cfg *Config) error { return cfg.Apply(EnableRelay()) }
DefaultEnableRelay 默认启用中继拨号和监听 参数:
- cfg: *Config 配置对象
返回:
- error: 如果发生错误则返回错误信息
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: 如果发生错误则返回错误信息
var DefaultMuxers = Muxer(yamux.ID, yamux.DefaultTransport)
DefaultMuxers 配置 dep2p 使用流连接多路复用器 当需要扩展而不是替换 dep2p 使用的多路复用器时使用此选项
var DefaultPrivateTransports = ChainOptions( Transport(tcp.NewTCPTransport), Transport(ws.New), )
DefaultPrivateTransports 是提供 PSK 时默认的 dep2p 传输配置 当需要扩展而不是替换 dep2p 使用的传输时使用此选项
var DefaultPrometheusRegisterer = func(cfg *Config) error { return cfg.Apply(PrometheusRegisterer(prometheus.DefaultRegisterer)) }
DefaultPrometheusRegisterer 配置dep2p使用默认的Prometheus注册器 参数:
- cfg: *Config 配置对象
返回:
- error: 如果发生错误则返回错误信息
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: 如果发生错误则返回错误信息
var DefaultSecurity = ChainOptions( Security(tls.ID, tls.New), Security(noise.ID, noise.New), )
DefaultSecurity 是默认的安全选项配置 当需要扩展而不是替换支持的传输安全协议时很有用
var DefaultTransports = ChainOptions( Transport(tcp.NewTCPTransport), Transport(quic.NewTransport), Transport(ws.New), Transport(webtransport.New), Transport(dep2pwebrtc.New), )
DefaultTransports 是默认的 dep2p 传输配置 当需要扩展而不是替换 dep2p 使用的传输时使用此选项
var NoListenAddrs = func(cfg *Config) error { cfg.ListenAddrs = []ma.Multiaddr{} if !cfg.RelayCustom { cfg.RelayCustom = true cfg.Relay = false } return nil }
NoListenAddrs 配置dep2p默认不监听
这将清除任何已配置的监听地址并防止dep2p应用默认监听地址选项 它还禁用中继,除非用户通过选项显式指定,因为传输会创建一个隐式监听地址,使节点可以通过它连接的任何中继进行拨号
var NoTransports = func(cfg *Config) error { cfg.Transports = []fx.Option{} return nil }
NoTransports 配置dep2p不启用任何传输
这将清除任何已配置的传输(在先前的dep2p选项中指定)并防止dep2p应用默认传输
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 ¶
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 ¶
NewWithoutDefaults 使用给定选项构造新的 dep2p 节点,但不使用默认值 警告: 此函数不应被视为稳定接口 我们可能随时选择添加必需的服务,使用此函数即表示您选择不使用我们可能提供的任何默认值
参数:
- opts: ...Option 配置选项列表
返回:
- host.Host: 新创建的 dep2p 主机
- error: 如果发生错误则返回错误信息
func SetDefaultServiceLimits ¶
func SetDefaultServiceLimits(config *rcmgr.ScalingLimitConfig)
SetDefaultServiceLimits 为内置的 dep2p 服务设置默认限制 参数:
- config: *rcmgr.ScalingLimitConfig 资源限制配置对象
Types ¶
type 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 ¶
AutoNATServiceRateLimit 更改帮助其他对等点确定其可达性状态的默认速率限制 设置后,主机将限制在每60秒期间响应的请求数量为设定的数字 值为'0'禁用限制 参数:
- global: 全局限制
- perPeer: 每个对等点限制
- interval: 限制间隔
返回:
- 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 EnableAutoNATv2 ¶
func EnableAutoNATv2() Option
EnableAutoNATv2 启用AutoNAT v2功能 参数:
- 无
返回:
- Option: 配置函数
func EnableAutoRelay ¶
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 ¶
EnableAutoRelayWithStaticRelays 使用提供的中继作为中继候选者配置dep2p启用AutoRelay子系统 当检测到节点公开不可访问时(例如在NAT后面),此子系统执行自动地址重写以通告中继地址 参数:
- static: 静态中继地址信息列表
- opts: AutoRelay选项
返回:
- Option: 配置函数
func EnableHolePunching ¶
Experimental EnableHolePunching 通过使NAT后的对等点能够发起和响应打洞尝试来启用NAT穿透,以创建与其他对等点的直接/NAT穿透连接(默认:禁用)
依赖:
- 中继(默认启用)
此子系统执行两个功能:
- 在接收入站中继连接时,它通过在中继连接上发起和协调打洞来尝试与远程对等点创建直接连接
- 如果对等点在出站中继连接上看到协调打洞的请求,它将参与打洞以创建与远程对等点的直接连接
如果打洞成功,所有新流都将在打洞连接上创建 中继连接最终将在宽限期后关闭
用户必须重新打开中继连接上所有现有的无限期长期流在打洞连接上 用户可以使用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 ¶
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 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 PrometheusRegisterer ¶
func PrometheusRegisterer(reg prometheus.Registerer) Option
PrometheusRegisterer 配置dep2p使用reg作为所有指标子系统的注册器 参数:
- reg: prometheus注册器
返回:
- Option: 配置函数
func ResourceManager ¶
func ResourceManager(rcmgr network.ResourceManager) Option
ResourceManager 配置dep2p使用给定的ResourceManager 当使用p2p/host/resource-manager实现ResourceManager接口时,建议通过调用SetDefaultServiceLimits为dep2p协议设置限制 参数:
- rcmgr: 资源管理器实现
返回:
- Option: 配置函数
func Security ¶
Security 配置dep2p使用给定的安全传输(或传输构造函数) 参数:
- name: 协议名称
- constructor: 传输构造函数,可以是已构造的security.Transport或一个函数,该函数可以接受以下任意参数:
- 公钥
- 私钥
- Peer ID
- Host
- Network
- Peerstore
返回:
- Option: 配置函数
func ShareTCPListener ¶
func ShareTCPListener() Option
ShareTCPListener 在TCP和Websocket传输之间共享相同的监听地址,这允许两种传输使用相同的TCP端口 目前此行为是可选的。在未来的版本中,这将成为默认行为,此选项将被移除 参数:
- 无
返回:
- 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 WithFxOption ¶
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. |