resolver

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jul 3, 2023 License: Apache-2.0, MIT Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const RetrievalProtocolName = "/fil/retrieval/transports/1.0.0"

Variables

This section is empty.

Functions

func DecodeMultiaddr

func DecodeMultiaddr(addr multiaddr.Multiaddr) (IPOrHost, IsHostName, PortNumber, error)

Types

type IPInfo

type IPInfo struct {
	IP        string `json:"ip"`
	City      string `json:"city"`
	Region    string `json:"region"`
	Country   string `json:"country"`
	Continent string `json:"continent"`
	Loc       string `json:"loc"`
	Org       string `json:"org"`
	Postal    string `json:"postal"`
	Timezone  string `json:"timezone"`
	Bogon     bool   `json:"bogon"`
	Latitude  float32
	Longitude float32
	ASN       string
	ISP       string
}

func GetPublicIPInfo

func GetPublicIPInfo(ctx context.Context, ip string, token string) (IPInfo, error)

func (*IPInfo) Resolve

func (i *IPInfo) Resolve()

type IPOrHost

type IPOrHost = string

type IsHostName

type IsHostName = bool

type LocationResolver

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

func NewLocationResolver

func NewLocationResolver(ipInfoToken string, ttl time.Duration) LocationResolver

func (LocationResolver) ResolveIP

func (l LocationResolver) ResolveIP(ctx context.Context, ip net.IP) (IPInfo, error)

func (LocationResolver) ResolveIPStr

func (l LocationResolver) ResolveIPStr(ctx context.Context, ip string) (IPInfo, error)

func (LocationResolver) ResolveMultiaddr

func (l LocationResolver) ResolveMultiaddr(ctx context.Context, addr multiaddr.Multiaddr) (IPInfo, error)

func (LocationResolver) ResolveMultiaddrs

func (l LocationResolver) ResolveMultiaddrs(ctx context.Context, addrs []multiaddr.Multiaddr) (IPInfo, error)

func (LocationResolver) ResolveMultiaddrsBytes

func (l LocationResolver) ResolveMultiaddrsBytes(ctx context.Context, bytesAddrs []abi.Multiaddrs) (IPInfo, error)

type MinerInfo

type MinerInfo struct {
	//nolint:stylecheck
	PeerId string
	//nolint:tagliatelle
	MultiaddrsBase64Encoded []string `json:"Multiaddrs"`
	Multiaddrs              []abi.Multiaddrs
}

type PortNumber

type PortNumber = int

type ProtocolProvider

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

func ProtocolResolver

func ProtocolResolver(host host.Host, timeout time.Duration) ProtocolProvider

func (ProtocolProvider) GetRetrievalProtocols

func (p ProtocolProvider) GetRetrievalProtocols(
	parent context.Context,
	minerInfo peer.AddrInfo,
) ([]model.Protocol, error)

func (ProtocolProvider) IsBoostProvider

func (p ProtocolProvider) IsBoostProvider(ctx context.Context, minerInfo peer.AddrInfo) (bool, error)

type ProviderResolver

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

func NewProviderResolver

func NewProviderResolver(url string, token string, ttl time.Duration) (*ProviderResolver, error)

func (*ProviderResolver) ResolveProvider

func (p *ProviderResolver) ResolveProvider(ctx context.Context, provider string) (MinerInfo, error)

Jump to

Keyboard shortcuts

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