Documentation
¶
Overview ¶
package config implements the ipfs config file datastructures and utilities.
Index ¶
- Constants
- Variables
- func BootstrapPeerStrings(bps []BootstrapPeer) []string
- func DataStorePath(configroot string) (string, error)
- func Filename(configroot string) (string, error)
- func HumanOutput(value interface{}) ([]byte, error)
- func Marshal(value interface{}) ([]byte, error)
- func Path(configroot, extension string) (string, error)
- func PathRoot() (string, error)
- func ToMap(conf *Config) (map[string]interface{}, error)
- type API
- type Addresses
- type AutoUpdateSetting
- type BootstrapPeer
- type Config
- type Datastore
- type Discovery
- type Gateway
- type Identity
- type Ipns
- type MDNS
- type Mounts
- type SupernodeClientConfig
- type SwarmConfig
- type Tour
- type Version
Constants ¶
const (
// DefaultPathName is the default config dir name
DefaultPathName = ".ipfs"
// 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 = "IPFS_PATH"
)
const (
// CheckError value for Version.Check to raise error and exit if version is obsolete
CheckError = "error"
// CheckWarn value for Version.Check to show warning message if version is obsolete
CheckWarn = "warn"
// CheckIgnore value for Version.Check to not perform update check
CheckIgnore = "ignore"
)
supported Version.Check values
const CurrentVersionNumber = "0.3.10"
CurrentVersionNumber is the current application's version literal
const DefaultDataStoreDirectory = "datastore"
DefaultDataStoreDirectory is the directory to store all the local IPFS data.
Variables ¶
var CurrentCommit string
CurrentCommit is the current git commit, this is set as a ldflag in the Makefile
var DefaultBootstrapAddresses = []string{
"/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ",
"/ip4/104.236.176.52/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z",
"/ip4/104.236.179.241/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM",
"/ip4/162.243.248.213/tcp/4001/ipfs/QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm",
"/ip4/128.199.219.111/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu",
"/ip4/104.236.76.40/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64",
"/ip4/178.62.158.247/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd",
"/ip4/178.62.61.185/tcp/4001/ipfs/QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3",
"/ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx",
}
DefaultBootstrapAddresses are the hardcoded bootstrap addresses for ipfs. they are nodes run by the ipfs team. docs on these later. As with all p2p networks, bootstrap is an important security concern.
Note: this is here -- and not inside cmd/ipfs/init.go -- because of an import dependency issue. TODO: move this into a config/default/ package.
var DefaultSNRServers = []string{
"/ip4/104.236.176.52/tcp/4002/ipfs/QmXdb7tWTxdFEQEFgWBqkuYSrZd3mXrC7HxkD4krGNYx2U",
"/ip4/104.236.179.241/tcp/4002/ipfs/QmVRqViDByUxjUMoPnjurjKvZhaEMFDtK35FJXHAM4Lkj6",
"/ip4/104.236.151.122/tcp/4002/ipfs/QmSZwGx8Tn8tmcM4PtDJaMeUQNRhNFdBLVGPzRiNaRJtFH",
"/ip4/162.243.248.213/tcp/4002/ipfs/QmbHVEEepCi7rn7VL7Exxpd2Ci9NNB6ifvqwhsrbRMgQFP",
"/ip4/128.199.219.111/tcp/4002/ipfs/Qmb3brdCYmKG1ycwqCbo6LUwWxTuo3FisnJV2yir7oN92R",
"/ip4/104.236.76.40/tcp/4002/ipfs/QmdRBCV8Cz2dGhoKLkD3YjPwVFECmqADQkx5ZteF2c6Fy4",
"/ip4/178.62.158.247/tcp/4002/ipfs/QmUdiMPci7YoEUBkyFZAh2pAbjqcPr7LezyiPD2artLw3v",
"/ip4/178.62.61.185/tcp/4002/ipfs/QmVw6fGNqBixZE4bewRLT2VXX7fAHUHs8JyidDiJ1P7RUN",
}
var ErrInvalidPeerAddr = errors.New("invalid peer address")
ErrInvalidPeerAddr signals an address is not a valid peer address.
var ErrUnknownAutoUpdateSetting = errors.New("unknown value for AutoUpdate")
ErrUnknownAutoUpdateSetting is returned when an unknown value is read from the config
Functions ¶
func BootstrapPeerStrings ¶
func BootstrapPeerStrings(bps []BootstrapPeer) []string
func DataStorePath ¶
func DataStorePath(configroot string) (string, error)
DataStorePath returns the default data store path given a configuration root (set an empty string to have the default configuration root)
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 one
func HumanOutput ¶
func HumanOutput(value interface{}) ([]byte, error)
HumanOutput gets a config value ready for printing
func Path ¶
func Path(configroot, extension string) (string, error)
Path returns the path `extension` relative to the configuration root. If an empty string is provided for `configroot`, the default root is used.
Types ¶
type API ¶ added in v0.3.6
type API struct {
HTTPHeaders map[string][]string // HTTP headers to return with the API.
}
type Addresses ¶
type Addresses struct {
Swarm []string // addresses for the swarm network
API string // address for the local API (RPC)
Gateway string // address to listen on for IPFS HTTP object gateway
}
Addresses stores the (string) multiaddr addresses for the node.
type AutoUpdateSetting ¶
type AutoUpdateSetting int
AutoUpdateSetting implements json.Unmarshaler to check values in config
const (
AutoUpdateNever AutoUpdateSetting = iota // do not auto-update
AutoUpdatePatch // only on new patch versions
AutoUpdateMinor // on new minor or patch versions (Default)
AutoUpdateMajor // on all, even Major, version changes
)
AutoUpdateSetting values
func (AutoUpdateSetting) MarshalJSON ¶
func (s AutoUpdateSetting) MarshalJSON() ([]byte, error)
MarshalJSON converts the value back to JSON string
func (AutoUpdateSetting) String ¶
func (s AutoUpdateSetting) String() string
String converts valye to human readable string
func (*AutoUpdateSetting) UnmarshalJSON ¶
func (s *AutoUpdateSetting) UnmarshalJSON(in []byte) error
UnmarshalJSON checks the input against known strings
type BootstrapPeer ¶
type BootstrapPeer iaddr.IPFSAddr
BootstrapPeer is a peer used to bootstrap the network.
func DefaultBootstrapPeers ¶
func DefaultBootstrapPeers() ([]BootstrapPeer, error)
DefaultBootstrapPeers returns the (parsed) set of default bootstrap peers. if it fails, it returns a meaningful error for the user. This is here (and not inside cmd/ipfs/init) because of module dependency problems.
func ParseBootstrapPeer ¶
func ParseBootstrapPeer(addr string) (BootstrapPeer, error)
func ParseBootstrapPeers ¶
func ParseBootstrapPeers(addrs []string) ([]BootstrapPeer, error)
type Config ¶
type Config struct {
Identity Identity // local node's peer identity
Datastore Datastore // local node's storage
Addresses Addresses // local node's addresses
Mounts Mounts // local node's mount points
Version Version // local node's version management
Discovery Discovery // local node's discovery mechanisms
Ipns Ipns // Ipns settings
Bootstrap []string // local nodes's bootstrap peer addresses
Tour Tour // local node's tour position
Gateway Gateway // local node's gateway server options
SupernodeRouting SupernodeClientConfig // local node's routing servers (if SupernodeRouting enabled)
API API // local node's API settings
Swarm SwarmConfig
}
Config is used to load IPFS config files.
func (*Config) BootstrapPeers ¶
func (c *Config) BootstrapPeers() ([]BootstrapPeer, error)
func (*Config) SetBootstrapPeers ¶
func (c *Config) SetBootstrapPeers(bps []BootstrapPeer)
type Datastore ¶
type Datastore struct {
Type string
Path string
StorageMax string // in B, kB, kiB, MB, ...
StorageGCWatermark int64 // in percentage to multiply on StorageMax
GCPeriod string // in ns, us, ms, s, m, h
}
Datastore tracks the configuration of the datastore.
type Gateway ¶
type Gateway struct {
HTTPHeaders map[string][]string // HTTP headers to return with the gateway
RootRedirect string
Writable bool
}
Gateway contains options for the HTTP gateway server.
type Identity ¶
type Identity struct {
PeerID string
PrivKey string
}
Identity tracks the configuration of the local node's identity.
func (*Identity) DecodePrivateKey ¶
func (i *Identity) DecodePrivateKey(passphrase string) (ic.PrivKey, error)
DecodePrivateKey is a helper to decode the users PrivateKey
type Ipns ¶ added in v0.3.8
type Ipns struct {
RepublishPeriod string
RecordLifetime string
ResolveCacheSize int
}
type MDNS ¶ added in v0.3.2
type MDNS struct {
Enabled bool
// Time in seconds between discovery rounds
Interval int
}
type Mounts ¶
type Mounts struct {
IPFS string
IPNS string
FuseAllowOther bool
}
Mounts stores the (string) mount points
type SupernodeClientConfig ¶
type SupernodeClientConfig struct {
Servers []string
}
TODO rename
func (*SupernodeClientConfig) ServerIPFSAddrs ¶
func (gcr *SupernodeClientConfig) ServerIPFSAddrs() ([]ipfsaddr.IPFSAddr, error)
type SwarmConfig ¶ added in v0.3.6
type SwarmConfig struct {
AddrFilters []string
}
type Tour ¶
type Tour struct {
Last string // last tour topic read
}
Tour stores the ipfs tour read-list and resume point
type Version ¶
type Version struct {
// Current is the ipfs version for which config was generated
Current string
// Check signals how to react on updates:
// - "ignore" for not checking
// - "warn" for issuing a warning and proceeding
// - "error" for exiting with an error
Check string
// CheckDate is a timestamp for the last time API endpoint was checked for updates
CheckDate time.Time
// CheckPeriod is the time duration over which the update check will not be performed
// (Note: cannot use time.Duration because marshalling with json breaks it)
CheckPeriod string
// AutoUpdate is optional
AutoUpdate AutoUpdateSetting
}
Version regulates checking if the most recent version is run
func VersionDefaultValue ¶
func VersionDefaultValue() Version
VersionDefaultValue returns the default version config value (for init).
func (*Version) ShouldCheckForUpdate ¶
func (v *Version) ShouldCheckForUpdate() bool
ShouldCheckForUpdate returns if update check API endpoint is needed for this specific runtime