Documentation ¶
Index ¶
- func ApplyResourceLimitOverride(logger zerolog.Logger, resourceScope p2pconfig.ResourceScope, ...) rcmgr.ResourceLimits
- func BuildLibp2pResourceManagerLimits(logger zerolog.Logger, config *p2pconfig.ResourceManagerConfig) (*rcmgr.ConcreteLimitConfig, error)
- func DefaultLibP2PHost(address string, key fcrypto.PrivateKey, options ...config.Option) (host.Host, error)
- func DefaultNodeBuilder(logger zerolog.Logger, address string, networkingType flownet.NetworkingType, ...) (p2p.NodeBuilder, error)
- type DhtSystemActivation
- type LibP2PNodeBuilder
- func (builder *LibP2PNodeBuilder) Build() (p2p.LibP2PNode, error)
- func (builder *LibP2PNodeBuilder) OverrideDefaultRpcInspectorFactory(factory p2p.GossipSubRpcInspectorFactoryFunc) p2p.NodeBuilder
- func (builder *LibP2PNodeBuilder) OverrideGossipSubFactory(gf p2p.GossipSubFactoryFunc, cf p2p.GossipSubAdapterConfigFunc) p2p.NodeBuilder
- func (builder *LibP2PNodeBuilder) OverrideGossipSubScoringConfig(config *p2p.PeerScoringConfigOverride) p2p.NodeBuilder
- func (builder *LibP2PNodeBuilder) OverrideNodeConstructor(f p2p.NodeConstructor) p2p.NodeBuilder
- func (builder *LibP2PNodeBuilder) SetBasicResolver(br madns.BasicResolver) p2p.NodeBuilder
- func (builder *LibP2PNodeBuilder) SetConnectionGater(gater p2p.ConnectionGater) p2p.NodeBuilder
- func (builder *LibP2PNodeBuilder) SetConnectionManager(manager connmgr.ConnManager) p2p.NodeBuilder
- func (builder *LibP2PNodeBuilder) SetResourceManager(manager network.ResourceManager) p2p.NodeBuilder
- func (builder *LibP2PNodeBuilder) SetRoutingSystem(f func(context.Context, host.Host) (routing.Routing, error)) p2p.NodeBuilder
- func (builder *LibP2PNodeBuilder) SetSubscriptionFilter(filter pubsub.SubscriptionFilter) p2p.NodeBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyResourceLimitOverride ¶
func ApplyResourceLimitOverride(logger zerolog.Logger, resourceScope p2pconfig.ResourceScope, original rcmgr.ResourceLimits, override p2pconfig.ResourceManagerOverrideLimit) rcmgr.ResourceLimits
ApplyResourceLimitOverride applies the override limit to the original limit. For any attribute that is set in the override limit, the original limit will be overridden, otherwise the original limit will be used. Args:
logger: logger to log the override limit. resourceScope: the scope of the resource, e.g., system, transient, protocol, peer, peer-protocol. original: the original limit. override: the override limit.
Returns:
the overridden limit.
func BuildLibp2pResourceManagerLimits ¶
func BuildLibp2pResourceManagerLimits(logger zerolog.Logger, config *p2pconfig.ResourceManagerConfig) (*rcmgr.ConcreteLimitConfig, error)
BuildLibp2pResourceManagerLimits builds the resource manager limits for the libp2p node. Args:
logger: logger to log the resource manager limits. config: the resource manager configuration.
Returns:
- the resource manager limits.
- any error encountered, all returned errors are irrecoverable (we cannot continue without the resource manager limits).
func DefaultLibP2PHost ¶
func DefaultLibP2PHost(address string, key fcrypto.PrivateKey, options ...config.Option) (host.Host, error)
DefaultLibP2PHost returns a libp2p host initialized to listen on the given address and using the given private key and customized with options
func DefaultNodeBuilder ¶
func DefaultNodeBuilder( logger zerolog.Logger, address string, networkingType flownet.NetworkingType, flowKey fcrypto.PrivateKey, sporkId flow.Identifier, idProvider module.IdentityProvider, metricsCfg *p2pbuilderconfig.MetricsConfig, resolver madns.BasicResolver, role string, connGaterCfg *p2pbuilderconfig.ConnectionGaterConfig, peerManagerCfg *p2pbuilderconfig.PeerManagerConfig, gossipCfg *p2pconfig.GossipSubParameters, rCfg *p2pconfig.ResourceManagerConfig, uniCfg *p2pbuilderconfig.UnicastConfig, connMgrConfig *netconf.ConnectionManager, disallowListCacheCfg *p2p.DisallowListCacheConfig, dhtSystemActivation DhtSystemActivation, ) (p2p.NodeBuilder, error)
DefaultNodeBuilder returns a node builder.
Types ¶
type DhtSystemActivation ¶
type DhtSystemActivation bool
const ( DhtSystemEnabled DhtSystemActivation = true DhtSystemDisabled DhtSystemActivation = false )
type LibP2PNodeBuilder ¶
type LibP2PNodeBuilder struct {
// contains filtered or unexported fields
}
func NewNodeBuilder ¶
func NewNodeBuilder( logger zerolog.Logger, gossipSubCfg *p2pconfig.GossipSubParameters, metricsConfig *p2pbuilderconfig.MetricsConfig, networkingType flownet.NetworkingType, address string, networkKey fcrypto.PrivateKey, sporkId flow.Identifier, idProvider module.IdentityProvider, rCfg *p2pconfig.ResourceManagerConfig, peerManagerConfig *p2pbuilderconfig.PeerManagerConfig, disallowListCacheCfg *p2p.DisallowListCacheConfig, unicastConfig *p2pbuilderconfig.UnicastConfig, ) *LibP2PNodeBuilder
func (*LibP2PNodeBuilder) Build ¶
func (builder *LibP2PNodeBuilder) Build() (p2p.LibP2PNode, error)
Build creates a new libp2p node using the configured options.
func (*LibP2PNodeBuilder) OverrideDefaultRpcInspectorFactory ¶ added in v0.33.30
func (builder *LibP2PNodeBuilder) OverrideDefaultRpcInspectorFactory(factory p2p.GossipSubRpcInspectorFactoryFunc) p2p.NodeBuilder
OverrideDefaultRpcInspectorFactory overrides the default rpc inspector factory for the GossipSub protocol. The purpose of override is to allow the node to provide a custom rpc inspector factory for sake of testing or experimentation. Note: it is not recommended to override the default rpc inspector factory in production unless you know what you are doing. Args: - factory: custom rpc inspector factory Returns: - NodeBuilder: the node builder
func (*LibP2PNodeBuilder) OverrideGossipSubFactory ¶ added in v0.33.30
func (builder *LibP2PNodeBuilder) OverrideGossipSubFactory(gf p2p.GossipSubFactoryFunc, cf p2p.GossipSubAdapterConfigFunc) p2p.NodeBuilder
OverrideGossipSubFactory overrides the default gossipsub factory for the GossipSub protocol. The purpose of override is to allow the node to provide a custom gossipsub factory for sake of testing or experimentation. Note: it is not recommended to override the default gossipsub factory in production unless you know what you are doing. Args: - factory: custom gossipsub factory Returns: - NodeBuilder: the node builder
func (*LibP2PNodeBuilder) OverrideGossipSubScoringConfig ¶
func (builder *LibP2PNodeBuilder) OverrideGossipSubScoringConfig(config *p2p.PeerScoringConfigOverride) p2p.NodeBuilder
OverrideGossipSubScoringConfig overrides the default peer scoring config for the GossipSub protocol. Note that it does not enable peer scoring. The peer scoring is enabled directly by setting the `peer-scoring-enabled` flag to true in `default-config.yaml`, or by setting the `gossipsub-peer-scoring-enabled` runtime flag to true. This function only overrides the default peer scoring config which takes effect only if the peer scoring is enabled (mostly for testing purposes). Any existing peer scoring config attribute that is set in the override will override the default peer scoring config. Anything that is left to nil or zero value in the override will be ignored and the default value will be used. Note: it is not recommended to override the default peer scoring config in production unless you know what you are doing. Args: - PeerScoringConfigOverride: override for the peer scoring config- Recommended to use PeerScoringConfigNoOverride for production. Returns: none
func (*LibP2PNodeBuilder) OverrideNodeConstructor ¶
func (builder *LibP2PNodeBuilder) OverrideNodeConstructor(f p2p.NodeConstructor) p2p.NodeBuilder
OverrideNodeConstructor overrides the default node constructor, i.e., the function that creates a new libp2p node. The purpose of override is to allow the node to provide a custom node constructor for sake of testing or experimentation. It is NOT recommended to override the default node constructor in production unless you know what you are doing. Args: - NodeConstructor: custom node constructor Returns: none
func (*LibP2PNodeBuilder) SetBasicResolver ¶
func (builder *LibP2PNodeBuilder) SetBasicResolver(br madns.BasicResolver) p2p.NodeBuilder
SetBasicResolver sets the DNS resolver for the node.
func (*LibP2PNodeBuilder) SetConnectionGater ¶
func (builder *LibP2PNodeBuilder) SetConnectionGater(gater p2p.ConnectionGater) p2p.NodeBuilder
SetConnectionGater sets the connection gater for the node.
func (*LibP2PNodeBuilder) SetConnectionManager ¶
func (builder *LibP2PNodeBuilder) SetConnectionManager(manager connmgr.ConnManager) p2p.NodeBuilder
SetConnectionManager sets the connection manager for the node.
func (*LibP2PNodeBuilder) SetResourceManager ¶
func (builder *LibP2PNodeBuilder) SetResourceManager(manager network.ResourceManager) p2p.NodeBuilder
SetResourceManager sets the resource manager for the node.
func (*LibP2PNodeBuilder) SetRoutingSystem ¶
func (builder *LibP2PNodeBuilder) SetRoutingSystem(f func(context.Context, host.Host) (routing.Routing, error)) p2p.NodeBuilder
SetRoutingSystem sets the routing system factory function.
func (*LibP2PNodeBuilder) SetSubscriptionFilter ¶
func (builder *LibP2PNodeBuilder) SetSubscriptionFilter(filter pubsub.SubscriptionFilter) p2p.NodeBuilder
SetSubscriptionFilter sets the pubsub subscription filter for the node.