Skip to content

Commit

Permalink
Please stylish-haskell
Browse files Browse the repository at this point in the history
  • Loading branch information
facundominguez committed Aug 19, 2024
1 parent c347554 commit 13e181a
Show file tree
Hide file tree
Showing 11 changed files with 58 additions and 59 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE RankNTypes #-}

module Ouroboros.Network.BlockFetch.ConsensusInterface
( FetchMode (..)
Expand All @@ -17,8 +17,8 @@ import Control.Monad.Class.MonadTime (UTCTime)
import Control.Monad.Class.MonadTime.SI (Time)

import Data.Map.Strict (Map)
import GHC.Stack (HasCallStack)
import GHC.Generics (Generic)
import GHC.Stack (HasCallStack)
import NoThunks.Class (NoThunks)

import Ouroboros.Network.AnchoredFragment (AnchoredFragment)
Expand Down
4 changes: 2 additions & 2 deletions ouroboros-network/demo/chain-sync.hs
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ import Ouroboros.Network.Protocol.BlockFetch.Type qualified as BlockFetch
import Ouroboros.Network.BlockFetch
import Ouroboros.Network.BlockFetch.Client
import Ouroboros.Network.BlockFetch.ClientRegistry (FetchClientRegistry (..))
import Ouroboros.Network.BlockFetch.ConsensusInterface
(ChainSelStarvation(..), GenesisFetchMode(..))
import Ouroboros.Network.BlockFetch.ConsensusInterface (ChainSelStarvation (..),
GenesisFetchMode (..))
import Ouroboros.Network.DeltaQ (defaultGSV)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@ import Ouroboros.Network.Block
import Network.TypedProtocol.Core
import Network.TypedProtocol.Pipelined

import qualified Ouroboros.Network.AnchoredFragment as AF
import Ouroboros.Network.AnchoredFragment qualified as AF
import Ouroboros.Network.ControlMessage (ControlMessageSTM)

import Ouroboros.Network.BlockFetch
import Ouroboros.Network.BlockFetch.Client
import Ouroboros.Network.BlockFetch.ConsensusInterface
(ChainSelStarvation(..), GenesisFetchMode(..))
import Ouroboros.Network.BlockFetch.ConsensusInterface (ChainSelStarvation (..),
GenesisFetchMode (..))
import Ouroboros.Network.Channel
import Ouroboros.Network.DeltaQ
import Ouroboros.Network.Driver
Expand All @@ -57,8 +57,8 @@ import Ouroboros.Network.Protocol.BlockFetch.Server
import Ouroboros.Network.Protocol.BlockFetch.Type
import Ouroboros.Network.Util.ShowProxy

import Ouroboros.Network.Mock.ConcreteBlock
import Ouroboros.Network.BlockFetch.Decision.Trace (TraceDecisionEvent)
import Ouroboros.Network.Mock.ConcreteBlock


-- | Run a single block fetch protocol until the chain is downloaded.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ import Ouroboros.Network.Mock.ConcreteBlock
import Ouroboros.Network.NodeToNode.Version (isPipeliningEnabled)
import Ouroboros.Network.Protocol.BlockFetch.Type (BlockFetch)

import Ouroboros.Network.Testing.Utils
import Ouroboros.Network.BlockFetch.Decision.Trace (TraceDecisionEvent)
import Ouroboros.Network.Testing.Utils


--
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ import Ouroboros.Network.AnchoredFragment qualified as AF
import Ouroboros.Network.Block (MaxSlotNo (..), maxSlotNoFromWithOrigin,
pointSlot)
import Ouroboros.Network.BlockFetch
import Ouroboros.Network.BlockFetch.ConsensusInterface
(ChainSelStarvation(..), GenesisFetchMode (..))
import Ouroboros.Network.BlockFetch.ConsensusInterface (ChainSelStarvation (..),
GenesisFetchMode (..))
import Ouroboros.Network.ConnectionManager.Types (DataFlow (..))
import Ouroboros.Network.Diffusion qualified as Diff
import Ouroboros.Network.Diffusion.P2P qualified as Diff.P2P
Expand Down
14 changes: 7 additions & 7 deletions ouroboros-network/src/Ouroboros/Network/BlockFetch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -124,36 +124,36 @@ import Ouroboros.Network.BlockFetch.ClientRegistry (FetchClientPolicy (..),
import Ouroboros.Network.BlockFetch.ConsensusInterface
(BlockFetchConsensusInterface (..), FromConsensus (..),
WhetherReceivingTentativeBlocks (..))
import Ouroboros.Network.BlockFetch.State
import Ouroboros.Network.BlockFetch.Decision.Trace (TraceDecisionEvent)
import Ouroboros.Network.BlockFetch.State


-- | Configuration for FetchDecisionPolicy.
-- Should be determined by external local node config.
data BlockFetchConfiguration =
BlockFetchConfiguration {
-- | Maximum concurrent downloads during bulk syncing.
bfcMaxConcurrencyBulkSync :: !Word,
bfcMaxConcurrencyBulkSync :: !Word,

-- | Maximum concurrent downloads during deadline syncing.
bfcMaxConcurrencyDeadline :: !Word,
bfcMaxConcurrencyDeadline :: !Word,

-- | Maximum requests in flight per each peer.
bfcMaxRequestsInflight :: !Word,
bfcMaxRequestsInflight :: !Word,

-- | Desired interval between calls to fetchLogicIteration
-- in Genesis fetch mode
bfcDecisionLoopIntervalGenesis :: !DiffTime,

-- | Desired interval between calls to fetchLogicIteration
-- in Praos fetch modes
bfcDecisionLoopIntervalPraos :: !DiffTime,
bfcDecisionLoopIntervalPraos :: !DiffTime,

-- | Salt used when comparing peers
bfcSalt :: !Int,
bfcSalt :: !Int,

-- | Genesis-specific parameters
bfcGenesisBFConfig :: !GenesisBlockFetchConfiguration
bfcGenesisBFConfig :: !GenesisBlockFetchConfiguration
}
deriving (Show)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ module Ouroboros.Network.BlockFetch.ClientState
-- * Ancillary
, FromConsensus (..)
, WhetherReceivingTentativeBlocks (..)
, PeersOrder(..)
, PeersOrder (..)
) where

import Data.List (foldl')
Expand Down Expand Up @@ -793,10 +793,10 @@ tryReadTMergeVar (TMergeVar v) = tryReadTMVar v
data PeersOrder peer = PeersOrder
{ peersOrderCurrent :: Maybe peer
-- ^ The current peer we are fetching from, if there is one.
, peersOrderAll :: Seq peer
, peersOrderAll :: Seq peer
-- ^ All the peers, from most preferred to least preferred.
--
-- INVARIANT: If there is a current peer, it is always the head of this list.
, peersOrderStart :: Time
, peersOrderStart :: Time
-- ^ The time at which we started talking to the current peer.
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}

-- | Genesis decision logic
--
Expand Down Expand Up @@ -122,35 +122,34 @@
-- If the peer cannot offer any more blocks after that, it will be rotated out
-- soon.
--
module Ouroboros.Network.BlockFetch.Decision.Genesis (
fetchDecisionsGenesisM
) where
module Ouroboros.Network.BlockFetch.Decision.Genesis (fetchDecisionsGenesisM) where

import Control.Exception (assert)
import Control.Monad (guard)
import Control.Monad.Class.MonadTime.SI (MonadMonotonicTime (getMonotonicTime), addTime)
import Control.Monad.Class.MonadTime.SI (MonadMonotonicTime (getMonotonicTime),
addTime)
import Control.Monad.Trans.Maybe (MaybeT (MaybeT, runMaybeT))
import Control.Monad.Writer.Strict (Writer, runWriter, MonadWriter (tell))
import Control.Monad.Writer.Strict (MonadWriter (tell), Writer, runWriter)
import Control.Tracer (Tracer, traceWith)
import Data.Bifunctor (first, Bifunctor (..))
import Data.Foldable (toList)
import Data.Bifunctor (Bifunctor (..), first)
import Data.DList (DList)
import qualified Data.DList as DList
import qualified Data.List as List
import Data.Sequence (Seq (..), (><), (<|), (|>))
import qualified Data.Sequence as Sequence
import qualified Data.Set as Set
import Data.DList qualified as DList
import Data.Foldable (toList)
import Data.List qualified as List
import Data.Maybe (maybeToList)
import Data.Sequence (Seq (..), (<|), (><), (|>))
import Data.Sequence qualified as Sequence
import Data.Set qualified as Set

import Cardano.Prelude (partitionEithers)

import Ouroboros.Network.AnchoredFragment (AnchoredFragment)
import qualified Ouroboros.Network.AnchoredFragment as AF
import Ouroboros.Network.AnchoredFragment qualified as AF
import Ouroboros.Network.Block
import Ouroboros.Network.BlockFetch.ClientState
(FetchRequest (..), PeersOrder (..), PeerFetchInFlight(..))
import Ouroboros.Network.BlockFetch.ClientState (FetchRequest (..),
PeerFetchInFlight (..), PeersOrder (..))
import Ouroboros.Network.BlockFetch.ConsensusInterface (ChainSelStarvation (..))
import Ouroboros.Network.BlockFetch.DeltaQ (calculatePeerFetchInFlightLimits)
import Ouroboros.Network.BlockFetch.ConsensusInterface (ChainSelStarvation(..))

import Ouroboros.Network.BlockFetch.Decision
import Ouroboros.Network.BlockFetch.Decision.Trace (TraceDecisionEvent (..))
Expand Down Expand Up @@ -242,7 +241,7 @@ fetchDecisionsGenesisM
let peersOrderAll' = ( do
p <- peersOrderAll
case List.find ((p ==) . peerOf) actualPeers of
Just d -> pure d
Just d -> pure d
Nothing -> Empty
) >< Sequence.filter ((`notElem` peersOrderAll) . peerOf) actualPeers
-- Set the current peer to Nothing if it is not at the front of
Expand All @@ -269,7 +268,7 @@ fetchDecisionsGenesisM
peersOrder@PeersOrder {peersOrderStart, peersOrderCurrent, peersOrderAll} = do
lastStarvationTime <- case chainSelStarvation of
ChainSelStarvationEndedAt time -> pure time
ChainSelStarvationOngoing -> getMonotonicTime
ChainSelStarvationOngoing -> getMonotonicTime
case peersOrderCurrent of
Just peer
| lastStarvationTime >= addTime bulkSyncGracePeriod peersOrderStart -> do
Expand Down Expand Up @@ -443,7 +442,7 @@ selectTheCandidate
_ : _ -> do
let maxChainOn f c0 c1 = case compareCandidateChains (f c0) (f c1) of
LT -> c1
_ -> c0
_ -> c0
-- maximumBy yields the last element in case of a tie while we
-- prefer the first one
chainSfx = fst $
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module Ouroboros.Network.BlockFetch.Decision.Trace where

import Ouroboros.Network.BlockFetch.ClientState (TraceLabelPeer)
import Ouroboros.Network.Block (Point)
import Ouroboros.Network.BlockFetch.ClientState (TraceLabelPeer)
import Ouroboros.Network.BlockFetch.Decision (FetchDecision)

data TraceDecisionEvent peer header
Expand Down
16 changes: 8 additions & 8 deletions ouroboros-network/src/Ouroboros/Network/BlockFetch/State.hs
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ import Data.Sequence (Seq (Empty))
import Data.Set qualified as Set
import Data.Void

import qualified Control.Monad.Class.MonadSTM.Internal as Internal.TVar
import Control.Concurrent.Class.MonadSTM.Strict.TVar.Checked
(newTVarIO, StrictTVar, readTVarIO, writeTVar)
import Control.Concurrent.Class.MonadSTM.Strict.TVar.Checked (StrictTVar,
newTVarIO, readTVarIO, writeTVar)
import Control.Exception (assert)
import Control.Monad.Class.MonadSTM
import Control.Monad.Class.MonadSTM.Internal qualified as Internal.TVar
import Control.Monad.Class.MonadTime.SI
import Control.Monad.Class.MonadTimer.SI
import Control.Tracer (Tracer, traceWith)
Expand All @@ -40,16 +40,16 @@ import Ouroboros.Network.Block

import Ouroboros.Network.BlockFetch.ClientState (FetchClientStateVars (..),
FetchRequest (..), PeerFetchInFlight (..), PeerFetchStatus (..),
TraceFetchClientState (..), TraceLabelPeer (..), addNewFetchRequest,
readFetchClientState, PeersOrder (..))
PeersOrder (..), TraceFetchClientState (..), TraceLabelPeer (..),
addNewFetchRequest, readFetchClientState)
import Ouroboros.Network.BlockFetch.ConsensusInterface (ChainSelStarvation,
GenesisFetchMode (..))
import Ouroboros.Network.BlockFetch.Decision (FetchDecision,
FetchDecisionPolicy (..), FetchDecline (..), FetchMode (..),
PeerInfo, fetchDecisions)
import Ouroboros.Network.BlockFetch.Decision.Genesis (fetchDecisionsGenesisM)
import Ouroboros.Network.BlockFetch.DeltaQ (PeerGSV (..))
import Ouroboros.Network.BlockFetch.ConsensusInterface (ChainSelStarvation,
GenesisFetchMode (..))
import Ouroboros.Network.BlockFetch.Decision.Trace
import Ouroboros.Network.BlockFetch.DeltaQ (PeerGSV (..))

fetchLogicIterations
:: ( HasHeader header
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ module Ouroboros.Network.Diffusion.Configuration

import System.Random (randomRIO)

import Ouroboros.Network.BlockFetch
(BlockFetchConfiguration (..), GenesisBlockFetchConfiguration (..))
import Ouroboros.Network.BlockFetch (BlockFetchConfiguration (..),
GenesisBlockFetchConfiguration (..))
import Ouroboros.Network.ConnectionManager.Core (defaultProtocolIdleTimeout,
defaultResetTimeout, defaultTimeWaitTimeout)
import Ouroboros.Network.Diffusion (P2P (..))
Expand Down

0 comments on commit 13e181a

Please sign in to comment.