namesys

package
v0.0.0-...-9ab2669 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2019 License: MIT Imports: 26 Imported by: 0

Documentation

Overview

此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620

此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620

此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620

此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620

此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620

此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620

此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620

Index

Constants

View Source
const DefaultRecordTTL = 24 * time.Hour
View Source
const DefaultResolverCacheTTL = time.Minute
View Source
const PublishPutValTimeout = time.Minute

Variables

View Source
var ErrPublishFailed = errors.New("could not publish name")

errpublishfailed在尝试发布时发出错误信号。

View Source
var ErrResolveFailed = errors.New("could not resolve name")

errResolveFailed在尝试解决时发出错误信号。

View Source
var ErrResolveRecursion = errors.New(
	"could not resolve name (recursion limit exceeded)")

errResolverExecution发出递归深度限制信号。

Functions

func InitializeKeyspace

func InitializeKeyspace(ctx context.Context, pub Publisher, pins pin.Pinner, key ci.PrivKey) error

InitializeKeyspace将给定密钥的IPN记录设置为 指向空目录。 托多:这感觉不属于这里

func IpnsDsKey

func IpnsDsKey(id peer.ID) ds.Key

func PkKeyForID

func PkKeyForID(id peer.ID) string

pkkeyorid返回给定对等ID的公钥路由密钥。

func PublishEntry

func PublishEntry(ctx context.Context, r routing.ValueStore, ipnskey string, rec *pb.IpnsEntry) error

func PublishPublicKey

func PublishPublicKey(ctx context.Context, r routing.ValueStore, k string, pubk ci.PubKey) error

func PutRecordToRouting

func PutRecordToRouting(ctx context.Context, r routing.ValueStore, k ci.PubKey, entry *pb.IpnsEntry) error

Types

type DNSResolver

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

dns resolver在DNS域上实现解析程序

func NewDNSResolver

func NewDNSResolver() *DNSResolver

newdnsresolver使用DNS TXT记录构造名称冲突解决程序。

func (*DNSResolver) Resolve

func (r *DNSResolver) Resolve(ctx context.Context, name string, options ...opts.ResolveOpt) (path.Path, error)

解析实现解析程序。

func (*DNSResolver) ResolveAsync

func (r *DNSResolver) ResolveAsync(ctx context.Context, name string, options ...opts.ResolveOpt) <-chan Result

resolveasync实现resolver。

type IpnsPublisher

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

ipnsPublisher能够向ipfs发布和解析名称。 路由系统。

func NewIpnsPublisher

func NewIpnsPublisher(route routing.ValueStore, ds ds.Datastore) *IpnsPublisher

newipnspublisher为ipfs路由名称系统构造发布服务器。

func (*IpnsPublisher) GetPublished

func (p *IpnsPublisher) GetPublished(ctx context.Context, id peer.ID, checkRouting bool) (*pb.IpnsEntry, error)

GetPublished返回此节点发布的与 给定对等体ID.

如果“checkrouting”为真并且我们没有现有记录,则此方法将 检查路由系统是否有任何现有记录。

func (*IpnsPublisher) ListPublished

func (p *IpnsPublisher) ListPublished(ctx context.Context) (map[peer.ID]*pb.IpnsEntry, error)

publishedNames返回此节点发布的最新IPN记录,以及 它们的过期时间。

此方法不会在路由系统中搜索其他人发布的记录 节点。

func (*IpnsPublisher) Publish

func (p *IpnsPublisher) Publish(ctx context.Context, k ci.PrivKey, value path.Path) error

发布实现发布服务器。接受密钥对和值, 并将其发布到路由系统

func (*IpnsPublisher) PublishWithEOL

func (p *IpnsPublisher) PublishWithEOL(ctx context.Context, k ci.PrivKey, value path.Path, eol time.Time) error

publishwitheol是IPN记录实现的临时代理 有关详细信息,请参阅此处:https://github.com/ipfs/specs/tree/master/records

type IpnsResolver

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

ipsresolver为主要的ipfs sfs(如命名)实现nsresolver

func NewIpnsResolver

func NewIpnsResolver(route routing.ValueStore) *IpnsResolver

newipsresolver使用ipfs路由系统构造名称解析程序 在顶部实现类似于命名的SFS。

func (*IpnsResolver) Resolve

func (r *IpnsResolver) Resolve(ctx context.Context, name string, options ...opts.ResolveOpt) (path.Path, error)

解析实现解析程序。

func (*IpnsResolver) ResolveAsync

func (r *IpnsResolver) ResolveAsync(ctx context.Context, name string, options ...opts.ResolveOpt) <-chan Result

resolveasync实现resolver。

type LookupTXTFunc

type LookupTXTFunc func(name string) (txt []string, err error)

type NameSystem

type NameSystem interface {
	Resolver
	Publisher
}

namesys表示一个内聚的名称发布和解析系统。

发布名称是建立映射、键值的过程 根据命名规则和数据库配对。

解析名称是查找与 密钥(名称)。

func NewNameSystem

func NewNameSystem(r routing.ValueStore, ds ds.Datastore, cachesize int) NameSystem

NewNameSystem将基于路由构建IPFS命名系统

type ProquintResolver

type ProquintResolver struct{}

func (*ProquintResolver) Resolve

func (r *ProquintResolver) Resolve(ctx context.Context, name string, options ...opts.ResolveOpt) (path.Path, error)

解析实现解析程序。

type Publisher

type Publisher interface {

	//发布建立名称值映射。
	//要使其不特定于私钥。
	Publish(ctx context.Context, name ci.PrivKey, value path.Path) error

	//TODO:将被更通用的“publishewithvalidity”类型替换
	//实现记录规范后调用
	PublishWithEOL(ctx context.Context, name ci.PrivKey, value path.Path, eol time.Time) error
}

Publisher是一个能够发布特定名称的对象。

type Resolver

type Resolver interface {

	//解析执行递归查找,返回未引用的
	//路径。例如,如果ipfs.io有一个指向
	///ipns/qmatme9mssfkxofffphwnlkgwzg8et9bud6yopab52vpy
	//还有一个DHT IPN条目
	//qmatme9mssfkxofffphwnlkgwzg8et9bud6yopab52vpy
	//->/ipfs/qmcqtw8ffrvsbarmbwwhxt3auysbhjlcvmfyi3lbc4xnwj
	//然后
	//解析(ctx,“/ipns/ipfs.io”)
	//将解析两个名称,返回
	///ipfs/qmcqtw8ffrvsbarmbwwhxt3auysbhjlcvmfyi3lbc4xnwj
	//
	//有一个默认的深度限制来避免无限递归。大多数
	//用户可以使用此默认限制,但如果需要
	//调整可以指定为选项的限制。
	Resolve(ctx context.Context, name string, options ...opts.ResolveOpt) (value path.Path, err error)

	//resolveasync执行递归名称查找,如resolve,但它返回
	//在DHT中发现的条目。保证每次返回结果
	//比前一个更好(通常意味着更新)。
	ResolveAsync(ctx context.Context, name string, options ...opts.ResolveOpt) <-chan Result
}

解析器是一个能够解析名称的对象。

type Result

type Result struct {
	Path path.Path
	Err  error
}

result是resolver.resolveasync的返回类型。

Directories

Path Synopsis
此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620
此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620
此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620
此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620

Jump to

Keyboard shortcuts

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