From f217de054d042ef011adbeff7a750b50af349f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Facundo=20Dom=C3=ADnguez?= Date: Tue, 20 Aug 2024 20:44:01 +0000 Subject: [PATCH] Change daBlockFetchMode to use GenesisBlockFetch --- .../Test/Ouroboros/Network/Diffusion/Node.hs | 2 +- .../src/Ouroboros/Network/Diffusion/P2P.hs | 4 ++-- .../src/Ouroboros/Network/PeerSelection/Churn.hs | 14 ++++++++------ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node.hs b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node.hs index fed35a188e..6f5cc246f8 100644 --- a/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node.hs +++ b/ouroboros-network/sim-tests-lib/Test/Ouroboros/Network/Diffusion/Node.hs @@ -267,7 +267,7 @@ run blockGeneratorArgs limits ni na tracersExtra tracerBlockFetch = (\ _ (_ :: SomeException) -> ShutdownNode) , Diff.P2P.daPeerMetrics = peerMetrics -- fetch mode is not used (no block-fetch mini-protocol) - , Diff.P2P.daBlockFetchMode = pure FetchModeDeadline + , Diff.P2P.daBlockFetchMode = pure $ PraosFetchMode FetchModeDeadline , Diff.P2P.daReturnPolicy = \_ -> config_REPROMOTE_DELAY , Diff.P2P.daPeerSharingRegistry = nkPeerSharingRegistry nodeKernel } diff --git a/ouroboros-network/src/Ouroboros/Network/Diffusion/P2P.hs b/ouroboros-network/src/Ouroboros/Network/Diffusion/P2P.hs index 9eb7a5960a..be276b1250 100644 --- a/ouroboros-network/src/Ouroboros/Network/Diffusion/P2P.hs +++ b/ouroboros-network/src/Ouroboros/Network/Diffusion/P2P.hs @@ -71,7 +71,7 @@ import Ouroboros.Network.Snocket (FileDescriptor, LocalAddress, makeLocalBearer, makeSocketBearer) import Ouroboros.Network.Snocket qualified as Snocket -import Ouroboros.Network.BlockFetch +import Ouroboros.Network.BlockFetch.ConsensusInterface (GenesisFetchMode) import Ouroboros.Network.ConnectionId import Ouroboros.Network.Context (ExpandedInitiatorContext, ResponderContext) import Ouroboros.Network.Protocol.Handshake @@ -362,7 +362,7 @@ data ApplicationsExtra ntnAddr m a = -- | Used by churn-governor -- - , daBlockFetchMode :: STM m FetchMode + , daBlockFetchMode :: STM m GenesisFetchMode -- | Used for peer sharing protocol -- diff --git a/ouroboros-network/src/Ouroboros/Network/PeerSelection/Churn.hs b/ouroboros-network/src/Ouroboros/Network/PeerSelection/Churn.hs index 7fdc008993..9170bcab43 100644 --- a/ouroboros-network/src/Ouroboros/Network/PeerSelection/Churn.hs +++ b/ouroboros-network/src/Ouroboros/Network/PeerSelection/Churn.hs @@ -31,6 +31,7 @@ import Control.Applicative (Alternative) import Data.Functor (($>)) import Data.Monoid.Synchronisation (FirstToFinish (..)) import Ouroboros.Network.BlockFetch (FetchMode (..)) +import Ouroboros.Network.BlockFetch.ConsensusInterface (GenesisFetchMode (..)) import Ouroboros.Network.ConsensusMode (ConsensusMode (..)) import Ouroboros.Network.Diffusion.Policies (churnEstablishConnectionTimeout, closeConnectionTimeout, deactivateTimeout) @@ -90,7 +91,7 @@ data PeerChurnArgs m peeraddr = PeerChurnArgs { pcaMetrics :: PeerMetrics m peeraddr, pcaModeVar :: StrictTVar m ChurnMode, pcaRng :: StdGen, - pcaReadFetchMode :: STM m FetchMode, + pcaReadFetchMode :: STM m GenesisFetchMode, peerTargets :: ConsensusModePeerTargets, pcaPeerSelectionVar :: StrictTVar m PeerSelectionTargets, pcaReadCounters :: STM m PeerSelectionCounters, @@ -156,8 +157,9 @@ peerChurnGovernor PeerChurnArgs { updateChurnMode = do fm <- getFetchMode let mode = case fm of - FetchModeDeadline -> ChurnModeNormal - FetchModeBulkSync -> ChurnModeBulkSync + PraosFetchMode FetchModeDeadline -> ChurnModeNormal + PraosFetchMode FetchModeBulkSync -> ChurnModeBulkSync + FetchModeGenesis -> ChurnModeBulkSync writeTVar churnModeVar mode return mode @@ -583,9 +585,9 @@ peerChurnGovernor PeerChurnArgs { mode <- atomically getFetchMode -- todo: is this right? case (mode, consensusMode) of - (FetchModeDeadline, _) -> longDelay rng execTime - (_, GenesisMode) -> longDelay rng execTime - _otherwise -> shortDelay rng execTime + (PraosFetchMode FetchModeDeadline, _) -> longDelay rng execTime + (_, GenesisMode) -> longDelay rng execTime + _otherwise -> shortDelay rng execTime fuzzyDelay' :: DiffTime -> Double -> StdGen -> DiffTime -> m StdGen