record

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidRecordType = errors.New("invalid record keytype")

ErrInvalidRecordType 当DHT记录的键前缀在DHT的验证器映射中未找到时返回此错误

Functions

func MakePutRecord

func MakePutRecord(key string, value []byte) *pb.Record

MakePutRecord 为给定的键值对创建一个DHT记录 参数:

  • key: string 键名
  • value: []byte 值

返回值:

  • *pb.Record DHT记录

func SplitKey

func SplitKey(key string) (string, string, error)

SplitKey 将形如 `/$namespace/$path` 的键拆分为 `$namespace` 和 `$path` 参数:

  • key: string 要拆分的键

返回值:

  • string 命名空间
  • string 路径
  • error 错误信息

Types

type ErrBetterRecord

type ErrBetterRecord struct {
	// Key 与记录关联的键
	Key string
	// Value 根据记录验证器找到的最佳值
	Value []byte
}

ErrBetterRecord 当子系统因找到更好的记录而失败时返回此错误

func (*ErrBetterRecord) Error

func (e *ErrBetterRecord) Error() string

Error 返回错误信息 返回值:

  • string 格式化的错误信息

type NamespacedValidator

type NamespacedValidator map[string]Validator

NamespacedValidator 按命名空间委派给子验证器的验证器

func (NamespacedValidator) Select

func (v NamespacedValidator) Select(key string, values [][]byte) (int, error)

Select 实现Validator接口 参数:

  • key: string 记录的键
  • values: [][]byte 记录值的集合

返回值:

  • int 选中记录的索引
  • error 选择过程中的错误

func (NamespacedValidator) Validate

func (v NamespacedValidator) Validate(key string, value []byte) error

Validate 实现Validator接口 参数:

  • key: string 记录的键
  • value: []byte 记录的值

返回值:

  • error 验证过程中的错误

func (NamespacedValidator) ValidatorByKey

func (v NamespacedValidator) ValidatorByKey(key string) Validator

ValidatorByKey 查找负责验证给定键的验证器 参数:

  • key: string 需要验证的键

返回值:

  • Validator 对应的验证器

type PublicKeyValidator

type PublicKeyValidator struct{}

PublicKeyValidator 公钥验证器,用于验证公钥

func (PublicKeyValidator) Select

func (pkv PublicKeyValidator) Select(k string, vals [][]byte) (int, error)

Select 实现 Validator 接口 参数:

  • k: string 键名
  • vals: [][]byte 值列表

返回值:

  • int 选择的索引
  • error 错误信息

始终返回0,因为所有公钥都是等效有效的

func (PublicKeyValidator) Validate

func (pkv PublicKeyValidator) Validate(key string, value []byte) error

Validate 实现 Validator 接口 参数:

  • key: string 键名
  • value: []byte 值

返回值:

  • error 错误信息

验证传入的记录值是否与传入的键匹配的公钥

type Validator

type Validator interface {
	// Validate 验证给定的记录
	// 参数:
	//   - key: string 记录的键
	//   - value: []byte 记录的值
	//
	// 返回值:
	//   - error 如果记录无效(如过期、签名错误等)则返回错误
	Validate(key string, value []byte) error

	// Select 从记录集中选择最佳记录(如最新的)
	// 参数:
	//   - key: string 记录的键
	//   - values: [][]byte 记录值的集合
	//
	// 返回值:
	//   - int 选中记录的索引
	//   - error 选择过程中的错误
	//
	// 注意: Select做出的决定应该是稳定的
	Select(key string, values [][]byte) (int, error)
}

Validator 记录验证器接口

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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