Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.Mock.Protocol.LeaderSchedule
Synopsis
- data family ConsensusConfig p
- newtype LeaderSchedule = LeaderSchedule {}
- data WithLeaderSchedule p
- leaderScheduleFor ∷ CoreNodeId → LeaderSchedule → Set SlotNo
Documentation
data family ConsensusConfig p Source #
Static configuration required to run the consensus protocol
Every method in the ConsensusProtocol
class takes the consensus
configuration as a parameter, so having this as a data family rather than a
type family resolves most ambiguity.
Defined out of the class so that protocols can define this type without having to define the entire protocol at the same time (or indeed in the same module).
Instances
newtype LeaderSchedule Source #
Constructors
LeaderSchedule | |
Fields |
Instances
Semigroup LeaderSchedule | |||||
Defined in Ouroboros.Consensus.Protocol.LeaderSchedule Methods (<>) ∷ LeaderSchedule → LeaderSchedule → LeaderSchedule # sconcat ∷ NonEmpty LeaderSchedule → LeaderSchedule # stimes ∷ Integral b ⇒ b → LeaderSchedule → LeaderSchedule # | |||||
Generic LeaderSchedule | |||||
Defined in Ouroboros.Consensus.Protocol.LeaderSchedule Associated Types
| |||||
Show LeaderSchedule | |||||
Defined in Ouroboros.Consensus.Protocol.LeaderSchedule Methods showsPrec ∷ Int → LeaderSchedule → ShowS # show ∷ LeaderSchedule → String # showList ∷ [LeaderSchedule] → ShowS # | |||||
Eq LeaderSchedule | |||||
Defined in Ouroboros.Consensus.Protocol.LeaderSchedule Methods (==) ∷ LeaderSchedule → LeaderSchedule → Bool # (/=) ∷ LeaderSchedule → LeaderSchedule → Bool # | |||||
Ord LeaderSchedule | |||||
Defined in Ouroboros.Consensus.Protocol.LeaderSchedule Methods compare ∷ LeaderSchedule → LeaderSchedule → Ordering # (<) ∷ LeaderSchedule → LeaderSchedule → Bool # (<=) ∷ LeaderSchedule → LeaderSchedule → Bool # (>) ∷ LeaderSchedule → LeaderSchedule → Bool # (>=) ∷ LeaderSchedule → LeaderSchedule → Bool # | |||||
NoThunks LeaderSchedule | |||||
Defined in Ouroboros.Consensus.Protocol.LeaderSchedule | |||||
Condense LeaderSchedule | |||||
Defined in Ouroboros.Consensus.Protocol.LeaderSchedule Methods | |||||
type Rep LeaderSchedule | |||||
Defined in Ouroboros.Consensus.Protocol.LeaderSchedule type Rep LeaderSchedule = D1 ('MetaData "LeaderSchedule" "Ouroboros.Consensus.Protocol.LeaderSchedule" "ouroboros-consensus-0.25.0.0-inplace" 'True) (C1 ('MetaCons "LeaderSchedule" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLeaderSchedule") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map SlotNo [CoreNodeId])))) |
data WithLeaderSchedule p Source #
Extension of protocol p
by a static leader schedule.
Instances
Generic (ConsensusConfig (WithLeaderSchedule p)) Source # | |||||||||||||||||||||||||||||
Defined in Ouroboros.Consensus.Mock.Protocol.LeaderSchedule Associated Types
Methods from ∷ ConsensusConfig (WithLeaderSchedule p) → Rep (ConsensusConfig (WithLeaderSchedule p)) x # to ∷ Rep (ConsensusConfig (WithLeaderSchedule p)) x → ConsensusConfig (WithLeaderSchedule p) # | |||||||||||||||||||||||||||||
ConsensusProtocol p ⇒ NoThunks (ConsensusConfig (WithLeaderSchedule p)) Source # | |||||||||||||||||||||||||||||
Defined in Ouroboros.Consensus.Mock.Protocol.LeaderSchedule Methods noThunks ∷ Context → ConsensusConfig (WithLeaderSchedule p) → IO (Maybe ThunkInfo) Source # wNoThunks ∷ Context → ConsensusConfig (WithLeaderSchedule p) → IO (Maybe ThunkInfo) Source # showTypeOf ∷ Proxy (ConsensusConfig (WithLeaderSchedule p)) → String Source # | |||||||||||||||||||||||||||||
ConsensusProtocol p ⇒ ConsensusProtocol (WithLeaderSchedule p) Source # | |||||||||||||||||||||||||||||
Defined in Ouroboros.Consensus.Mock.Protocol.LeaderSchedule Associated Types
Methods checkIsLeader ∷ ConsensusConfig (WithLeaderSchedule p) → CanBeLeader (WithLeaderSchedule p) → SlotNo → Ticked (ChainDepState (WithLeaderSchedule p)) → Maybe (IsLeader (WithLeaderSchedule p)) Source # tickChainDepState ∷ ConsensusConfig (WithLeaderSchedule p) → LedgerView (WithLeaderSchedule p) → SlotNo → ChainDepState (WithLeaderSchedule p) → Ticked (ChainDepState (WithLeaderSchedule p)) Source # updateChainDepState ∷ ConsensusConfig (WithLeaderSchedule p) → ValidateView (WithLeaderSchedule p) → SlotNo → Ticked (ChainDepState (WithLeaderSchedule p)) → Except (ValidationErr (WithLeaderSchedule p)) (ChainDepState (WithLeaderSchedule p)) Source # reupdateChainDepState ∷ ConsensusConfig (WithLeaderSchedule p) → ValidateView (WithLeaderSchedule p) → SlotNo → Ticked (ChainDepState (WithLeaderSchedule p)) → ChainDepState (WithLeaderSchedule p) Source # protocolSecurityParam ∷ ConsensusConfig (WithLeaderSchedule p) → SecurityParam Source # | |||||||||||||||||||||||||||||
type Rep (ConsensusConfig (WithLeaderSchedule p)) Source # | |||||||||||||||||||||||||||||
Defined in Ouroboros.Consensus.Mock.Protocol.LeaderSchedule type Rep (ConsensusConfig (WithLeaderSchedule p)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Mock.Protocol.LeaderSchedule" "ouroboros-consensus-0.25.0.0-inplace-unstable-mock-block" 'False) (C1 ('MetaCons "WLSConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "wlsConfigSchedule") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 LeaderSchedule) :*: (S1 ('MetaSel ('Just "wlsConfigP") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ConsensusConfig p)) :*: S1 ('MetaSel ('Just "wlsConfigNodeId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CoreNodeId)))) | |||||||||||||||||||||||||||||
type CanBeLeader (WithLeaderSchedule p) Source # | |||||||||||||||||||||||||||||
type ChainDepState (WithLeaderSchedule p) Source # | |||||||||||||||||||||||||||||
data ConsensusConfig (WithLeaderSchedule p) Source # | |||||||||||||||||||||||||||||
type IsLeader (WithLeaderSchedule p) Source # | |||||||||||||||||||||||||||||
type LedgerView (WithLeaderSchedule p) Source # | |||||||||||||||||||||||||||||
type SelectView (WithLeaderSchedule p) Source # | |||||||||||||||||||||||||||||
type ValidateView (WithLeaderSchedule p) Source # | |||||||||||||||||||||||||||||
type ValidationErr (WithLeaderSchedule p) Source # | |||||||||||||||||||||||||||||
leaderScheduleFor ∷ CoreNodeId → LeaderSchedule → Set SlotNo Source #
The Slots
a given node is supposed to lead in