Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Ouroboros.Network.Diffusion.Policies
Synopsis
- deactivateTimeout :: DiffTime
- closeConnectionTimeout :: DiffTime
- peerMetricsConfiguration :: PeerMetricsConfiguration
- optionalMerge :: Ord k => Map k a -> Map k b -> Map k (a, Maybe b)
- simplePeerSelectionPolicy :: forall m peerAddr. (MonadSTM m, Ord peerAddr) => StrictTVar m StdGen -> STM m ChurnMode -> PeerMetrics m peerAddr -> ReconnectDelay -> PeerSelectionPolicy peerAddr m
- prunePolicy :: (MonadSTM m, Ord peerAddr) => StrictTVar m InboundGovernorObservableState -> PrunePolicy peerAddr (STM m)
Documentation
deactivateTimeout :: DiffTime Source #
Timeout for spsDeactivateTimeout
.
The maximal timeout on ChainSync
(in StMustReply
state) is 269s
.
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
optionalMerge :: Ord k => Map k a -> Map k b -> Map k (a, Maybe b) Source #
Merge two dictionaries where values of the first one are obligatory, while the second one are optional.
simplePeerSelectionPolicy :: forall m peerAddr. (MonadSTM m, Ord peerAddr) => StrictTVar m StdGen -> STM m ChurnMode -> PeerMetrics m peerAddr -> ReconnectDelay -> PeerSelectionPolicy peerAddr m Source #
prunePolicy :: (MonadSTM m, Ord peerAddr) => StrictTVar m InboundGovernorObservableState -> PrunePolicy peerAddr (STM m) Source #
Sort by upstreamness and a random score.
Note: this PrunePolicy
does not depend on igsConnections
. We put
igsPrng
in InboundGovernorState
only to show that we can have
a PrunePolicy
which depends on the InboundGovernorState
as a more
refined policy would do.
complexity: O(nlogn)
TODO: complexity could be improved.