diff --git a/cabal.project b/cabal.project index 2f020dd837..17c612c568 100644 --- a/cabal.project +++ b/cabal.project @@ -59,8 +59,8 @@ allow-newer: source-repository-package type: git location: https://github.com/IntersectMBO/ouroboros-network - tag: 8dfff7b8916f7a56b2a3773438d5e5530c780710 - --sha256: sha256-wMDq19G1SW4+puuQUUjgaULSou4+r7wJj6evnWoW/Xk= + tag: peras-staging/pr-5202 + --sha256: sha256-nTbjunQaqt6/syzSKw24Lne50083dI2SZFirG2/1T9U= subdir: ouroboros-network ouroboros-network-protocols diff --git a/ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Network/NodeToNode.hs b/ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Network/NodeToNode.hs index 426a379b22..f6e2d2e4ba 100644 --- a/ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Network/NodeToNode.hs +++ b/ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Network/NodeToNode.hs @@ -39,6 +39,7 @@ module Ouroboros.Consensus.Network.NodeToNode , initiatorAndResponder ) where +import Cardano.Base.FeatureFlags (CardanoFeatureFlag) import Codec.CBOR.Decoding (Decoder) import qualified Codec.CBOR.Decoding as CBOR import Codec.CBOR.Encoding (Encoding) @@ -54,6 +55,7 @@ import qualified Data.ByteString.Lazy as BSL import Data.Hashable (Hashable) import Data.Int (Int64) import Data.Map.Strict (Map) +import Data.Set (Set) import Data.Void (Void) import qualified Network.Mux as Mux import Network.TypedProtocol.Codec @@ -994,13 +996,15 @@ mkApps kernel rng Tracers{..} mkCodecs ByteLimits{..} chainSyncTimeouts lopBucke -- on the protocol version, but it eventually may; this is why @_version@ is -- currently unused. initiator :: + Set CardanoFeatureFlag -> MiniProtocolParameters -> NodeToNodeVersion -> NodeToNodeVersionData -> Apps m addr b b b b b b a c -> OuroborosBundleWithExpandedCtx 'Mux.InitiatorMode addr b m a Void -initiator miniProtocolParameters version versionData Apps{..} = +initiator featureFlags miniProtocolParameters version versionData Apps{..} = nodeToNodeProtocols + featureFlags miniProtocolParameters -- TODO: currently consensus is using 'ConnectionId' for its 'peer' type. -- This is currently ok, as we might accept multiple connections from the @@ -1017,6 +1021,8 @@ initiator miniProtocolParameters version versionData Apps{..} = (InitiatorProtocolOnly (MiniProtocolCb (\ctx -> aTxSubmission2Client version ctx))) , perasCertDiffusionProtocol = (InitiatorProtocolOnly (MiniProtocolCb (\ctx -> aPerasCertDiffusionClient version ctx))) + , perasVoteDiffusionProtocol = + error "perasVoteDiffusionProtocol: not implemented" , keepAliveProtocol = (InitiatorProtocolOnly (MiniProtocolCb (\ctx -> aKeepAliveClient version ctx))) , peerSharingProtocol = @@ -1032,13 +1038,15 @@ initiator miniProtocolParameters version versionData Apps{..} = -- on the protocol version, but it eventually may; this is why @_version@ is -- currently unused. initiatorAndResponder :: + Set CardanoFeatureFlag -> MiniProtocolParameters -> NodeToNodeVersion -> NodeToNodeVersionData -> Apps m addr b b b b b b a c -> OuroborosBundleWithExpandedCtx 'Mux.InitiatorResponderMode addr b m a c -initiatorAndResponder miniProtocolParameters version versionData Apps{..} = +initiatorAndResponder featureFlags miniProtocolParameters version versionData Apps{..} = nodeToNodeProtocols + featureFlags miniProtocolParameters ( NodeToNodeProtocols { chainSyncProtocol = @@ -1061,6 +1069,8 @@ initiatorAndResponder miniProtocolParameters version versionData Apps{..} = (MiniProtocolCb (\initiatorCtx -> aPerasCertDiffusionClient version initiatorCtx)) (MiniProtocolCb (\responderCtx -> aPerasCertDiffusionServer version responderCtx)) ) + , perasVoteDiffusionProtocol = + error "perasVoteDiffusionProtocol: not implemented" , keepAliveProtocol = ( InitiatorAndResponderProtocol (MiniProtocolCb (\initiatorCtx -> aKeepAliveClient version initiatorCtx)) diff --git a/ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Node.hs b/ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Node.hs index 0dfa364333..69c68903fb 100644 --- a/ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Node.hs +++ b/ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Node.hs @@ -740,7 +740,7 @@ runWith RunNodeArgs{..} encAddrNtN decAddrNtN LowLevelRunNodeArgs{..} = version llrnVersionDataNTN ( \versionData -> - NTN.initiator miniProtocolParams version versionData + NTN.initiator llrnFeatureFlags miniProtocolParams version versionData -- Initiator side won't start responder side of Peer -- Sharing protocol so we give a dummy implementation -- here. @@ -755,7 +755,7 @@ runWith RunNodeArgs{..} encAddrNtN decAddrNtN LowLevelRunNodeArgs{..} = version llrnVersionDataNTN ( \versionData -> - NTN.initiatorAndResponder miniProtocolParams version versionData $ + NTN.initiatorAndResponder llrnFeatureFlags miniProtocolParams version versionData $ ntnApps blockVersion ) | (version, blockVersion) <- Map.toList llrnNodeToNodeVersions