| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Ouroboros.Network.Diffusion.Configuration
Description
One stop shop for configuring diffusion layer for upstream clients nb. the module Ouroboros.Network.Diffusion.Governor should be imported qualified as PeerSelection by convention to aid comprehension
Synopsis
- defaultAcceptedConnectionsLimit :: AcceptedConnectionsLimit
- defaultPeerSharing :: BlockProducerOrRelay -> PeerSharing
- defaultDeadlineTargets :: BlockProducerOrRelay -> PeerSelectionTargets
- defaultDeadlineChurnInterval :: DiffTime
- defaultBulkChurnInterval :: DiffTime
- data BlockProducerOrRelay
- data AcceptedConnectionsLimit = AcceptedConnectionsLimit {}
- data DiffusionMode
- data PeerSelectionTargets = PeerSelectionTargets {}
- data PeerSharing
- defaultEgressPollInterval :: DiffTime
- deactivateTimeout :: DiffTime
- closeConnectionTimeout :: DiffTime
- peerMetricsConfiguration :: PeerMetricsConfiguration
- defaultTimeWaitTimeout :: DiffTime
- defaultProtocolIdleTimeout :: DiffTime
- defaultResetTimeout :: DiffTime
- handshake_QUERY_SHUTDOWN_DELAY :: DiffTime
- ps_POLICY_PEER_SHARE_STICKY_TIME :: DiffTime
- ps_POLICY_PEER_SHARE_MAX_PEERS :: PeerSharingAmount
- local_PROTOCOL_IDLE_TIMEOUT :: DiffTime
- local_TIME_WAIT_TIMEOUT :: DiffTime
Documentation
defaultAcceptedConnectionsLimit :: AcceptedConnectionsLimit Source #
Inbound governor targets
defaultPeerSharing :: BlockProducerOrRelay -> PeerSharing Source #
Node's peer sharing participation flag
defaultDeadlineTargets Source #
Arguments
| :: BlockProducerOrRelay | block producer or relay node |
| -> PeerSelectionTargets |
Default peer targets in Praos mode
data BlockProducerOrRelay Source #
Outbound governor targets Targets may vary depending on whether a node is operating in Genesis mode.
A Boolean like type to differentiate between a node which is configured as a block producer and a relay. Some default options depend on that value.
Constructors
| BlockProducer | |
| Relay |
Instances
| Show BlockProducerOrRelay Source # | |
Defined in Ouroboros.Network.Diffusion.Configuration Methods showsPrec :: Int -> BlockProducerOrRelay -> ShowS # show :: BlockProducerOrRelay -> String # showList :: [BlockProducerOrRelay] -> ShowS # | |
data AcceptedConnectionsLimit #
Constructors
| AcceptedConnectionsLimit | |
Instances
data DiffusionMode #
Instances
| Show DiffusionMode | |
Defined in Ouroboros.Network.DiffusionMode Methods showsPrec :: Int -> DiffusionMode -> ShowS # show :: DiffusionMode -> String # showList :: [DiffusionMode] -> ShowS # | |
| Eq DiffusionMode | |
Defined in Ouroboros.Network.DiffusionMode Methods (==) :: DiffusionMode -> DiffusionMode -> Bool # (/=) :: DiffusionMode -> DiffusionMode -> Bool # | |
| Ord DiffusionMode | |
Defined in Ouroboros.Network.DiffusionMode Methods compare :: DiffusionMode -> DiffusionMode -> Ordering # (<) :: DiffusionMode -> DiffusionMode -> Bool # (<=) :: DiffusionMode -> DiffusionMode -> Bool # (>) :: DiffusionMode -> DiffusionMode -> Bool # (>=) :: DiffusionMode -> DiffusionMode -> Bool # max :: DiffusionMode -> DiffusionMode -> DiffusionMode # min :: DiffusionMode -> DiffusionMode -> DiffusionMode # | |
data PeerSelectionTargets Source #
Adjustable targets for the peer selection mechanism.
These are used by the peer selection governor as targets. They are used by the peer churn governor loop as knobs to adjust, to influence the peer selection governor.
The known, established and active peer targets are targets both from below and from above: the governor will attempt to grow or shrink the sets to hit these targets.
Unlike the other targets, the root peer target is "one sided", it is only a target from below. The governor does not try to shrink the root set to hit it, it simply stops looking for more.
There is also an implicit target that enough local root peers are selected as active. This comes from the configuration for local roots, and is not an independently adjustable target.
Constructors
| PeerSelectionTargets | |
Fields
| |
Instances
| Show PeerSelectionTargets Source # | |
Defined in Ouroboros.Network.PeerSelection.Governor.Types Methods showsPrec :: Int -> PeerSelectionTargets -> ShowS # show :: PeerSelectionTargets -> String # showList :: [PeerSelectionTargets] -> ShowS # | |
| Eq PeerSelectionTargets Source # | |
Defined in Ouroboros.Network.PeerSelection.Governor.Types Methods (==) :: PeerSelectionTargets -> PeerSelectionTargets -> Bool # (/=) :: PeerSelectionTargets -> PeerSelectionTargets -> Bool # | |
data PeerSharing #
Constructors
| PeerSharingDisabled | |
| PeerSharingEnabled |
Instances
defaultEgressPollInterval :: DiffTime Source #
Mux egress queue polling for tuning latency vs. network efficiency
deactivateTimeout :: DiffTime Source #
Timeout for spsDeactivateTimeout and churn hot to warm demotions.
The maximal timeout on ChainSync (in StMustReply state) is 269s,
see maxChainSyncTimeout below.
closeConnectionTimeout :: DiffTime Source #
Timeout for spsCloseConnectionTimeout.
This timeout depends on KeepAlive and TipSample timeouts. KeepAlive
keeps agency most of the time, but TipSample can give away its agency for
longer periods of time. Here we allow it to get 6 blocks (assuming a new
block every 20s).
peerMetricsConfiguration :: PeerMetricsConfiguration Source #
Number of events tracked by PeerMetrics. This corresponds to one hour of
blocks on mainnet.
TODO: issue #3866
ps_POLICY_PEER_SHARE_STICKY_TIME :: DiffTime Source #
Amount of time between changes to the salt used to pick peers to gossip about.
ps_POLICY_PEER_SHARE_MAX_PEERS :: PeerSharingAmount Source #
Maximum number of peers to respond with in a single request
local_PROTOCOL_IDLE_TIMEOUT :: DiffTime Source #
Protocol inactivity timeout for local (e.g. node-to-client) connections.
local_TIME_WAIT_TIMEOUT :: DiffTime Source #
Used to set cmWaitTimeout for local (e.g. node-to-client) connections.