| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Cardano.Network.NodeToNode.Version
Contents
Synopsis
- data NodeToNodeVersion
- data NodeToNodeVersionData = NodeToNodeVersionData {
- networkMagic :: !NetworkMagic
- diffusionMode :: !DiffusionMode
- peerSharing :: !PeerSharing
- query :: !Bool
- perasSupport :: !PerasSupport
- data DiffusionMode
- data ConnectionMode
- data PerasSupport
- nodeToNodeVersionCodec :: CodecCBORTerm (Text, Maybe Int) NodeToNodeVersion
- nodeToNodeCodecCBORTerm :: NodeToNodeVersion -> CodecCBORTerm Text NodeToNodeVersionData
- isValidNtnVersionDataForVersion :: NodeToNodeVersion -> NodeToNodeVersionData -> Bool
- getLocalPerasSupport :: Set CardanoFeatureFlag -> NodeToNodeVersion -> PerasSupport
Documentation
data NodeToNodeVersion Source #
Enumeration of node to node protocol versions.
Historical versions:
NodeToNodeV_7 -- ^ Changes: -- -- * newKeepAlivecodec -- * EnableCardanoNodeToNodeVersion5, i.e., Alonzo | NodeToNodeV_8 -- ^ Changes: -- -- * Enable block diffusion pipelining in ChainSync and BlockFetch logic. | NodeToNodeV_9 -- ^ Changes: -- -- * EnableCardanoNodeToNodeVersion6, i.e., Babbage | NodeToNodeV_10 -- ^ Changes: -- -- * Enable full duplex connections. | NodeToNodeV_11 -- ^ Changes: -- -- * Adds a new extra parameter to handshake: PeerSharing -- This version is needed to support the new Peer Sharing miniprotocol -- older versions that are negotiated will appear as not participating -- in Peer Sharing to newer versions. -- * Addsqueryto NodeToClientVersionData. | NodeToNodeV_12 -- ^ No changes. -- -- (In the past, this enabled Conway, but the negotiatedNodeToNodeVersion-- no longer en-/disables eras.) | NodeToNodeV_13 -- ^ Changes: -- * Removed PeerSharingPrivate constructor -- * Fixed Codec to disable PeerSharing with buggy versions 11 and 12. -- * Disable PeerSharing with InitiatorOnly nodes, since they do not run -- peer sharing server side and can not reply to requests.
Constructors
| NodeToNodeV_14 | Plomin HF, mandatory on mainnet as of 2025.01.29 |
| NodeToNodeV_15 | SRV support |
| NodeToNodeV_16 | Experimental. Adds support for Peras mini-protocols (if |
Instances
data NodeToNodeVersionData Source #
Version data for NodeToNode protocol
Constructors
| NodeToNodeVersionData | |
Fields
| |
Instances
| NFData NodeToNodeVersionData Source # | |||||
Defined in Cardano.Network.NodeToNode.Version Methods rnf :: NodeToNodeVersionData -> () # | |||||
| Generic NodeToNodeVersionData Source # | |||||
Defined in Cardano.Network.NodeToNode.Version Associated Types
Methods from :: NodeToNodeVersionData -> Rep NodeToNodeVersionData x # to :: Rep NodeToNodeVersionData x -> NodeToNodeVersionData # | |||||
| Show NodeToNodeVersionData Source # | |||||
Defined in Cardano.Network.NodeToNode.Version Methods showsPrec :: Int -> NodeToNodeVersionData -> ShowS # show :: NodeToNodeVersionData -> String # showList :: [NodeToNodeVersionData] -> ShowS # | |||||
| Eq NodeToNodeVersionData Source # | |||||
Defined in Cardano.Network.NodeToNode.Version Methods (==) :: NodeToNodeVersionData -> NodeToNodeVersionData -> Bool # (/=) :: NodeToNodeVersionData -> NodeToNodeVersionData -> Bool # | |||||
| Acceptable NodeToNodeVersionData Source # | |||||
Defined in Cardano.Network.NodeToNode.Version Methods acceptableVersion :: NodeToNodeVersionData -> NodeToNodeVersionData -> Accept NodeToNodeVersionData | |||||
| Queryable NodeToNodeVersionData Source # | |||||
Defined in Cardano.Network.NodeToNode.Version Methods | |||||
| type Rep NodeToNodeVersionData Source # | |||||
Defined in Cardano.Network.NodeToNode.Version type Rep NodeToNodeVersionData = D1 ('MetaData "NodeToNodeVersionData" "Cardano.Network.NodeToNode.Version" "cardano-diffusion-1.0.0.0-inplace-api" 'False) (C1 ('MetaCons "NodeToNodeVersionData" 'PrefixI 'True) ((S1 ('MetaSel ('Just "networkMagic") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NetworkMagic) :*: S1 ('MetaSel ('Just "diffusionMode") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DiffusionMode)) :*: (S1 ('MetaSel ('Just "peerSharing") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PeerSharing) :*: (S1 ('MetaSel ('Just "query") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "perasSupport") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasSupport))))) | |||||
data DiffusionMode #
Instances
| NFData DiffusionMode | |||||
Defined in Ouroboros.Network.DiffusionMode Methods rnf :: DiffusionMode -> () # | |||||
| Generic DiffusionMode | |||||
Defined in Ouroboros.Network.DiffusionMode Associated Types
| |||||
| Show DiffusionMode | |||||
Defined in Ouroboros.Network.DiffusionMode Methods showsPrec :: Int -> DiffusionMode -> ShowS # show :: DiffusionMode -> String # showList :: [DiffusionMode] -> ShowS # | |||||
| Eq DiffusionMode | |||||
Defined in Ouroboros.Network.DiffusionMode Methods (==) :: DiffusionMode -> DiffusionMode -> Bool # (/=) :: DiffusionMode -> DiffusionMode -> Bool # | |||||
| Ord DiffusionMode | |||||
Defined in Ouroboros.Network.DiffusionMode Methods compare :: DiffusionMode -> DiffusionMode -> Ordering # (<) :: DiffusionMode -> DiffusionMode -> Bool # (<=) :: DiffusionMode -> DiffusionMode -> Bool # (>) :: DiffusionMode -> DiffusionMode -> Bool # (>=) :: DiffusionMode -> DiffusionMode -> Bool # max :: DiffusionMode -> DiffusionMode -> DiffusionMode # min :: DiffusionMode -> DiffusionMode -> DiffusionMode # | |||||
| type Rep DiffusionMode | |||||
Defined in Ouroboros.Network.DiffusionMode type Rep DiffusionMode = D1 ('MetaData "DiffusionMode" "Ouroboros.Network.DiffusionMode" "ouroboros-network-1.1.0.0-inplace-api" 'False) (C1 ('MetaCons "InitiatorOnlyDiffusionMode" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InitiatorAndResponderDiffusionMode" 'PrefixI 'False) (U1 :: Type -> Type)) | |||||
data ConnectionMode Source #
Constructors
| UnidirectionalMode | |
| DuplexMode |
data PerasSupport #
Constructors
| PerasUnsupported | |
| PerasSupported |
Instances
| NFData PerasSupport | |||||
Defined in Ouroboros.Network.PerasSupport Methods rnf :: PerasSupport -> () # | |||||
| Bounded PerasSupport | |||||
Defined in Ouroboros.Network.PerasSupport | |||||
| Generic PerasSupport | |||||
Defined in Ouroboros.Network.PerasSupport Associated Types
| |||||
| Show PerasSupport | |||||
Defined in Ouroboros.Network.PerasSupport Methods showsPrec :: Int -> PerasSupport -> ShowS # show :: PerasSupport -> String # showList :: [PerasSupport] -> ShowS # | |||||
| Eq PerasSupport | |||||
Defined in Ouroboros.Network.PerasSupport | |||||
| Ord PerasSupport | |||||
Defined in Ouroboros.Network.PerasSupport Methods compare :: PerasSupport -> PerasSupport -> Ordering # (<) :: PerasSupport -> PerasSupport -> Bool # (<=) :: PerasSupport -> PerasSupport -> Bool # (>) :: PerasSupport -> PerasSupport -> Bool # (>=) :: PerasSupport -> PerasSupport -> Bool # max :: PerasSupport -> PerasSupport -> PerasSupport # min :: PerasSupport -> PerasSupport -> PerasSupport # | |||||
| type Rep PerasSupport | |||||
Defined in Ouroboros.Network.PerasSupport | |||||
Codecs
nodeToNodeVersionCodec :: CodecCBORTerm (Text, Maybe Int) NodeToNodeVersion Source #
nodeToNodeCodecCBORTerm :: NodeToNodeVersion -> CodecCBORTerm Text NodeToNodeVersionData Source #
Beware, encoding an invalid NodeToNodeVersionData (see isValidNtnVersionDataForVersion) for
a given version will fail if a future field is set to a value other than its default forwards
compatibility one. This way encodeTerm and decodeTerm are only inverses for valid data.
Feature predicates
isValidNtnVersionDataForVersion :: NodeToNodeVersion -> NodeToNodeVersionData -> Bool Source #
perasSupport field is introduced with NodeToNodeV_16, and thus should be
set to PerasUnsupported (and not be serialized) for versions before that.
getLocalPerasSupport :: Set CardanoFeatureFlag -> NodeToNodeVersion -> PerasSupport Source #
Determine the local node's Peras support status based on feature flags and version.