config

package
v0.0.0-...-12f0740 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2023 License: Apache-2.0, MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultPathName is the default config dir name.
	DefaultPathName = ".index-provider"
	// DefaultPathRoot is the path to the default config dir location.
	DefaultPathRoot = "~/" + DefaultPathName
	// DefaultConfigFile is the filename of the configuration file.
	DefaultConfigFile = "config"
	// EnvDir is the environment variable used to change the path root.
	EnvDir = "PROVIDER_PATH"
)
View Source
const (
	PrivateKeyPathEnvVar = "INDEXPROVIDER_PRIV_KEY_PATH"
)

Variables

View Source
var (
	ErrInitialized    = errors.New("configuration file already exists")
	ErrNotInitialized = errors.New("not initialized")
)
View Source
var ErrInvalidPeerAddr = errors.New("invalid peer address")

ErrInvalidPeerAddr signals an address is not a valid peer address.

Functions

func Filename

func Filename(configRoot string) (string, error)

Filename returns the configuration file path given a configuration root directory. If the configuration root directory is empty, use the default.

func Marshal

func Marshal(value interface{}) ([]byte, error)

Marshal configuration with JSON.

func Path

func Path(configRoot, configFile string) (string, error)

Path returns the config file path relative to the configuration root. If an empty string is provided for `configRoot`, the default root is used. If configFile is an absolute path, then configRoot is ignored.

func PathRoot

func PathRoot() (string, error)

PathRoot returns the default configuration root directory.

Types

type Bootstrap

type Bootstrap struct {
	// Peers is the local nodes's bootstrap peer addresses
	Peers []string
	// MinimumPeers governs whether to bootstrap more connections. If the node
	// has less open connections than this number, it will open connections to
	// the bootstrap nodes.  Set to 0 to disable bootstrapping.
	MinimumPeers int
}

func NewBootstrap

func NewBootstrap() Bootstrap

NewBootstrap instantiates a new Bootstrap config with default values.

func (Bootstrap) PeerAddrs

func (b Bootstrap) PeerAddrs() ([]peer.AddrInfo, error)

PeerAddrs returns the bootstrap peers as a list of AddrInfo.

func (*Bootstrap) SetPeers

func (b *Bootstrap) SetPeers(addrs []peer.AddrInfo)

SetPeers sers the bootstrap peers from a list of AddrInfo.

type Config

type Config struct {
	Identity       Identity
	Datastore      Datastore
	Ingest         Ingest
	ProviderServer ProviderServer
	Bootstrap      Bootstrap
	DirectAnnounce DirectAnnounce
}

Config is used to load config files.

func Init

func Init(out io.Writer) (*Config, error)

func InitWithIdentity

func InitWithIdentity(identity Identity) (*Config, error)

func Load

func Load(filePath string) (*Config, error)

Load reads the json-serialized config at the specified path.

func (*Config) PopulateDefaults

func (c *Config) PopulateDefaults()

func (*Config) Save

func (c *Config) Save(filePath string) error

Save writes the json-serialized config to the specified path.

func (*Config) String

func (c *Config) String() string

String returns a pretty-printed json config.

type Datastore

type Datastore struct {
	// Type is the type of datastore
	Type string
	// Dir is the directory within the config root where the datastore is kept
	Dir string
}

Datastore tracks the configuration of the datastore.

func NewDatastore

func NewDatastore() Datastore

NewDatastore instantiates a new Datastore config with default values.

func (*Datastore) PopulateDefaults

func (c *Datastore) PopulateDefaults()

PopulateDefaults replaces zero-values in the config with default values.

type DirectAnnounce

type DirectAnnounce struct {
	// URLs is a list of indexer URLs to send HTTP announce messages to.
	URLs []string
}

DirectAnnounce configures the target indexers that advertisement announce messages are sent directly to via HTTP.

func NewDirectAnnounce

func NewDirectAnnounce() DirectAnnounce

NewDirectAnnounce returns DirectAnnounce with values set to their defaults.

func (DirectAnnounce) ParseURLs

func (d DirectAnnounce) ParseURLs() ([]*url.URL, error)

ParseURLs returns parsed URLs.

type Identity

type Identity struct {
	PeerID  string
	PrivKey string `json:",omitempty"`
}

Identity tracks the configuration of the local node's identity.

func CreateIdentity

func CreateIdentity(out io.Writer) (Identity, error)

CreateIdentity initializes a new identity.

func (Identity) DecodeOrCreate

func (identity Identity) DecodeOrCreate(out io.Writer) (peer.ID, ic.PrivKey, error)

func (Identity) DecodeOrCreatePrivateKey

func (identity Identity) DecodeOrCreatePrivateKey(out io.Writer, passphrase string) (ic.PrivKey, error)

DecodeOrCreatePrivateKey is a helper to decode the user's PrivateKey. If the key hasn't been provided in json config then it's going to be read from PrivateKeyPathEnvVar. If that file doesn't exist then a new key is going to be generated and saved there.

type Ingest

type Ingest struct {
	// LinkCacheSize is the maximum number of links that cash can store before
	// LRU eviction.  If a single linked list has more links than the cache can
	// hold, the cache is resized to be able to hold all links.
	LinkCacheSize int
	// LinkedChunkSize is the number of multihashes in each chunk of in the
	// advertised entries linked list.  If multihashes are 128 bytes, then
	// setting LinkedChunkSize = 16384 will result in blocks of about 2Mb when
	// full.
	LinkedChunkSize int
	// PurgeLinkCache tells whether to purge the link cache on daemon startup.
	PurgeLinkCache bool

	// AnnounceMultiaddr is the address supplied in the announce message
	// telling indexers the address to use to retrieve advertisements. If not
	// specified, the ListenMultiaddr is used.
	AnnounceMultiaddr string
	// ListenMultiaddr is the address of the interface to listen for HTTP
	// requests for advertisements.
	ListenMultiaddr string
}

Ingest configures settings related to the ingestion protocol.

func NewIngest

func NewIngest() Ingest

NewIngest instantiates a new Ingest configuration with default values.

func (*Ingest) ListenNetAddr

func (c *Ingest) ListenNetAddr() (string, error)

func (*Ingest) PopulateDefaults

func (c *Ingest) PopulateDefaults()

PopulateDefaults replaces zero-values in the config with default values.

type ProviderServer

type ProviderServer struct {
	// ListenMultiaddr is the multiaddr string for the node's listen address
	ListenMultiaddr string
	// ControlAddr is where to run the http control server
	ControlAddr string
	// RetrievalMultiaddrs are the addresses to advertise for data retrieval.
	// Defaults to the provider's libp2p host listen addresses.
	RetrievalMultiaddrs []string
}

func NewProviderServer

func NewProviderServer() ProviderServer

NewProviderServer instantiates a new ProviderServer config with default values.

func (*ProviderServer) PopulateDefaults

func (c *ProviderServer) PopulateDefaults()

PopulateDefaults replaces zero-values in the config with default values.

Jump to

Keyboard shortcuts

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