Documentation ¶
Index ¶
- Variables
- func EnsureIPv4(ipOrHost string) (string, error)
- func GetBroadcastMsg(ctx context.Context) (*pubsub.Message, bool)
- func GetUnicastStream(ctx context.Context) (net.Stream, bool)
- func Logger() *zap.Logger
- func SetLogger(l *zap.Logger)
- type Config
- type HandleBroadcast
- type Host
- func (h *Host) AddBroadcastPubSub(topic string, callback HandleBroadcast) error
- func (h *Host) AddUnicastPubSub(topic string, handler network.StreamHandler) error
- func (h *Host) Addresses() []multiaddr.Multiaddr
- func (h *Host) Broadcast(topic string, data []byte) error
- func (h *Host) Close() error
- func (h *Host) Connect(ctx context.Context, target peer.AddrInfo) error
- func (h *Host) ConnectWithMultiaddr(ctx context.Context, ma multiaddr.Multiaddr) error
- func (h *Host) DHT() *dht.IpfsDHT
- func (h *Host) Discover(ctx context.Context, dht *dht.IpfsDHT, rendezvous string)
- func (h *Host) HostIdentity() string
- func (h *Host) Info() peer.AddrInfo
- func (h *Host) JoinOverlay(ctx context.Context)
- func (h *Host) Neighbors(ctx context.Context) ([]peer.AddrInfo, error)
- func (h *Host) OverlayIdentity() string
- func (h *Host) PeerInfo() peerstore.Peerstore
- func (h *Host) Unicast(ctx context.Context, target peer.AddrInfo, topic string, data []byte) (network.Stream, error)
- type HostOperator
- type Option
- func BootNode() Option
- func ConnectTimeout(timout time.Duration) Option
- func ExternalHostName(externalHostName string) Option
- func ExternalPort(externalPort int) Option
- func Gossip() Option
- func HostName(hostName string) Option
- func MasterKey(masterKey string) Option
- func Port(port int) Option
- func PrivateKey(privateKey string) Option
- func SecureIO() Option
- func WithConnectionManagerConfig(lo, hi int, grace time.Duration) Option
Constants ¶
This section is empty.
Variables ¶
var DefaultConfig = Config{ HostName: "127.0.0.1", Port: 7000, ExternalHostName: "", ExternalPort: 7000, SecureIO: false, Gossip: false, ConnectTimeout: time.Minute, MasterKey: "", PrivateKey: "", ConnLowWater: 200, ConnHighWater: 500, ConnGracePeriod: 0, }
DefaultConfig is a set of default configs
Functions ¶
func EnsureIPv4 ¶
EnsureIPv4 returns an IPv4 address regardless the input is a IPv4 address or host name. If the host name has multiple IPv4 address be associated, a random one will be returned.
func GetBroadcastMsg ¶
GetBroadcastMsg retrieves *pubsub.Message from broadcast message context.
func GetUnicastStream ¶
GetUnicastStream retrieves net.Stream from unicast request context.
Types ¶
type Config ¶
type Config struct { HostName string `yaml:"hostName"` Port int `yaml:"port"` ExternalHostName string `yaml:"externalHostName"` ExternalPort int `yaml:"externalPort"` SecureIO bool `yaml:"secureIO"` Gossip bool `yaml:"gossip"` ConnectTimeout time.Duration `yaml:"connectTimeout"` MasterKey string `yaml:"masterKey"` PrivateKey string ConnLowWater int `yaml:"connLowWater"` ConnHighWater int `yaml:"connHighWater"` ConnGracePeriod time.Duration `yaml:"connGracePeriod"` Bootnode bool }
Config enumerates the configs required by a host
type HandleBroadcast ¶
HandleBroadcast defines the callback function triggered when a broadcast message reaches a host
type Host ¶
type Host struct {
// contains filtered or unexported fields
}
Host is the main struct that represents a host that communicating with the rest of the P2P networks
func (*Host) AddBroadcastPubSub ¶
func (h *Host) AddBroadcastPubSub(topic string, callback HandleBroadcast) error
AddBroadcastPubSub adds a broadcast topic that the host will pay attention to. This need to be called before using Connect/JoinOverlay. Otherwise, pubsub may not be aware of the existing overlay topology
func (*Host) AddUnicastPubSub ¶
func (h *Host) AddUnicastPubSub(topic string, handler network.StreamHandler) error
AddUnicastPubSub adds a unicast topic that the host will pay attention to
func (*Host) Addresses ¶
func (h *Host) Addresses() []multiaddr.Multiaddr
Addresses returns the multi address
func (*Host) ConnectWithMultiaddr ¶
ConnectWithMultiaddr connects a peer given the multi address
func (*Host) HostIdentity ¶
HostIdentity returns the host identity string
func (*Host) JoinOverlay ¶
JoinOverlay triggers the host to join the DHT overlay
func (*Host) OverlayIdentity ¶
OverlayIdentity returns the overlay identity string
func (*Host) Unicast ¶
func (h *Host) Unicast(ctx context.Context, target peer.AddrInfo, topic string, data []byte) (network.Stream, error)
Unicast sends a message to a peer on the given address. The returned stream can be used for reading but closed for writing when finished, the caller must close or reset the stream.
type HostOperator ¶ added in v0.3.3
type HostOperator interface { AddBroadcastPubSub(topic string, callback HandleBroadcast) error AddUnicastPubSub(topic string, callback network.StreamHandler) error Addresses() []multiaddr.Multiaddr Broadcast(topic string, data []byte) error Close() error ConnectWithMultiaddr(ctx context.Context, ma multiaddr.Multiaddr) error Connect(ctx context.Context, target peer.AddrInfo) error Discover(ctx context.Context, dht *dht.IpfsDHT, rendezvous string) DHT() *dht.IpfsDHT HostIdentity() string Info() peer.AddrInfo JoinOverlay(ctx context.Context) Neighbors(ctx context.Context) ([]peer.AddrInfo, error) OverlayIdentity() string Unicast(ctx context.Context, target peer.AddrInfo, topic string, data []byte) (network.Stream, error) PeerInfo() peerstore.Peerstore }
HostOperator defines the peer to peer functionality available
type Option ¶
Option defines the option function to modify the config for a host
func BootNode ¶ added in v0.4.0
func BootNode() Option
BootNode determines whether this libp2p host is a bootnode.
func ConnectTimeout ¶
ConnectTimeout is the option to override the connect timeout
func ExternalHostName ¶
ExternalHostName is the option to set the host name or IP address seen from external
func ExternalPort ¶
ExternalPort is the option to set the port number seen from external
func PrivateKey ¶ added in v0.3.1
PrivateKey is to determine private key to use for addressing