ouroboros-network
Safe HaskellNone
LanguageHaskell2010

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

Documentation

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 

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

data PeerSharing #

Instances

Instances details
Monoid PeerSharing 
Instance details

Defined in Ouroboros.Network.PeerSelection.PeerSharing

Semigroup PeerSharing 
Instance details

Defined in Ouroboros.Network.PeerSelection.PeerSharing

Generic PeerSharing 
Instance details

Defined in Ouroboros.Network.PeerSelection.PeerSharing

Associated Types

type Rep PeerSharing 
Instance details

Defined in Ouroboros.Network.PeerSelection.PeerSharing

type Rep PeerSharing = D1 ('MetaData "PeerSharing" "Ouroboros.Network.PeerSelection.PeerSharing" "ouroboros-network-0.23.0.0-inplace-api" 'False) (C1 ('MetaCons "PeerSharingDisabled" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PeerSharingEnabled" 'PrefixI 'False) (U1 :: Type -> Type))
Read PeerSharing 
Instance details

Defined in Ouroboros.Network.PeerSelection.PeerSharing

Show PeerSharing 
Instance details

Defined in Ouroboros.Network.PeerSelection.PeerSharing

Eq PeerSharing 
Instance details

Defined in Ouroboros.Network.PeerSelection.PeerSharing

type Rep PeerSharing 
Instance details

Defined in Ouroboros.Network.PeerSelection.PeerSharing

type Rep PeerSharing = D1 ('MetaData "PeerSharing" "Ouroboros.Network.PeerSelection.PeerSharing" "ouroboros-network-0.23.0.0-inplace-api" 'False) (C1 ('MetaCons "PeerSharingDisabled" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PeerSharingEnabled" 'PrefixI 'False) (U1 :: Type -> Type))

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.