config

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: 13 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultPrefix protocol.ID = "/ipfs"

DefaultPrefix 是默认附加到所有 DHT 协议的应用程序特定前缀。

Variables

View Source
var Defaults = func(o *Config) error {
	o.Validator = record.NamespacedValidator{}
	o.Datastore = dssync.MutexWrap(ds.NewMapDatastore())
	o.ProtocolPrefix = DefaultPrefix
	o.EnableProviders = true
	o.EnableValues = true
	o.QueryPeerFilter = EmptyQueryFilter

	o.RoutingTable.LatencyTolerance = 10 * time.Second
	o.RoutingTable.RefreshQueryTimeout = 10 * time.Second
	o.RoutingTable.RefreshInterval = 10 * time.Minute
	o.RoutingTable.AutoRefresh = true
	o.RoutingTable.PeerFilter = EmptyRTFilter

	o.MaxRecordAge = providers.ProvideValidity

	o.BucketSize = defaultBucketSize
	o.Concurrency = 10
	o.Resiliency = 3
	o.LookupCheckConcurrency = 256

	o.OptimisticProvideJobsPoolSize = 60

	return nil
}

Defaults 是默认的 DHT 选项。 此选项将自动添加到您传递给 DHT 构造函数的任何选项之前。

Functions

func EmptyQueryFilter

func EmptyQueryFilter(_ interface{}, ai peer.AddrInfo) bool

EmptyQueryFilter 是一个空的查询对等方过滤器函数,始终返回 true。

func EmptyRTFilter

func EmptyRTFilter(_ interface{}, p peer.ID) bool

EmptyRTFilter 是一个空的路由表过滤器函数,始终返回 true。

func GetQuorum

func GetQuorum(opts *routing.Options) int

GetQuorum 方法用于获取选项中的 Quorum 值,如果找不到选项,则返回默认值。

Types

type Config

type Config struct {
	Datastore              ds.Batching             // 用于存储 DHT 数据的数据存储接口
	Validator              record.Validator        // 用于验证记录的验证器接口
	ValidatorChanged       bool                    // 如果 true 意味着验证器已更改并且不应使用默认值
	Mode                   ModeOpt                 // 描述 DHT 应该运行的模式的选项
	ProtocolPrefix         protocol.ID             // 默认情况下附加到所有 DHT 协议的应用程序特定前缀
	V1ProtocolOverride     protocol.ID             // 用于覆盖 V1 协议的协议前缀
	BucketSize             int                     // 路由表中每个桶的最大对等方数量
	Concurrency            int                     // 在执行 DHT 查询时允许的最大并发请求数量
	Resiliency             int                     // 在查询期间允许的最大重试次数
	MaxRecordAge           time.Duration           // 记录在 DHT 中存储的最长时间
	EnableProviders        bool                    // 指示是否启用 DHT 的提供者功能
	EnableValues           bool                    // 指示是否启用 DHT 的值存储功能
	ProviderStore          providers.ProviderStore // 提供者信息的存储接口
	QueryPeerFilter        QueryFilterFunc         // 在查询时考虑要拨号的对等方时应用的过滤器
	LookupCheckConcurrency int                     // 在执行查找操作时允许的最大并发请求数量

	RoutingTable struct {
		RefreshQueryTimeout time.Duration                   // 刷新路由表的查询超时时间
		RefreshInterval     time.Duration                   // 刷新路由表的时间间隔
		AutoRefresh         bool                            // 指示是否自动刷新路由表
		LatencyTolerance    time.Duration                   // 在考虑对等方时允许的最大延迟
		CheckInterval       time.Duration                   // 检查路由表中对等方的时间间隔
		PeerFilter          RouteTableFilterFunc            // 在考虑保留在本地路由表中的连接时应用的过滤器
		DiversityFilter     peerdiversity.PeerIPGroupFilter // 用于对对等方进行分组的过滤器
	}

	BootstrapPeers func() []peer.AddrInfo              // 用于引导 DHT 的对等方地址信息的函数
	AddressFilter  func([]ma.Multiaddr) []ma.Multiaddr // 用于过滤对等方地址的函数

	// 测试特定的配置选项
	DisableFixLowPeers          bool // 指示是否禁用修复低对等方的功能
	TestAddressUpdateProcessing bool // 指示是否启用地址更新处理的测试功能

	EnableOptimisticProvide       bool // 指示是否启用乐观提供功能
	OptimisticProvideJobsPoolSize int  // 是乐观提供作业池的大小
}

Config 是一个包含构建 DHT 时可以使用的所有选项的结构。

func (*Config) Apply

func (c *Config) Apply(opts ...Option) error

Apply 将给定选项应用于此选项

func (*Config) ApplyFallbacks

func (c *Config) ApplyFallbacks(h host.Host) error

ApplyFallbacks 设置在配置创建期间无法应用的默认值,因为它们依赖于其他配置参数(例如 optA 默认为 2x optB)和/或主机

func (*Config) Validate

func (c *Config) Validate() error

Validate 方法用于验证配置项是否符合要求。

type ModeOpt

type ModeOpt int

ModeOpt 描述 dht 应以何种模式运行

type Option

type Option func(*Config) error

Option 是 DHT 选项类型。

type QueryFilterFunc

type QueryFilterFunc func(dht interface{}, ai peer.AddrInfo) bool

QueryFilterFunc 是在查询时考虑要拨打的对等方时应用的过滤器

type QuorumOptionKey

type QuorumOptionKey struct{}

type RouteTableFilterFunc

type RouteTableFilterFunc func(dht interface{}, p peer.ID) bool

RouteTableFilterFunc 是在考虑要保留在本地路由表中的连接时应用的过滤器。

Jump to

Keyboard shortcuts

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