ouroboros-network-framework-0.1.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

Ouroboros.Network.Protocol.Handshake.Type

Synopsis

Handshake Protocol

data Handshake vNumber vParams where Source #

The handshake mini-protocol is used initially to agree the version and associated parameters of the protocol to use for all subsequent communication.

Constructors

StProposeHandshake vNumber vParams 
StConfirmHandshake vNumber vParams 
StDoneHandshake vNumber vParams 

Instances

Instances details
ShowProxy (Handshake vNumber vParams ∷ Type) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

Methods

showProxyProxy (Handshake vNumber vParams) → String Source #

Show (ClientHasAgency st) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

Show (ServerHasAgency st) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

(Show vNumber, Show vParams) ⇒ Show (Message (Handshake vNumber vParams) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

Methods

showsPrecIntMessage (Handshake vNumber vParams) from to → ShowS Source #

showMessage (Handshake vNumber vParams) from to → String Source #

showList ∷ [Message (Handshake vNumber vParams) from to] → ShowS Source #

Protocol (Handshake vNumber vParams) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

Associated Types

data Message (Handshake vNumber vParams) st st' #

data ClientHasAgency st #

data ServerHasAgency st #

data NobodyHasAgency st #

data ClientHasAgency (st ∷ Handshake vNumber vParams) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

data ClientHasAgency (st ∷ Handshake vNumber vParams) where
data Message (Handshake vNumber vParams) (from ∷ Handshake vNumber vParams) (to ∷ Handshake vNumber vParams) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

data Message (Handshake vNumber vParams) (from ∷ Handshake vNumber vParams) (to ∷ Handshake vNumber vParams) where
data NobodyHasAgency (st ∷ Handshake vNumber vParams) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

data NobodyHasAgency (st ∷ Handshake vNumber vParams) where
data ServerHasAgency (st ∷ Handshake vNumber vParams) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

data ServerHasAgency (st ∷ Handshake vNumber vParams) where

data family Message ps (st ∷ ps) (st' ∷ ps) #

Instances

Instances details
(Show vNumber, Show vParams) ⇒ Show (Message (Handshake vNumber vParams) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

Methods

showsPrecIntMessage (Handshake vNumber vParams) from to → ShowS Source #

showMessage (Handshake vNumber vParams) from to → String Source #

showList ∷ [Message (Handshake vNumber vParams) from to] → ShowS Source #

data Message (Handshake vNumber vParams) (from ∷ Handshake vNumber vParams) (to ∷ Handshake vNumber vParams) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

data Message (Handshake vNumber vParams) (from ∷ Handshake vNumber vParams) (to ∷ Handshake vNumber vParams) where

data family ClientHasAgency (st ∷ ps) #

Instances

Instances details
Show (ClientHasAgency st) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

data ClientHasAgency (st ∷ Handshake vNumber vParams) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

data ClientHasAgency (st ∷ Handshake vNumber vParams) where

data family ServerHasAgency (st ∷ ps) #

Instances

Instances details
Show (ServerHasAgency st) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

data ServerHasAgency (st ∷ Handshake vNumber vParams) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

data ServerHasAgency (st ∷ Handshake vNumber vParams) where

data family NobodyHasAgency (st ∷ ps) #

Instances

Instances details
data NobodyHasAgency (st ∷ Handshake vNumber vParams) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

data NobodyHasAgency (st ∷ Handshake vNumber vParams) where

On simultaneous open both sides will send MsgProposeVersions, which will be decoded as MsgReplyVersions. It is a terminal message of the protocol. It is important to stress that in this case both sides will make the choice which version and parameters to pick. Our algorithm for picking version is symmetric, which ensures that both sides will end up with the same choice. If one side decides to refuse the version it will close the connection, without sending the reason to the other side.

data RefuseReason vNumber Source #

Reasons by which a server can refuse proposed version.

Constructors

VersionMismatch [vNumber] [Int]

All of the prosed versions where not known to the server. Since the server sends all versions that it can knows about, some of them we might not be able to decode, so we include raw tags [Int].

HandshakeDecodeError vNumber Text

The server failed to decode version parameters.

Refused vNumber Text

The server refused to run the proposed version parameters

Instances

Instances details
Eq vNumber ⇒ Eq (RefuseReason vNumber) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

Methods

(==)RefuseReason vNumber → RefuseReason vNumber → Bool Source #

(/=)RefuseReason vNumber → RefuseReason vNumber → Bool Source #

Show vNumber ⇒ Show (RefuseReason vNumber) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

Methods

showsPrecIntRefuseReason vNumber → ShowS Source #

showRefuseReason vNumber → String Source #

showList ∷ [RefuseReason vNumber] → ShowS Source #

(Typeable vNumber, Show vNumber) ⇒ Exception (RefuseReason vNumber) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.Handshake.Type

data HandshakeProtocolError vNumber Source #

Extends handshake error RefuseReason type, by client specific errors.