| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type
Description
The LeiosNotify mini-protocol's types and codec.
Synopsis
- data LeiosNotify point announcement vote where
- StIdle ∷ ∀ point announcement vote. LeiosNotify point announcement vote
- StBusy ∷ ∀ point announcement vote. LeiosNotify point announcement vote
- StQuit ∷ ∀ point announcement vote. LeiosNotify point announcement vote
- StDone ∷ ∀ point announcement vote. LeiosNotify point announcement vote
- data family Message ps (st ∷ ps) (st' ∷ ps)
- data SingLeiosNotify (st ∷ LeiosNotify point announcement vote) where
- SingIdle ∷ ∀ {point} {announcement} {vote}. SingLeiosNotify ('StIdle ∷ LeiosNotify point announcement vote)
- SingBusy ∷ ∀ {point} {announcement} {vote}. SingLeiosNotify ('StBusy ∷ LeiosNotify point announcement vote)
- SingQuit ∷ ∀ {point} {announcement} {vote}. SingLeiosNotify ('StQuit ∷ LeiosNotify point announcement vote)
- SingDone ∷ ∀ {point} {announcement} {vote}. SingLeiosNotify ('StDone ∷ LeiosNotify point announcement vote)
- byteLimitsLeiosNotify ∷ (bytes → Word) → ProtocolSizeLimits (LeiosNotify point announcement vote) bytes
- codecLeiosNotify ∷ ∀ point announcement vote (m ∷ Type → Type). MonadST m ⇒ (point → Encoding) → (∀ s. Decoder s point) → (announcement → Encoding) → (∀ s. Decoder s announcement) → (vote → Encoding) → (∀ s. Decoder s vote) → Codec (LeiosNotify point announcement vote) DeserialiseFailure m ByteString
- codecLeiosNotifyId ∷ ∀ point announcement vote (m ∷ Type → Type). Monad m ⇒ Codec (LeiosNotify point announcement vote) CodecFailure m (AnyMessage (LeiosNotify point announcement vote))
- maxLeiosVotesPerMessage ∷ Int
- maxLeiosNotifyReplyBytes ∷ Word
- timeLimitsLeiosNotify ∷ ProtocolTimeLimits (LeiosNotify point announcement vote)
Documentation
data LeiosNotify point announcement vote where Source #
The LeiosNotify mini-protocol's states, as the cardano-blueprint specifies them: https://cardano-scaling.github.io/cardano-blueprint/network/node-to-node/leios-notify/index.html?leios=on. CIP-0164 specifies the Leios mini-protocols, https://cips.cardano.org/cip/CIP-0164; see also https://github.com/cardano-foundation/CIPs/pull/1296.
Constructors
| StIdle ∷ ∀ point announcement vote. LeiosNotify point announcement vote | |
| StBusy ∷ ∀ point announcement vote. LeiosNotify point announcement vote | |
| StQuit ∷ ∀ point announcement vote. LeiosNotify point announcement vote | |
| StDone ∷ ∀ point announcement vote. LeiosNotify point announcement vote |
Instances
| (ShowProxy point, ShowProxy announcement, ShowProxy vote) ⇒ ShowProxy (LeiosNotify point announcement vote ∷ Type) Source # | |||||
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type Methods showProxy ∷ Proxy (LeiosNotify point announcement vote) → String # | |||||
| NFData (Message (LeiosNotify point announcement vote) from to) Source # | |||||
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type Methods rnf ∷ Message (LeiosNotify point announcement vote) from to → () # | |||||
| (Eq point, Eq announcement, Eq vote) ⇒ Eq (Message (LeiosNotify point announcement vote) from to) Source # | |||||
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type Methods (==) ∷ Message (LeiosNotify point announcement vote) from to → Message (LeiosNotify point announcement vote) from to → Bool # (/=) ∷ Message (LeiosNotify point announcement vote) from to → Message (LeiosNotify point announcement vote) from to → Bool # | |||||
| (Show point, Show announcement, Show vote) ⇒ Show (Message (LeiosNotify point announcement vote) from to) Source # | |||||
| Protocol (LeiosNotify point announcement vote) Source # | |||||
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type Associated Types
| |||||
| ShowProxy ('StBusy ∷ LeiosNotify point announcement vote) Source # | |||||
| ShowProxy ('StDone ∷ LeiosNotify point announcement vote) Source # | |||||
| ShowProxy ('StIdle ∷ LeiosNotify point announcement vote) Source # | |||||
| ShowProxy ('StQuit ∷ LeiosNotify point announcement vote) Source # | |||||
| StateTokenI ('StBusy ∷ LeiosNotify point announcement vote) Source # | |||||
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type Methods stateToken ∷ StateToken ('StBusy ∷ LeiosNotify point announcement vote) Source # | |||||
| StateTokenI ('StDone ∷ LeiosNotify point announcement vote) Source # | |||||
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type Methods stateToken ∷ StateToken ('StDone ∷ LeiosNotify point announcement vote) Source # | |||||
| StateTokenI ('StIdle ∷ LeiosNotify point announcement vote) Source # | |||||
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type Methods stateToken ∷ StateToken ('StIdle ∷ LeiosNotify point announcement vote) Source # | |||||
| StateTokenI ('StQuit ∷ LeiosNotify point announcement vote) Source # | |||||
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type Methods stateToken ∷ StateToken ('StQuit ∷ LeiosNotify point announcement vote) Source # | |||||
| data Message (LeiosNotify point announcement vote) (from ∷ LeiosNotify point announcement vote) (to ∷ LeiosNotify point announcement vote) Source # | |||||
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type data Message (LeiosNotify point announcement vote) (from ∷ LeiosNotify point announcement vote) (to ∷ LeiosNotify point announcement vote) where
| |||||
| type StateToken Source # | |||||
| type StateAgency ('StBusy ∷ LeiosNotify point announcement vote) Source # | |||||
| type StateAgency ('StDone ∷ LeiosNotify point announcement vote) Source # | |||||
| type StateAgency ('StIdle ∷ LeiosNotify point announcement vote) Source # | |||||
| type StateAgency ('StQuit ∷ LeiosNotify point announcement vote) Source # | |||||
data family Message ps (st ∷ ps) (st' ∷ ps) Source #
The messages for this protocol. It is expected to be a GADT that is
indexed by the from and to protocol states. That is the protocol state
the message transitions from, and the protocol state it transitions into.
These are the edges of the protocol state transition system.
Instances
| NFData (Message (LeiosNotify point announcement vote) from to) Source # | |
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type Methods rnf ∷ Message (LeiosNotify point announcement vote) from to → () # | |
| (NFData block, NFData point) ⇒ NFData (Message (BlockFetch block point) from to) # | |
Defined in Ouroboros.Network.Protocol.BlockFetch.Type | |
| (NFData header, NFData point, NFData tip) ⇒ NFData (Message (ChainSync header point tip) from to) # | |
Defined in Ouroboros.Network.Protocol.ChainSync.Type | |
| NFData (Message KeepAlive from to) # | |
Defined in Ouroboros.Network.Protocol.KeepAlive.Type | |
| (∀ result. NFData (query result), NFData point) ⇒ NFData (Message (LocalStateQuery block point query) from to) # | |
| (NFData txid, NFData tx, NFData slot) ⇒ NFData (Message (LocalTxMonitor txid tx slot) from to) # | |
| (NFData tx, NFData reject) ⇒ NFData (Message (LocalTxSubmission tx reject) from to) # | |
| (NFData objectId, NFData object) ⇒ NFData (Message (ObjectDiffusion objectId object) from to) # | |
| NFData peerAddress ⇒ NFData (Message (PeerSharing peerAddress) from to) # | |
Defined in Ouroboros.Network.Protocol.PeerSharing.Type | |
| (NFData txid, NFData tx) ⇒ NFData (Message (TxSubmission2 txid tx) from to) # | |
| (Eq point, Eq announcement, Eq vote) ⇒ Eq (Message (LeiosNotify point announcement vote) from to) Source # | |
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type Methods (==) ∷ Message (LeiosNotify point announcement vote) from to → Message (LeiosNotify point announcement vote) from to → Bool # (/=) ∷ Message (LeiosNotify point announcement vote) from to → Message (LeiosNotify point announcement vote) from to → Bool # | |
| (Eq tx, Eq reject) ⇒ Eq (Message (LocalTxSubmission tx reject) from to) # | |
| (Eq objectId, Eq object) ⇒ Eq (Message (ObjectDiffusion objectId object) from to) # | |
| (Eq txid, Eq tx) ⇒ Eq (Message (TxSubmission2 txid tx) from to) # | |
| (Show point, Show announcement, Show vote) ⇒ Show (Message (LeiosNotify point announcement vote) from to) Source # | |
| (Show block, Show point) ⇒ Show (Message (BlockFetch block point) from to) # | |
| (Show header, Show point, Show tip) ⇒ Show (Message (ChainSync header point tip) from to) # | |
| Show (Message KeepAlive from to) # | |
| (Show txid, Show tx, Show slot) ⇒ Show (Message (LocalTxMonitor txid tx slot) from to) # | |
| (Show tx, Show reject) ⇒ Show (Message (LocalTxSubmission tx reject) from to) # | |
| (Show objectId, Show object) ⇒ Show (Message (ObjectDiffusion objectId object) from to) # | |
| Show peer ⇒ Show (Message (PeerSharing peer) from to) # | |
| (Show txid, Show tx) ⇒ Show (Message (TxSubmission2 txid tx) from to) # | |
| data Message KeepAlive (from ∷ KeepAlive) (to ∷ KeepAlive) # | |
Defined in Ouroboros.Network.Protocol.KeepAlive.Type data Message KeepAlive (from ∷ KeepAlive) (to ∷ KeepAlive) where
| |
| data Message (PeerSharing peerAddress) (from ∷ PeerSharing peerAddress) (to ∷ PeerSharing peerAddress) # | |
Defined in Ouroboros.Network.Protocol.PeerSharing.Type data Message (PeerSharing peerAddress) (from ∷ PeerSharing peerAddress) (to ∷ PeerSharing peerAddress) where
| |
| data Message (BlockFetch block point) (from ∷ BlockFetch block point) (to ∷ BlockFetch block point) # | |
Defined in Ouroboros.Network.Protocol.BlockFetch.Type data Message (BlockFetch block point) (from ∷ BlockFetch block point) (to ∷ BlockFetch block point) where
| |
| data Message (LocalTxSubmission tx reject) (from ∷ LocalTxSubmission tx reject) (to ∷ LocalTxSubmission tx reject) # | |
Defined in Ouroboros.Network.Protocol.LocalTxSubmission.Type data Message (LocalTxSubmission tx reject) (from ∷ LocalTxSubmission tx reject) (to ∷ LocalTxSubmission tx reject) where
| |
| data Message (ObjectDiffusion objectId object) (from ∷ ObjectDiffusion objectId object) (to ∷ ObjectDiffusion objectId object) # | |
Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type data Message (ObjectDiffusion objectId object) (from ∷ ObjectDiffusion objectId object) (to ∷ ObjectDiffusion objectId object) where
| |
| data Message (TxSubmission2 txid tx) (from ∷ TxSubmission2 txid tx) (to ∷ TxSubmission2 txid tx) # | |
Defined in Ouroboros.Network.Protocol.TxSubmission2.Type data Message (TxSubmission2 txid tx) (from ∷ TxSubmission2 txid tx) (to ∷ TxSubmission2 txid tx) where
| |
| data Message (LeiosNotify point announcement vote) (from ∷ LeiosNotify point announcement vote) (to ∷ LeiosNotify point announcement vote) Source # | |
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type data Message (LeiosNotify point announcement vote) (from ∷ LeiosNotify point announcement vote) (to ∷ LeiosNotify point announcement vote) where
| |
| data Message (ChainSync header point tip) (from ∷ ChainSync header point tip) (to ∷ ChainSync header point tip) # | |
Defined in Ouroboros.Network.Protocol.ChainSync.Type data Message (ChainSync header point tip) (from ∷ ChainSync header point tip) (to ∷ ChainSync header point tip) where
| |
| data Message (LocalStateQuery block point query) (from ∷ LocalStateQuery block point query) (to ∷ LocalStateQuery block point query) # | |
Defined in Ouroboros.Network.Protocol.LocalStateQuery.Type data Message (LocalStateQuery block point query) (from ∷ LocalStateQuery block point query) (to ∷ LocalStateQuery block point query) where
| |
| data Message (LocalTxMonitor txid tx slot) (from ∷ LocalTxMonitor txid tx slot) (to ∷ LocalTxMonitor txid tx slot) # | |
Defined in Ouroboros.Network.Protocol.LocalTxMonitor.Type data Message (LocalTxMonitor txid tx slot) (from ∷ LocalTxMonitor txid tx slot) (to ∷ LocalTxMonitor txid tx slot) where
| |
data SingLeiosNotify (st ∷ LeiosNotify point announcement vote) where Source #
Constructors
| SingIdle ∷ ∀ {point} {announcement} {vote}. SingLeiosNotify ('StIdle ∷ LeiosNotify point announcement vote) | |
| SingBusy ∷ ∀ {point} {announcement} {vote}. SingLeiosNotify ('StBusy ∷ LeiosNotify point announcement vote) | |
| SingQuit ∷ ∀ {point} {announcement} {vote}. SingLeiosNotify ('StQuit ∷ LeiosNotify point announcement vote) | |
| SingDone ∷ ∀ {point} {announcement} {vote}. SingLeiosNotify ('StDone ∷ LeiosNotify point announcement vote) |
Instances
| Show (SingLeiosNotify st) Source # | |
Defined in Ouroboros.Consensus.MiniProtocol.LeiosNotify.Type Methods showsPrec ∷ Int → SingLeiosNotify st → ShowS # show ∷ SingLeiosNotify st → String # showList ∷ [SingLeiosNotify st] → ShowS # | |
byteLimitsLeiosNotify ∷ (bytes → Word) → ProtocolSizeLimits (LeiosNotify point announcement vote) bytes Source #
codecLeiosNotify ∷ ∀ point announcement vote (m ∷ Type → Type). MonadST m ⇒ (point → Encoding) → (∀ s. Decoder s point) → (announcement → Encoding) → (∀ s. Decoder s announcement) → (vote → Encoding) → (∀ s. Decoder s vote) → Codec (LeiosNotify point announcement vote) DeserialiseFailure m ByteString Source #
codecLeiosNotifyId ∷ ∀ point announcement vote (m ∷ Type → Type). Monad m ⇒ Codec (LeiosNotify point announcement vote) CodecFailure m (AnyMessage (LeiosNotify point announcement vote)) Source #
maxLeiosVotesPerMessage ∷ Int Source #
The most votes one MsgLeiosVotes may carry.
It keeps every reply within maxLeiosNotifyReplyBytes.
maxLeiosNotifyReplyBytes ∷ Word Source #
The most bytes one reply may take, 1.5 KiB.
A vote encodes to at most 88 bytes, so a MsgLeiosVotes of
maxLeiosVotesPerMessage votes takes at most 1411 bytes. An announcing
header is bounded by the ledger's maximum header size, 1100 bytes on
mainnet; raising that parameter past this would need this raised too. An
offer takes tens of bytes.
timeLimitsLeiosNotify ∷ ProtocolTimeLimits (LeiosNotify point announcement vote) Source #