Documentation ¶
Index ¶
- func AddrsFactory(announce []string, noAnnounce []string) func() (_ p2pconfig.AddrsFactory, err error)
- func BlockService(bs blockstore.Blockstore, ex exchange.Interface) blockservice.BlockService
- func ConnectionGater(ds datastore.Batching) (*conngater.BasicConnectionGater, error)
- func ConnectionManager(cfg Config, bpeers params.Bootstrappers) (coreconnmgr.ConnManager, error)
- func ConstructModule(tp node.Type, cfg *Config) fx.Option
- func ContentRouting(r routing.PeerRouting) routing.ContentRouting
- func DataExchange(params bitSwapParams) (exchange.Interface, blockstore.Blockstore, error)
- func Flags() *flag.FlagSet
- 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 ParseFlags(cmd *cobra.Command, cfg *Config) error
- func PeerRouting(cfg Config, params routingParams) (routing.PeerRouting, error)
- func PeerStore() (peerstore.Peerstore, error)
- func PubSub(cfg Config, params pubSubParams) (*pubsub.PubSub, error)
- func RoutedHost(base HostBase, r routing.PeerRouting) host.Host
- func WithHost(hst host.Host) fx.Option
- func WithP2PKey(key crypto.PrivKey) fx.Option
- func WithP2PKeyStr(key string) fx.Option
- 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 ¶
func BlockService(bs blockstore.Blockstore, ex exchange.Interface) blockservice.BlockService
BlockService constructs IPFS's BlockService for fetching arbitrary Merkle structures.
func ConnectionGater ¶
func ConnectionGater(ds datastore.Batching) (*conngater.BasicConnectionGater, error)
ConnectionGater constructs a BasicConnectionGater.
func ConnectionManager ¶
func ConnectionManager(cfg Config, bpeers params.Bootstrappers) (coreconnmgr.ConnManager, error)
ConnectionManager provides a constructor for ConnectionManager.
func ConstructModule ¶
ConstructModule collects all the components and services related to p2p.
func ContentRouting ¶
func ContentRouting(r routing.PeerRouting) routing.ContentRouting
ContentRouting constructs nil content routing, as for our use-case existing ContentRouting mechanisms, e.g DHT, are unsuitable
func DataExchange ¶
func DataExchange(params 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 ParseFlags ¶
ParseFlags parses P2P flags from the given cmd and saves them to the passed config.
func PeerRouting ¶
func PeerRouting(cfg Config, params 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.
func WithP2PKey ¶
WithP2PKey sets custom Ed25519 private key for p2p networking.
func WithP2PKeyStr ¶
WithP2PKeyStr sets custom hex encoded Ed25519 private key for p2p networking.
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 RoutingTableRefreshPeriod time.Duration }
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.