providers

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2025 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ProvidersKeyPrefix 是存储在数据存储中所有提供者记录键的前缀/命名空间
	ProvidersKeyPrefix = "/providers/"

	// ProviderAddrTTL 是保留提供者节点多地址的TTL。这些地址会与提供者一起返回。
	// 过期后,返回的记录将需要额外查找,以找到与返回的节点ID关联的多地址。
	ProviderAddrTTL = amino.DefaultProviderAddrTTL
)

Variables

View Source
var ProvideValidity = amino.DefaultProvideValidity

ProvideValidity 是提供者记录在DHT上应该持续的默认时间 这个值也被称为提供者记录过期间隔

Functions

This section is empty.

Types

type Option

type Option func(*ProviderManager) error

Option 是设置提供者管理器选项的函数

func Cache

func Cache(c lru.LRUCache) Option

Cache 设置LRU缓存实现 默认为简单的LRU缓存

func CleanupInterval

func CleanupInterval(d time.Duration) Option

CleanupInterval 设置GC运行之间的时间间隔 默认为1小时

type ProviderManager

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

ProviderManager 从数据存储中添加和获取提供者,并在中间进行缓存

func NewProviderManager

func NewProviderManager(local peer.ID, ps peerstore.Peerstore, dstore ds.Batching, opts ...Option) (*ProviderManager, error)

NewProviderManager 构造函数 参数:

  • local: peer.ID 本地节点ID
  • ps: peerstore.Peerstore 节点存储
  • dstore: ds.Batching 数据存储
  • opts: []Option 选项列表

返回值:

  • *ProviderManager 提供者管理器实例
  • error 错误信息

func (*ProviderManager) AddProvider

func (pm *ProviderManager) AddProvider(ctx context.Context, k []byte, provInfo peer.AddrInfo) error

AddProvider 添加一个提供者 参数:

  • ctx: context.Context 上下文
  • k: []byte 键
  • provInfo: peer.AddrInfo 提供者信息

返回值:

  • error 错误信息

func (*ProviderManager) Close

func (pm *ProviderManager) Close() error

Close 关闭提供者管理器 返回值:

  • error 错误信息

func (*ProviderManager) GetProviders

func (pm *ProviderManager) GetProviders(ctx context.Context, k []byte) ([]peer.AddrInfo, error)

GetProviders 返回给定键的提供者集合 此方法不会复制集合。不要修改它。 参数:

  • ctx: context.Context 上下文
  • k: []byte 键

返回值:

  • []peer.AddrInfo 提供者信息列表
  • error 错误信息

type ProviderStore

type ProviderStore interface {
	AddProvider(ctx context.Context, key []byte, prov peer.AddrInfo) error
	GetProviders(ctx context.Context, key []byte) ([]peer.AddrInfo, error)
	io.Closer
}

ProviderStore 表示一个将节点及其地址与键关联的存储

Jump to

Keyboard shortcuts

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