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 Addresses
- type AutoUpdateSetting
- type BootstrapPeer
- type Config
- type Datastore
- type Discovery
- type Gateway
- type Identity
- type Log
- type MDNS
- type Mounts
- type SupernodeClientConfig
- 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.4"
CurrentVersionNumber is the current application's version literal
const DefaultDataStoreDirectory = "datastore"
DefaultDataStoreDirectory is the directory to store all the local IPFS data.
Variables ¶
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/QmSoLpPVmHKQ4XTPdz8tjDFgdeRFkpV8JgYq8JVJ69RrZm",
"/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 ¶
DataStorePath returns the default data store path given a configuration root (set an empty string to have the default configuration root)
func Filename ¶
Filename returns the configuration file path given a configuration root directory. If the configuration root directory is empty, use the default one
func HumanOutput ¶
HumanOutput gets a config value ready for printing
func Path ¶
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 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 ¶
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 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) Log Log }
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 SupernodeClientConfig ¶
type SupernodeClientConfig struct {
Servers []string
}
TODO rename
func (*SupernodeClientConfig) ServerIPFSAddrs ¶
func (gcr *SupernodeClientConfig) ServerIPFSAddrs() ([]ipfsaddr.IPFSAddr, error)
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 ¶
ShouldCheckForUpdate returns if update check API endpoint is needed for this specific runtime