# Packages
Package mocknetwork 是一个由 GoMock 生成的包.
# Functions
GetAllowLimitedConn 返回上下文中是否设置了允许受限连接选项。 参数: - ctx: 要检查的上下文
返回: - usetransient: 是否允许受限连接 - reason: 允许受限连接的原因.
GetDialPeerTimeout 返回当前的 DialPeer 超时时间(或默认值)。 参数: - ctx: 要检查的上下文
返回: - time.Duration: 拨号超时时间.
EXPERIMENTAL GetForceDirectDial 返回上下文中是否设置了强制直接拨号选项。 参数: - ctx: 要检查的上下文
返回: - forceDirect: 是否设置了强制直接拨号 - reason: 设置强制直接拨号的原因.
GetNoDial 返回上下文中是否设置了禁用拨号选项。 参数: - ctx: 要检查的上下文
返回: - nodial: 是否禁用拨号 - reason: 禁用拨号的原因.
GetSimultaneousConnect 返回上下文中是否设置了同步连接选项。 EXPERIMENTAL 参数: - ctx: 要检查的上下文
返回: - simconnect: 是否设置了同步连接 - isClient: 是否为客户端 - reason: 使用同步连接的原因.
GetUseTransient 返回上下文中是否设置了使用临时连接选项。
已弃用: 请改用 GetAllowLimitedConn。 参数: - ctx: 要检查的上下文
返回: - usetransient: 是否允许临时连接 - reason: 允许临时连接的原因.
WithAllowLimitedConn 构造一个新的上下文,其中包含一个选项,该选项指示 网络在打开新流时可以使用受限连接。 参数: - ctx: 父上下文 - reason: 允许受限连接的原因
返回: - context.Context: 带有允许受限连接选项的新上下文.
WithDialPeerTimeout 返回一个应用了 DialPeer 超时时间的新上下文。
此超时时间会覆盖默认的 DialPeerTimeout,并独立应用于每个拨号。 参数: - ctx: 父上下文 - timeout: 要设置的超时时间
返回: - context.Context: 带有拨号超时选项的新上下文.
EXPERIMENTAL WithForceDirectDial 构造一个新的上下文,其中包含一个选项,该选项指示网络尝试通过拨号强制与对等点建立直接连接,即使已存在到该对等点的代理连接。 参数: - ctx: 父上下文 - reason: 强制直接拨号的原因
返回: - context.Context: 带有强制直接拨号选项的新上下文.
WithNoDial 构造一个新的上下文,其中包含一个选项,该选项指示网络在打开流时不要尝试新的拨号。 参数: - ctx: 父上下文 - reason: 禁用拨号的原因
返回: - context.Context: 带有禁用拨号选项的新上下文.
WithSimultaneousConnect 构造一个新的上下文,其中包含一个选项,该选项指示传输在适用的情况下应用打洞逻辑。 EXPERIMENTAL 参数: - ctx: 父上下文 - isClient: 是否为客户端 - reason: 使用同步连接的原因
返回: - context.Context: 带有同步连接选项的新上下文.
WithUseTransient 构造一个新的上下文,其中包含一个选项,该选项指示网络 在打开新流时可以使用临时连接。
已弃用: 请改用 WithAllowLimitedConn。 参数: - ctx: 父上下文 - reason: 使用临时连接的原因
返回: - context.Context: 带有允许临时连接选项的新上下文.
# Constants
Deprecated: CanConnect 已弃用,将在未来版本中移除
CanConnect 表示最近与节点连接过,正常终止.
Deprecated: CannotConnect 已弃用,将在未来版本中移除
CannotConnect 表示最近尝试连接但失败 (表示"尝试过但失败了").
Connected 表示与节点有开放的、活跃的连接.
DirInbound 表示远程节点发起了连接。.
DirOutbound 表示本地节点发起了连接。.
DirUnknown 是默认的方向。.
Limited 表示与节点有临时连接,但未完全连接.
4 MB.
NATDeviceTypeCone 表示 NAT 设备是一个锥形 NAT 锥形 NAT 会将来自相同源 IP 地址和端口的所有出站连接映射到相同的 IP 地址和端口,而不考虑目标地址 根据 RFC 3489,这可能是完全锥形 NAT、受限锥形 NAT 或端口受限锥形 NAT 但是,我们在这里不区分它们,而是简单地将所有此类 NAT 归类为锥形 NAT 只有当远程对等点也在锥形 NAT 后面时,才可以通过打洞实现 NAT 穿透 如果远程对等点在对称 NAT 后面,打洞将失败.
NATDeviceTypeSymmetric 表示 NAT 设备是一个对称 NAT 对称 NAT 会将具有不同目标地址的出站连接映射到不同的 IP 地址和端口,即使它们来自相同的源 IP 地址和端口 在 dep2p 中,无论远程对等点的 NAT 类型如何,目前都无法通过打洞实现对称 NAT 的穿透.
NATDeviceTypeUnknown 表示 NAT 设备类型未知.
NATTransportTCP 表示已为 TCP 协议确定 NAT 设备类型.
NATTransportUDP 表示已为 UDP 协议确定 NAT 设备类型.
NotConnected 表示没有与节点的连接,也没有额外信息(默认).
ReachabilityPrivate 表示节点不能从公共互联网访问。
注意:此节点仍可能通过中继可达。.
ReachabilityPublic 表示节点可以从公共互联网访问。.
ReachabilityUnknown 表示节点的可达性状态未知。.
ReservationPriorityAlways 是一个预留优先级,表示只要有足够的内存就进行预留,不考虑范围使用率。.
ReservationPriorityHigh 是一个预留优先级,表示范围内存使用率在80%或以下时的预留。.
ReservationPriorityLow 是一个预留优先级,表示范围内存使用率在40%或以下时的预留。.
ReservationPriorityMedium 是一个预留优先级,表示范围内存使用率在60%或以下时的预留。.
# Variables
DialPeerTimeout 是单个 `DialPeer` 调用的默认超时时间。 当有多个并发的 `DialPeer` 调用时,此超时时间将独立应用于每个调用。.
ErrLimitedConn 当尝试打开到只有有限连接的对等节点的流,但未指定AllowLimitedConn选项时返回此错误.
ErrNoConn 当使用NoDial选项尝试打开到对等节点的流但没有可用连接时返回此错误.
ErrNoRemoteAddrs 当尝试拨号连接对等节点但没有可用地址时返回此错误.
ErrReset 在读取或写入已重置的流时返回。.
ErrResourceLimitExceeded 当尝试执行的操作会超出系统资源限制时返回此错误.
ErrResourceScopeClosed 当尝试在已关闭的资源作用域中保留资源时返回此错误.
ErrTransientConn 当尝试打开到只有临时连接的对等节点的流,但未指定UseTransient选项时返回此错误
已弃用: 请使用ErrLimitedConn替代.
GlobalNoopNotifiee 是一个全局的空操作通知接收者。请勿修改。.
# Structs
AddrDelay 提供一个地址以及在该地址应该被拨号之前的延迟.
ConnectionState 保存连接的信息。.
ConnStats 存储与给定Conn相关的元数据。.
NoopNotifiee 实现了一个不执行任何操作的 Notifiee 接口.
NotifyBundle 通过调用设置在其上的任何函数来实现 Notifiee 接口。 如果函数未设置则不执行任何操作。这是注册通知的简单方式。.
NullResourceManager 是用于测试和默认值初始化的存根.
NullScope 是用于测试和默认值初始化的存根.
ScopeStat 是包含资源记账信息的结构。.
Stats 存储与给定Stream/Conn相关的元数据。.
# Interfaces
Conn 是与远程节点的连接,它可以复用流。 通常不需要直接使用 Conn,但它可能对获取对端节点的信息有用:
stream.Conn().RemotePeer().
ConnManagementScope 是连接资源范围的低级接口。 此接口由创建和拥有连接范围跨度的系统低级组件使用。.
ConnMultiaddrs 是一个接口混入,用于提供端点多地址的连接类型。.
ConnScope 是连接范围的用户视图.
ConnScoper 是一个接口,可以混入到连接接口中以提供资源管理作用域.
ConnSecurity 是一个接口,可以混入到连接接口中以提供安全方法。.
ConnStat 是一个接口混入,用于提供连接统计信息的连接类型。.
Dialer 表示可以向节点拨号的服务 (这通常就是一个Network,但其他服务可能不需要整个堆栈,因此更容易模拟).
MultiaddrDNSResolver 定义了DNS解析相关的接口。.
Multiplexer 使用流多路复用实现包装 net.Conn,并返回支持在底层 net.Conn 上打开多个流的 MuxedConn.
MuxedConn 表示到远程对等点的连接,该连接已扩展以支持流多路复用。
MuxedConn 允许单个 net.Conn 连接承载多个逻辑独立的双向二进制数据流。
与 network.ConnSecurity 一起,MuxedConn 是 transport.CapableConn 接口的组件, 该接口表示已被"升级"以支持 dep2p 安全通信和流多路复用功能的"原始"网络连接。.
MuxedStream 是连接中的双向IO管道。.
Network 是用于连接外部世界的接口。 它用于拨号和监听连接。它使用Swarm来池化连接(参见swarm包和peerstream.Swarm)。 连接使用类TLS协议加密。.
Notifiee 是一个接口,用于接收来自 Network 的通知。 它定义了一组回调方法,在网络事件发生时被调用。.
PeerScope 是对等点资源范围的接口。.
ProtocolScope 是协议资源范围的接口。.
ResourceManager 是网络资源管理子系统的接口。 它跟踪和记录资源使用情况,从内部到应用程序,并提供一种机制来根据用户配置的策略限制资源使用。
资源管理基于资源管理范围的概念,其中资源使用受限于一个范围的 DAG, 以下图示说明了资源约束 DAG 的结构: System
+------------> Transient.............+................+ | .
ResourceScope 是所有范围的接口。.
ResourceScopeSpan 是一个带有限定跨度的 ResourceScope。 跨度范围是控制流限定的,当程序员调用 Done 时释放所有关联的资源。
示例:
s, err := someScope.BeginSpan() if err != nil { ..
ResourceScopeViewer 是一个混合接口,提供访问顶级范围的视图方法。.
ServiceScope 是服务资源范围的接口.
Stream 表示 dep2p 网络中两个代理之间的双向通道。 "代理"可以根据需要进行细分,可以是"请求->响应"对,也可以是完整的协议。
Stream 在底层由多路复用器支持。.
StreamManagementScope 是流资源范围的接口。 此接口由创建和拥有流范围跨度的系统低级组件使用。.
StreamScope 是 StreamScope 的用户视图。.
# Type aliases
Connectedness 表示与给定节点的连接能力。 用于向服务和其他节点发出节点是否可达的信号。.
DialRanker 提供拨号提供的地址的调度
参数: - addrs:[]ma.Multiaddr 要调度的地址列表
返回值: - []AddrDelay:带延迟的地址列表.
Direction 表示在流中哪个节点发起了连接。.
NATDeviceType 表示 NAT 设备的类型.
NATTransportProtocol 表示确定 NAT 设备类型的传输协议.
Reachability 表示节点的可达性状态。.
StreamHandler 是用于监听远程端打开的流的函数类型。.