qpeerset

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type PeerState

type PeerState int

PeerState 描述单个查找的生命周期中对等 ID 的状态。

const (
	// PeerHeard 应用于尚未被查询的对等点。
	PeerHeard PeerState = iota
	// PeerWaiting 应用于当前正在查询的对等点。
	PeerWaiting
	// PeerQueried 应用于已被查询并成功检索到响应的对等点。
	PeerQueried
	// PeerUnreachable 应用于已被查询但未成功检索到响应的对等点。
	PeerUnreachable
)

type QueryPeerset

type QueryPeerset struct {
	// contains filtered or unexported fields
}

QueryPeerset 维护 Kademlia 异步查找的状态。 查找状态是一组对等体,每个对等体都标有一个对等体状态。

func NewQueryPeerset

func NewQueryPeerset(key string) *QueryPeerset

NewQueryPeerset 创建一个新的空对等点集。 key 是该对等集所要查找的目标键。

func (*QueryPeerset) GetClosestInStates

func (qp *QueryPeerset) GetClosestInStates(states ...PeerState) (result []peer.ID)

GetClosestInStates 返回处于给定状态之一的对等点。 返回的对等点按照与键的距离升序排列。

func (*QueryPeerset) GetClosestNInStates

func (qp *QueryPeerset) GetClosestNInStates(n int, states ...PeerState) (result []peer.ID)

GetClosestNInStates 返回最接近处于给定状态之一的关键对等点。 如果满足条件的对等点较少,则返回 n 个或更少的对等点。 返回的对等点按照与键的距离升序排列。

func (*QueryPeerset) GetReferrer

func (qp *QueryPeerset) GetReferrer(p peer.ID) peer.ID

GetReferrer 返回将我们引向对等点 p 的对等点。 如果 p 不在对等集中,则 GetReferrer 会出现恐慌。

func (*QueryPeerset) GetState

func (qp *QueryPeerset) GetState(p peer.ID) PeerState

GetState 返回对等点 p 的状态。 如果 p 不在对等集中,则 GetState 会出现恐慌。

func (*QueryPeerset) NumHeard

func (qp *QueryPeerset) NumHeard() int

NumHeard 返回处于 PeerHeard 状态的对等点数量。

func (*QueryPeerset) NumWaiting

func (qp *QueryPeerset) NumWaiting() int

NumWaiting 返回处于 PeerWaiting 状态的对等点数量。

func (*QueryPeerset) SetState

func (qp *QueryPeerset) SetState(p peer.ID, s PeerState)

SetState 将对等点 p 的状态设置为 s。 如果 p 不在对等集中,SetState 会发生恐慌。

func (*QueryPeerset) TryAdd

func (qp *QueryPeerset) TryAdd(p, referredBy peer.ID) bool

TryAdd 将对等点 p 添加到对等点集中。 如果对等点已经存在,则不采取任何操作。 否则,添加对等点并将状态设置为 PeerHeard。 如果对等点尚未存在,则 TryAdd 返回 true。

Jump to

Keyboard shortcuts

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