ouroboros-network-0.1.0.0: A networking layer for the Ouroboros blockchain protocol
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Network.NodeToNode.Version

Synopsis

Documentation

data NodeToNodeVersion Source #

Enumeration of node to node protocol versions.

Constructors

NodeToNodeV_7

Changes:

  • new KeepAlive codec
  • Enable CardanoNodeToNodeVersion5, i.e., Alonzo
NodeToNodeV_8

Changes:

  • Enable block diffusion pipelining in ChainSync and BlockFetch logic.
NodeToNodeV_9

Changes:

  • Enable CardanoNodeToNodeVersion6, i.e., Babbage
NodeToNodeV_10

Changes:

  • Enable full duplex connections. NOTE: This is an experimental protocol version, which is not yet released. Until initial P2P version it must be kept as the last version, which allows us to keep it as an experimental version.

Instances

Instances details
Bounded NodeToNodeVersion Source # 
Instance details

Defined in Ouroboros.Network.NodeToNode.Version

Enum NodeToNodeVersion Source # 
Instance details

Defined in Ouroboros.Network.NodeToNode.Version

Eq NodeToNodeVersion Source # 
Instance details

Defined in Ouroboros.Network.NodeToNode.Version

Ord NodeToNodeVersion Source # 
Instance details

Defined in Ouroboros.Network.NodeToNode.Version

Show NodeToNodeVersion Source # 
Instance details

Defined in Ouroboros.Network.NodeToNode.Version

data DiffusionMode Source #

The flag which indicates whether the node runs only initiator or both initiator or responder node.

This data structure has two proposes:

  • instruct the diffusion layer if it should listen on incoming connections;
  • it is communicated via NodeToNodeVersionData during handshake negotiation. In non-p2p mode we always send InitiatorOnlyDiffusionMode, in p2p mode we send exactly what the diffusion is given. In non-p2p mode every connection outbound port is ephemeral, the remote side cannot connect to it, however in p2p mode the outbound port is actually the port on which the node is listening (if it runs in InitiatorAndResponderDiffusionMode).

Feature checks

isPipeliningEnabledNodeToNodeVersionBool Source #

Check whether a version enabling diffusion pipelining has been negotiated.