go-libp2p: github.com/libp2p/go-libp2p/config Index | Files

package config

import "github.com/libp2p/go-libp2p/config"

Index

Package Files

config.go constructor_types.go muxer.go reflection_magic.go security.go transport.go

type AddrsFactory Uses

type AddrsFactory = bhost.AddrsFactory

AddrsFactory is a function that takes a set of multiaddrs we're listening on and returns the set of multiaddrs we should advertise to the network.

type AutoNATConfig Uses

type AutoNATConfig struct {
    ForceReachability   *network.Reachability
    EnableService       bool
    ThrottleGlobalLimit int
    ThrottlePeerLimit   int
    ThrottleInterval    time.Duration
}

AutoNATConfig defines the AutoNAT behavior for the libp2p host.

type Config Uses

type Config struct {
    // UserAgent is the identifier this node will send to other peers when
    // identifying itself, e.g. via the identify protocol.
    //
    // Set it via the UserAgent option function.
    UserAgent string

    PeerKey crypto.PrivKey

    Transports         []TptC
    Muxers             []MsMuxC
    SecurityTransports []MsSecC
    Insecure           bool
    PSK                pnet.PSK

    RelayCustom bool
    Relay       bool
    RelayOpts   []circuit.RelayOpt

    ListenAddrs     []ma.Multiaddr
    AddrsFactory    bhost.AddrsFactory
    ConnectionGater connmgr.ConnectionGater

    ConnManager connmgr.ConnManager
    NATManager  NATManagerC
    Peerstore   peerstore.Peerstore
    Reporter    metrics.Reporter

    DisablePing bool

    Routing RoutingC

    EnableAutoRelay bool
    AutoNATConfig
    StaticRelays []peer.AddrInfo
}

Config describes a set of settings for a libp2p node

This is *not* a stable interface. Use the options defined in the root package.

func (*Config) Apply Uses

func (cfg *Config) Apply(opts ...Option) error

Apply applies the given options to the config, returning the first error encountered (if any).

func (*Config) NewNode Uses

func (cfg *Config) NewNode(ctx context.Context) (host.Host, error)

NewNode constructs a new libp2p Host from the Config.

This function consumes the config. Do not reuse it (really!).

type MsMuxC Uses

type MsMuxC struct {
    MuxC
    ID  string
}

MsMuxC is a tuple containing a multiplex transport constructor and a protocol ID.

type MsSecC Uses

type MsSecC struct {
    SecC
    ID  string
}

MsSecC is a tuple containing a security transport constructor and a protocol ID.

type MuxC Uses

type MuxC func(h host.Host) (mux.Multiplexer, error)

MuxC is a stream multiplex transport constructor.

func MuxerConstructor Uses

func MuxerConstructor(m interface{}) (MuxC, error)

MuxerConstructor creates a multiplex constructor from the passed parameter using reflection.

type NATManagerC Uses

type NATManagerC func(network.Network) bhost.NATManager

NATManagerC is a NATManager constructor.

type Option Uses

type Option func(cfg *Config) error

Option is a libp2p config option that can be given to the libp2p constructor (`libp2p.New`).

type RoutingC Uses

type RoutingC func(host.Host) (routing.PeerRouting, error)

type SecC Uses

type SecC func(h host.Host) (sec.SecureTransport, error)

SecC is a security transport constructor.

func SecurityConstructor Uses

func SecurityConstructor(security interface{}) (SecC, error)

SecurityConstructor creates a security constructor from the passed parameter using reflection.

type TptC Uses

type TptC func(h host.Host, u *tptu.Upgrader, cg connmgr.ConnectionGater) (transport.Transport, error)

TptC is the type for libp2p transport constructors. You probably won't ever implement this function interface directly. Instead, pass your transport constructor to TransportConstructor.

func TransportConstructor Uses

func TransportConstructor(tpt interface{}) (TptC, error)

TransportConstructor uses reflection to turn a function that constructs a transport into a TptC.

You can pass either a constructed transport (something that implements `transport.Transport`) or a function that takes any of:

* The local peer ID. * A transport connection upgrader. * A private key. * A public key. * A Host. * A Network. * A Peerstore. * An address filter. * A security transport. * A stream multiplexer transport. * A private network protection key. * A connection gater.

And returns a type implementing transport.Transport and, optionally, an error (as the second argument).

Package config imports 33 packages (graph) and is imported by 15 packages. Updated 2020-07-28. Refresh now. Tools for package owners.