Documentation ¶
Index ¶
- func AddrsFactory(announce []string, noAnnounce []string) func() (_ p2pconfig.AddrsFactory, err error)
- func BlockService(bs blockstore.Blockstore, ex exchange.Interface) blockservice.BlockService
- func Components(cfg Config) fx.Option
- func ConnectionGater(ds datastore.Batching) (coreconnmgr.ConnectionGater, error)
- func ConnectionManager(cfg Config) func(params.Bootstrappers) (coreconnmgr.ConnManager, error)
- func ContentRouting() routing.ContentRouting
- func DataExchange(cfg Config) func(bitSwapParams) (exchange.Interface, blockstore.Blockstore, error)
- func Host(cfg Config) func(hostParams) (HostBase, error)
- func ID(key crypto.PrivKey, pstore peerstore.Peerstore) (peer.ID, error)
- func Key(kstore keystore.Keystore) (crypto.PrivKey, error)
- func Listen(listen []string) func(host host.Host) (err error)
- func PeerRouting(cfg Config) func(routingParams) (routing.PeerRouting, error)
- func PeerStore() peerstore.Peerstore
- func PubSub(cfg Config) func(pubSubParams) (*pubsub.PubSub, error)
- func RoutedHost(base HostBase, r routing.PeerRouting) host.Host
- type Config
- type ConnManagerConfig
- type HostBase
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddrsFactory ¶
func AddrsFactory(announce []string, noAnnounce []string) func() (_ p2pconfig.AddrsFactory, err error)
AddrsFactory returns a constructor for AddrsFactory.
func BlockService ¶ added in v0.3.0
func BlockService(bs blockstore.Blockstore, ex exchange.Interface) blockservice.BlockService
BlockService constructs IPFS's BlockService for fetching arbitrary Merkle structures.
func Components ¶
Components collects all the components and services related to p2p.
func ConnectionGater ¶
func ConnectionGater(ds datastore.Batching) (coreconnmgr.ConnectionGater, error)
ConnectionGater constructs a ConnectionGater.
func ConnectionManager ¶
func ConnectionManager(cfg Config) func(params.Bootstrappers) (coreconnmgr.ConnManager, error)
ConnectionManager provides a constructor for ConnectionManager.
func ContentRouting ¶
func ContentRouting() routing.ContentRouting
ContentRouting constructs nil content routing, as for our use-case existing ContentRouting mechanisms, e.g DHT, are unsuitable
func DataExchange ¶
func DataExchange(cfg Config) func(bitSwapParams) (exchange.Interface, blockstore.Blockstore, error)
DataExchange provides a constructor for IPFS block's DataExchange over BitSwap.
func Listen ¶
Listen returns invoke function that starts listening for inbound connections with libp2p.Host.
func PeerRouting ¶
func PeerRouting(cfg Config) func(routingParams) (routing.PeerRouting, error)
PeerRouting provides constructor for PeerRouting over DHT. Basically, this provides a way to discover peer addresses by respecting public keys.
func RoutedHost ¶
func RoutedHost(base HostBase, r routing.PeerRouting) host.Host
RoutedHost constructs a wrapped Host that may fallback to address discovery, if any top-level operation on the Host is provided with PeerID(Hash(PbK)) only.
Types ¶
type Config ¶
type Config struct { // ListenAddresses - Addresses to listen to on local NIC. ListenAddresses []string // AnnounceAddresses - Addresses to be announced/advertised for peers to connect to AnnounceAddresses []string // NoAnnounceAddresses - Addresses the P2P subsystem may know about, but that should not be announced/advertised, // as undialable from WAN NoAnnounceAddresses []string // TODO(@Wondertan): This should be a build-time parameter. See https://github.com/celestiaorg/celestia-node/issues/63 // Bootstrapper is flag telling this node is a bootstrapper. Bootstrapper bool // MutualPeers are peers which have a bidirectional peering agreement with the configured node. // Connections with those peers are protected from being trimmed, dropped or negatively scored. // NOTE: Any two peers must bidirectionally configure each other on their MutualPeers field. MutualPeers []string // PeerExchange configures the node, whether it should share some peers to a pruned peer. // This is enabled by default for Bootstrappers. PeerExchange bool // ConnManager is a configuration tuple for ConnectionManager. ConnManager ConnManagerConfig }
Config combines all configuration fields for P2P subsystem.
func DefaultConfig ¶
func DefaultConfig() Config
DefaultConfig returns default configuration for P2P subsystem.
type ConnManagerConfig ¶
type ConnManagerConfig struct {
// Low and High are watermarks governing the number of connections that'll be maintained.
Low, High int
// GracePeriod is the amount of time a newly opened connection is given before it becomes subject to pruning.
GracePeriod time.Duration
}
ConnManagerConfig configures connection manager.
func DefaultConnManagerConfig ¶
func DefaultConnManagerConfig() ConnManagerConfig
DefaultConnManagerConfig returns defaults for ConnManagerConfig.