ouroboros-consensus:unstable-mock-block
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Mock.Protocol.Praos

Description

Proof of concept implementation of Praos

Synopsis

Documentation

data HotKey c Source #

The key used for the given period or a stub Poisoned value.

A key will be poisoned if it failed to evolve by updateKES, and will remain poisoned forever after that.

Constructors

HotKey 

Fields

HotKeyPoisoned 

Instances

Instances details
Generic (HotKey c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Associated Types

type Rep (HotKey c) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (HotKey c) = D1 ('MetaData "HotKey" "Ouroboros.Consensus.Mock.Protocol.Praos" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'False) (C1 ('MetaCons "HotKey" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Period) :*: S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (UnsoundPureSignKeyKES (PraosKES c)))) :+: C1 ('MetaCons "HotKeyPoisoned" 'PrefixI 'False) (U1 ∷ Type → Type))

Methods

from ∷ HotKey c → Rep (HotKey c) x #

to ∷ Rep (HotKey c) x → HotKey c #

PraosCrypto c ⇒ Show (HotKey c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Methods

showsPrec ∷ Int → HotKey c → ShowS #

show ∷ HotKey c → String #

showList ∷ [HotKey c] → ShowS #

(PraosCrypto c, NoThunks (UnsoundPureSignKeyKES (PraosKES c))) ⇒ NoThunks (HotKey c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (HotKey c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (HotKey c) = D1 ('MetaData "HotKey" "Ouroboros.Consensus.Mock.Protocol.Praos" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'False) (C1 ('MetaCons "HotKey" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Period) :*: S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (UnsoundPureSignKeyKES (PraosKES c)))) :+: C1 ('MetaCons "HotKeyPoisoned" 'PrefixI 'False) (U1 ∷ Type → Type))

newtype HotKeyEvolutionError Source #

The HotKey could not be evolved to the given Period.

data Praos c Source #

An uninhabited type representing the Praos protocol.

Instances

Instances details
Generic (ConsensusConfig (Praos c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Associated Types

type Rep (ConsensusConfig (Praos c)) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (ConsensusConfig (Praos c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Mock.Protocol.Praos" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'False) (C1 ('MetaCons "PraosConfig" 'PrefixI 'True) ((S1 ('MetaSel ('Just "praosParams") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PraosParams) :*: (S1 ('MetaSel ('Just "praosInitialEta") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Natural) :*: S1 ('MetaSel ('Just "praosInitialStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StakeDist))) :*: (S1 ('MetaSel ('Just "praosEvolvingStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PraosEvolvingStake) :*: (S1 ('MetaSel ('Just "praosSignKeyVRF") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SignKeyVRF (PraosVRF c))) :*: S1 ('MetaSel ('Just "praosVerKeys") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map CoreNodeId (VerKeyKES (PraosKES c), VerKeyVRF (PraosVRF c))))))))
PraosCrypto c ⇒ NoThunks (ConsensusConfig (Praos c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

PraosCrypto c ⇒ ConsensusProtocol (Praos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Associated Types

type ChainDepState (Praos c) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type IsLeader (Praos c) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type IsLeader (Praos c)
type CanBeLeader (Praos c) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type TiebreakerView (Praos c) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type LedgerView (Praos c) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type LedgerView (Praos c) = ()
type ValidationErr (Praos c) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type ValidateView (Praos c) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (ConsensusConfig (Praos c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (ConsensusConfig (Praos c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Mock.Protocol.Praos" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'False) (C1 ('MetaCons "PraosConfig" 'PrefixI 'True) ((S1 ('MetaSel ('Just "praosParams") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PraosParams) :*: (S1 ('MetaSel ('Just "praosInitialEta") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Natural) :*: S1 ('MetaSel ('Just "praosInitialStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StakeDist))) :*: (S1 ('MetaSel ('Just "praosEvolvingStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PraosEvolvingStake) :*: (S1 ('MetaSel ('Just "praosSignKeyVRF") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SignKeyVRF (PraosVRF c))) :*: S1 ('MetaSel ('Just "praosVerKeys") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map CoreNodeId (VerKeyKES (PraosKES c), VerKeyVRF (PraosVRF c))))))))
type CanBeLeader (Praos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type ChainDepState (Praos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

data ConsensusConfig (Praos c) Source #

The configuration that will be provided to every node when running the MockPraos protocol.

Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type IsLeader (Praos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type IsLeader (Praos c)
type LedgerView (Praos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type LedgerView (Praos c) = ()
type TiebreakerView (Praos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type ValidateView (Praos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type ValidationErr (Praos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

newtype PraosChainDepState c Source #

The chain dependent state, in this case as it is a mock, we just will store a list of BlockInfos that allow us to look into the past.

Constructors

PraosChainDepState 

Fields

Instances

Instances details
PraosCrypto c ⇒ Eq (PraosChainDepState c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

PraosCrypto c ⇒ Show (PraosChainDepState c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

PraosCrypto c ⇒ NoThunks (PraosChainDepState c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

ChainDepStateSupportsPeras (PraosChainDepState c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

PraosCrypto c ⇒ Serialise (PraosChainDepState c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

ChainDepStateSupportsPeras (Ticked (PraosChainDepState c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

PraosCrypto c' ⇒ DecodeDisk (SimplePraosBlock c c') (PraosChainDepState c') Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block.Praos

PraosCrypto c' ⇒ EncodeDisk (SimplePraosBlock c c') (PraosChainDepState c') Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block.Praos

data Ticked (PraosChainDepState c ∷ Type) Source #

Ticking the Praos chain dep state has no effect

For the real Praos implementation, ticking is crucial, as it determines the point where the "nonce under construction" is swapped out for the "active" nonce. However, for the mock implementation, we keep the full history, and choose the right nonce from that; this means that ticking has no effect.

We do however need access to the ticked stake distribution.

Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

newtype PraosEvolvingStake Source #

An association from epoch to stake distributions.

Should be used when checking if someone is the leader of a particular slot. This is sufficiently good for a mock protocol as far as consensus is concerned. It is not strictly necessary that the stake distribution is computed from previous epochs, as we just need to consider that:

1) an attacker cannot influence it. 2) all the nodes agree on the same value for each Slot.

Each pair stores the stake distribution established by the end of the epoch in the first item of the pair. See latestEvolvedStakeDistAsOfEpoch for the intended interface.

If no value is returned, that means we are checking the stake before any changes have happened so we should consult instead the praosInitialStake.

data PraosExtraFields c Source #

Fields that should be included in the signature

Constructors

PraosExtraFields 

data PraosFields crypto typeBeingSigned Source #

The fields that Praos required in the header

Constructors

PraosFields 

Fields

Instances

Instances details
PraosCrypto c ⇒ Eq (PraosFields c toSign) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Methods

(==) ∷ PraosFields c toSign → PraosFields c toSign → Bool #

(/=) ∷ PraosFields c toSign → PraosFields c toSign → Bool #

Generic (PraosFields crypto typeBeingSigned) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Associated Types

type Rep (PraosFields crypto typeBeingSigned) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (PraosFields crypto typeBeingSigned) = D1 ('MetaData "PraosFields" "Ouroboros.Consensus.Mock.Protocol.Praos" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'False) (C1 ('MetaCons "PraosFields" 'PrefixI 'True) (S1 ('MetaSel ('Just "praosSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SignedKES (PraosKES crypto) typeBeingSigned)) :*: S1 ('MetaSel ('Just "praosExtraFields") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PraosExtraFields crypto))))

Methods

from ∷ PraosFields crypto typeBeingSigned → Rep (PraosFields crypto typeBeingSigned) x #

to ∷ Rep (PraosFields crypto typeBeingSigned) x → PraosFields crypto typeBeingSigned #

PraosCrypto c ⇒ Show (PraosFields c toSign) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Methods

showsPrec ∷ Int → PraosFields c toSign → ShowS #

show ∷ PraosFields c toSign → String #

showList ∷ [PraosFields c toSign] → ShowS #

(PraosCrypto c, Typeable toSign) ⇒ NoThunks (PraosFields c toSign) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

PraosCrypto c ⇒ Condense (PraosFields c toSign) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Methods

condense ∷ PraosFields c toSign → String Source #

type Rep (PraosFields crypto typeBeingSigned) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (PraosFields crypto typeBeingSigned) = D1 ('MetaData "PraosFields" "Ouroboros.Consensus.Mock.Protocol.Praos" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'False) (C1 ('MetaCons "PraosFields" 'PrefixI 'True) (S1 ('MetaSel ('Just "praosSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SignedKES (PraosKES crypto) typeBeingSigned)) :*: S1 ('MetaSel ('Just "praosExtraFields") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PraosExtraFields crypto))))

data PraosParams Source #

Praos parameters that are node independent

Constructors

PraosParams 

Fields

Instances

Instances details
Generic PraosParams Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Associated Types

type Rep PraosParams 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep PraosParams = D1 ('MetaData "PraosParams" "Ouroboros.Consensus.Mock.Protocol.Praos" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'False) (C1 ('MetaCons "PraosParams" 'PrefixI 'True) (S1 ('MetaSel ('Just "praosLeaderF") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Double) :*: (S1 ('MetaSel ('Just "praosSecurityParam") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SecurityParam) :*: S1 ('MetaSel ('Just "praosSlotsPerEpoch") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word64))))
NoThunks PraosParams Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep PraosParams Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep PraosParams = D1 ('MetaData "PraosParams" "Ouroboros.Consensus.Mock.Protocol.Praos" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'False) (C1 ('MetaCons "PraosParams" 'PrefixI 'True) (S1 ('MetaSel ('Just "praosLeaderF") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Double) :*: (S1 ('MetaSel ('Just "praosSecurityParam") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SecurityParam) :*: S1 ('MetaSel ('Just "praosSlotsPerEpoch") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word64))))

evolveKey ∷ PraosCrypto c ⇒ SlotNo → HotKey c → (HotKey c, UpdateInfo (HotKey c) HotKeyEvolutionError) Source #

To be used in conjunction with, e.g., modifyMVar.

NOTE: when the key's period is after the target period, we shouldn't use it, but we currently do. In real TPraos we check this in tpraosCheckCanForge.

forgePraosFields ∷ (PraosCrypto c, Signable (PraosKES c) toSign, HasCallStack) ⇒ PraosProof c → HotKey c → (PraosExtraFields c → toSign) → PraosFields c toSign Source #

Create a PraosFields using a proof, a key and the data to be signed.

It is done by signing whatever is extracted from the extra fields by mkToSign and storing the signature and the extra fields on a PraosFields.

Tags

class (UnsoundPureKESAlgorithm (PraosKES c), VRFAlgorithm (PraosVRF c), HashAlgorithm (PraosHash c), Typeable c, Typeable (PraosVRF c), Condense (SigKES (PraosKES c)), Signable (PraosVRF c) (Natural, SlotNo, VRFType), ContextKES (PraosKES c) ~ (), ContextVRF (PraosVRF c) ~ ()) ⇒ PraosCrypto c Source #

Associated Types

type PraosKES c Source #

type PraosVRF c Source #

type PraosHash c Source #

Instances

Instances details
PraosCrypto PraosCryptoUnused Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block.PraosRule

PraosCrypto PraosMockCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

PraosCrypto PraosStandardCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

data PraosValidateView c Source #

A validate view is an association from the (signed) value to the PraosFields that contains the signature that sign it.

In this mock implementation, this could have been simplified to use SignedSimplePraos but from the consensus point of view, it is not relevant which actual value is being signed, that's why we use the existential.

Constructors

Signable (PraosKES c) signed ⇒ PraosValidateView (PraosFields c signed) signed 

data PraosValidationError c Source #

An error that can arise during validation

praosValidateView ∷ (SignedHeader hdr, Signable (PraosKES c) (Signed hdr)) ⇒ (hdr → PraosFields c (Signed hdr)) → hdr → PraosValidateView c Source #

Convenience constructor for PraosValidateView

Type instances

data BlockInfo c Source #

Constructors

BlockInfo 

Fields

Instances

Instances details
PraosCrypto c ⇒ Eq (BlockInfo c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Methods

(==) ∷ BlockInfo c → BlockInfo c → Bool #

(/=) ∷ BlockInfo c → BlockInfo c → Bool #

Generic (BlockInfo c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Associated Types

type Rep (BlockInfo c) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (BlockInfo c)

Methods

from ∷ BlockInfo c → Rep (BlockInfo c) x #

to ∷ Rep (BlockInfo c) x → BlockInfo c #

PraosCrypto c ⇒ Show (BlockInfo c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Methods

showsPrec ∷ Int → BlockInfo c → ShowS #

show ∷ BlockInfo c → String #

showList ∷ [BlockInfo c] → ShowS #

PraosCrypto c ⇒ NoThunks (BlockInfo c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

PraosCrypto c ⇒ Serialise (BlockInfo c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (BlockInfo c) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (BlockInfo c)

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

Instances details
Generic (ConsensusConfig (HardForkProtocol xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

Associated Types

type Rep (ConsensusConfig (HardForkProtocol xs)) 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

type Rep (ConsensusConfig (HardForkProtocol xs)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.HardFork.Combinator.Basics" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "HardForkConsensusConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "hardForkConsensusConfigK") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SecurityParam) :*: (S1 ('MetaSel ('Just "hardForkConsensusConfigShape") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Shape xs)) :*: S1 ('MetaSel ('Just "hardForkConsensusConfigPerEra") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerEraConsensusConfig xs)))))
Generic (ConsensusConfig (Bft c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

Associated Types

type Rep (ConsensusConfig (Bft c)) 
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type Rep (ConsensusConfig (Bft c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.BFT" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "BftConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "bftParams") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BftParams) :*: (S1 ('MetaSel ('Just "bftSignKey") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SignKeyDSIGN (BftDSIGN c))) :*: S1 ('MetaSel ('Just "bftVerKeys") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map NodeId (VerKeyDSIGN (BftDSIGN c)))))))

Methods

from ∷ ConsensusConfig (Bft c) → Rep (ConsensusConfig (Bft c)) x #

to ∷ Rep (ConsensusConfig (Bft c)) x → ConsensusConfig (Bft c) #

Generic (ConsensusConfig (ModChainSel p t)) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

Associated Types

type Rep (ConsensusConfig (ModChainSel p t)) 
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

type Rep (ConsensusConfig (ModChainSel p t)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.ModChainSel" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "McsConsensusConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "mcsConfigP") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ConsensusConfig p))))
Generic (ConsensusConfig (PBft c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

Associated Types

type Rep (ConsensusConfig (PBft c)) 
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

type Rep (ConsensusConfig (PBft c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.PBFT" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PBftConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "pbftParams") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PBftParams)))
Generic (ConsensusConfig (WithLeaderSchedule p)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.LeaderSchedule

Associated Types

type Rep (ConsensusConfig (WithLeaderSchedule p)) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.LeaderSchedule

type Rep (ConsensusConfig (WithLeaderSchedule p)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Mock.Protocol.LeaderSchedule" "ouroboros-consensus-4.0.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))))
Generic (ConsensusConfig (Praos c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

Associated Types

type Rep (ConsensusConfig (Praos c)) 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (ConsensusConfig (Praos c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Mock.Protocol.Praos" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'False) (C1 ('MetaCons "PraosConfig" 'PrefixI 'True) ((S1 ('MetaSel ('Just "praosParams") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PraosParams) :*: (S1 ('MetaSel ('Just "praosInitialEta") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Natural) :*: S1 ('MetaSel ('Just "praosInitialStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StakeDist))) :*: (S1 ('MetaSel ('Just "praosEvolvingStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PraosEvolvingStake) :*: (S1 ('MetaSel ('Just "praosSignKeyVRF") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SignKeyVRF (PraosVRF c))) :*: S1 ('MetaSel ('Just "praosVerKeys") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map CoreNodeId (VerKeyKES (PraosKES c), VerKeyVRF (PraosVRF c))))))))
CanHardFork xs ⇒ NoThunks (ConsensusConfig (HardForkProtocol xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

BftCrypto c ⇒ NoThunks (ConsensusConfig (Bft c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

ConsensusProtocol p ⇒ NoThunks (ConsensusConfig (ModChainSel p t)) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

NoThunks (ConsensusConfig (PBft c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

ConsensusProtocol p ⇒ NoThunks (ConsensusConfig (WithLeaderSchedule p)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.LeaderSchedule

PraosCrypto c ⇒ NoThunks (ConsensusConfig (Praos c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (ConsensusConfig (HardForkProtocol xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

type Rep (ConsensusConfig (HardForkProtocol xs)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.HardFork.Combinator.Basics" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "HardForkConsensusConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "hardForkConsensusConfigK") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SecurityParam) :*: (S1 ('MetaSel ('Just "hardForkConsensusConfigShape") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Shape xs)) :*: S1 ('MetaSel ('Just "hardForkConsensusConfigPerEra") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerEraConsensusConfig xs)))))
type Rep (ConsensusConfig (Bft c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type Rep (ConsensusConfig (Bft c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.BFT" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "BftConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "bftParams") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BftParams) :*: (S1 ('MetaSel ('Just "bftSignKey") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SignKeyDSIGN (BftDSIGN c))) :*: S1 ('MetaSel ('Just "bftVerKeys") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map NodeId (VerKeyDSIGN (BftDSIGN c)))))))
type Rep (ConsensusConfig (ModChainSel p t)) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

type Rep (ConsensusConfig (ModChainSel p t)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.ModChainSel" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "McsConsensusConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "mcsConfigP") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ConsensusConfig p))))
type Rep (ConsensusConfig (PBft c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

type Rep (ConsensusConfig (PBft c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.PBFT" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PBftConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "pbftParams") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PBftParams)))
type Rep (ConsensusConfig (WithLeaderSchedule p)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.LeaderSchedule

type Rep (ConsensusConfig (WithLeaderSchedule p)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Mock.Protocol.LeaderSchedule" "ouroboros-consensus-4.0.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 Rep (ConsensusConfig (Praos c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type Rep (ConsensusConfig (Praos c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Mock.Protocol.Praos" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'False) (C1 ('MetaCons "PraosConfig" 'PrefixI 'True) ((S1 ('MetaSel ('Just "praosParams") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PraosParams) :*: (S1 ('MetaSel ('Just "praosInitialEta") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Natural) :*: S1 ('MetaSel ('Just "praosInitialStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StakeDist))) :*: (S1 ('MetaSel ('Just "praosEvolvingStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PraosEvolvingStake) :*: (S1 ('MetaSel ('Just "praosSignKeyVRF") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SignKeyVRF (PraosVRF c))) :*: S1 ('MetaSel ('Just "praosVerKeys") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map CoreNodeId (VerKeyKES (PraosKES c), VerKeyVRF (PraosVRF c))))))))
data ConsensusConfig (HardForkProtocol xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

data ConsensusConfig (Bft c) Source #

(Static) node configuration

Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

newtype ConsensusConfig (PBft c) Source #

(Static) node configuration

Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

data ConsensusConfig (WithLeaderSchedule p) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.LeaderSchedule

data ConsensusConfig (Praos c) Source #

The configuration that will be provided to every node when running the MockPraos protocol.

Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

newtype ConsensusConfig (ModChainSel p t) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

data family Ticked (st ∷ k) ∷ k Source #

" Ticked " piece of state, either LedgerState or ChainDepState

Ticking refers to the passage of time (the ticking of the clock). When a piece of state is marked as ticked, it means that time-related changes have been applied to the state. There are exactly two methods in the interface that do that: tickChainDepState and applyChainTickLedgerResult.

Also note that a successful forecast forecastFor (ledgerViewForecastAt cfg st) slot must equal protocolLedgerView cfg (applyChainTick cfg slot st). Thus a LedgerView can only be projected from a Ticked state, but cannot itself be ticked.

Some examples of time related changes:

  • Scheduled delegations might have been applied in Byron
  • New leader schedule computed for Shelley
  • Transition from Byron to Shelley activated in the hard fork combinator.
  • Nonces switched out at the start of a new epoch.

Ticked is used mainly in two ways:

  • Ticked (Ext)LedgerState where its kind gets concretized to StateKind -> StateKind
  • Ticked (HeaderState blk) where its kind gets concretized to Type -> Type

Instances

Instances details
Show (Ticked ()) Source # 
Instance details

Defined in Ouroboros.Consensus.Ticked

Methods

showsPrec ∷ Int → Ticked () → ShowS #

show ∷ Ticked () → String #

showList ∷ [Ticked ()] → ShowS #

ChainDepStateSupportsPeras (Ticked (ChainDepState (BlockProtocol blk))) ⇒ ChainDepStateSupportsPeras (Ticked (HeaderState blk)) Source # 
Instance details

Defined in Ouroboros.Consensus.HeaderValidation

ChainDepStateSupportsPeras (Ticked (PBftState c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

ChainDepStateSupportsPeras (Ticked (PraosChainDepState c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

ChainDepStateSupportsPeras (Ticked ()) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.Abstract

Methods

getEpochNonce ∷ Ticked () → Nonce Source #

HasLedgerTables (Ticked LedgerState) TestBlock # 
Instance details

Defined in Test.Ouroboros.Storage.TestBlock

Methods

projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState TestBlock mk → LedgerTables TestBlock mk Source #

withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState TestBlock any → LedgerTables TestBlock mk → Ticked LedgerState TestBlock mk Source #

HasLedgerTables (Ticked LedgerState) TestBlock # 
Instance details

Defined in Test.Util.TestBlock

Methods

projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState TestBlock mk → LedgerTables TestBlock mk Source #

withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState TestBlock any → LedgerTables TestBlock mk → Ticked LedgerState TestBlock mk Source #

(NoThunks (TxIn blk), NoThunks (TxOut blk), HasLedgerTables (Ticked LedgerState) blk) ⇒ HasLedgerTables (Ticked ExtLedgerState) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked ExtLedgerState blk mk → LedgerTables blk mk Source #

withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked ExtLedgerState blk any → LedgerTables blk mk → Ticked ExtLedgerState blk mk Source #

LedgerTablesAreTrivial (Ticked LedgerState) TestBlock # 
Instance details

Defined in Test.Ouroboros.Storage.TestBlock

Methods

convertMapKind ∷ ∀ (mk ∷ MapKind) (mk' ∷ MapKind). Ticked LedgerState TestBlock mk → Ticked LedgerState TestBlock mk' Source #

LedgerTablesAreTrivial (Ticked LedgerState) TestBlock # 
Instance details

Defined in Test.Util.TestBlock

Methods

convertMapKind ∷ ∀ (mk ∷ MapKind) (mk' ∷ MapKind). Ticked LedgerState TestBlock mk → Ticked LedgerState TestBlock mk' Source #

(Bridge m a, HasLedgerTables (Ticked LedgerState) m) ⇒ HasLedgerTables (Ticked LedgerState) (DualBlock m a) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Methods

projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState (DualBlock m a) mk → LedgerTables (DualBlock m a) mk Source #

withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState (DualBlock m a) any → LedgerTables (DualBlock m a) mk → Ticked LedgerState (DualBlock m a) mk Source #

HasLedgerTables (Ticked LedgerState) (SimpleBlock c ext) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block

Methods

projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState (SimpleBlock c ext) mk → LedgerTables (SimpleBlock c ext) mk Source #

withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState (SimpleBlock c ext) any → LedgerTables (SimpleBlock c ext) mk → Ticked LedgerState (SimpleBlock c ext) mk Source #

Bridge m a ⇒ GetTip (Ticked LedgerState (DualBlock m a)) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Methods

getTip ∷ ∀ (mk ∷ MapKind). Ticked LedgerState (DualBlock m a) mk → Point (Ticked LedgerState (DualBlock m a)) Source #

GetTip (Ticked LedgerState TestBlock) # 
Instance details

Defined in Test.Ouroboros.Storage.TestBlock

Methods

getTip ∷ ∀ (mk ∷ MapKind). Ticked LedgerState TestBlock mk → Point (Ticked LedgerState TestBlock) Source #

GetTip (Ticked LedgerState (TestBlockWith ptype)) # 
Instance details

Defined in Test.Util.TestBlock

Methods

getTip ∷ ∀ (mk ∷ MapKind). Ticked LedgerState (TestBlockWith ptype) mk → Point (Ticked LedgerState (TestBlockWith ptype)) Source #

GetTip (Ticked LedgerState (SimpleBlock c ext)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block

Methods

getTip ∷ ∀ (mk ∷ MapKind). Ticked LedgerState (SimpleBlock c ext) mk → Point (Ticked LedgerState (SimpleBlock c ext)) Source #

IsLedger LedgerState blk ⇒ GetTip (Ticked ExtLedgerState blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

getTip ∷ ∀ (mk ∷ MapKind). Ticked ExtLedgerState blk mk → Point (Ticked ExtLedgerState blk) Source #

LedgerStateSupportsPeras (Ticked LedgerState (DualBlock m a)) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

LedgerStateSupportsPeras (Ticked LedgerState TestBlock) # 
Instance details

Defined in Test.Ouroboros.Storage.TestBlock

Methods

getPoolDistr ∷ Ticked LedgerState TestBlock EmptyMK → PoolDistr Source #

getPerasParams ∷ proxy blk → Ticked LedgerState TestBlock EmptyMK → PerasParams blk Source #

LedgerStateSupportsPeras (Ticked LedgerState (TestBlockWith ptype)) # 
Instance details

Defined in Test.Util.TestBlock

Methods

getPoolDistr ∷ Ticked LedgerState (TestBlockWith ptype) EmptyMK → PoolDistr Source #

getPerasParams ∷ proxy blk → Ticked LedgerState (TestBlockWith ptype) EmptyMK → PerasParams blk Source #

LedgerStateSupportsPeras (Ticked LedgerState (SimpleBlock c ext)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block

CanStowLedgerTables (Ticked LedgerState (SimpleBlock c ext)) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block

Generic (Ticked LedgerState (TestBlockWith ptype) mk) # 
Instance details

Defined in Test.Util.TestBlock

Associated Types

type Rep (Ticked LedgerState (TestBlockWith ptype) mk) 
Instance details

Defined in Test.Util.TestBlock

type Rep (Ticked LedgerState (TestBlockWith ptype) mk) = D1 ('MetaData "Ticked" "Test.Util.TestBlock" "ouroboros-consensus-4.0.0.0-inplace-unstable-consensus-testlib" 'True) (C1 ('MetaCons "TickedTestLedger" 'PrefixI 'True) (S1 ('MetaSel ('Just "getTickedTestLedger") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LedgerState (TestBlockWith ptype) mk))))

Methods

from ∷ Ticked LedgerState (TestBlockWith ptype) mk → Rep (Ticked LedgerState (TestBlockWith ptype) mk) x #

to ∷ Rep (Ticked LedgerState (TestBlockWith ptype) mk) x → Ticked LedgerState (TestBlockWith ptype) mk #

Generic (Ticked LedgerState (SimpleBlock c ext) mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block

Associated Types

type Rep (Ticked LedgerState (SimpleBlock c ext) mk) 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block

type Rep (Ticked LedgerState (SimpleBlock c ext) mk) = D1 ('MetaData "Ticked" "Ouroboros.Consensus.Mock.Ledger.Block" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'True) (C1 ('MetaCons "TickedSimpleLedgerState" 'PrefixI 'True) (S1 ('MetaSel ('Just "getTickedSimpleLedgerState") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LedgerState (SimpleBlock c ext) mk))))

Methods

from ∷ Ticked LedgerState (SimpleBlock c ext) mk → Rep (Ticked LedgerState (SimpleBlock c ext) mk) x #

to ∷ Rep (Ticked LedgerState (SimpleBlock c ext) mk) x → Ticked LedgerState (SimpleBlock c ext) mk #

(SimpleCrypto c, Typeable ext, Show (LedgerState (SimpleBlock c ext) mk)) ⇒ Show (Ticked LedgerState (SimpleBlock c ext) mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block

Methods

showsPrec ∷ Int → Ticked LedgerState (SimpleBlock c ext) mk → ShowS #

show ∷ Ticked LedgerState (SimpleBlock c ext) mk → String #

showList ∷ [Ticked LedgerState (SimpleBlock c ext) mk] → ShowS #

NoThunks (Ticked LedgerState (DualBlock m a) mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

(NoThunksMK mk, NoThunks (PayloadDependentState ptype mk)) ⇒ NoThunks (Ticked LedgerState (TestBlockWith ptype) mk) # 
Instance details

Defined in Test.Util.TestBlock

Methods

noThunks ∷ Context → Ticked LedgerState (TestBlockWith ptype) mk → IO (Maybe ThunkInfo) Source #

wNoThunks ∷ Context → Ticked LedgerState (TestBlockWith ptype) mk → IO (Maybe ThunkInfo) Source #

showTypeOf ∷ Proxy (Ticked LedgerState (TestBlockWith ptype) mk) → String Source #

(SimpleCrypto c, Typeable ext) ⇒ NoThunks (Ticked LedgerState (SimpleBlock c ext) TrackingMK) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block

Show (Ticked (f a)) ⇒ Show (((Ticked ∷ Type → Type) :.: f) a) Source # 
Instance details

Defined in Ouroboros.Consensus.Ticked

Methods

showsPrec ∷ Int → ((Ticked ∷ Type → Type) :.: f) a → ShowS #

show ∷ ((Ticked ∷ Type → Type) :.: f) a → String #

showList ∷ [((Ticked ∷ Type → Type) :.: f) a] → ShowS #

NoThunks (Ticked (f a)) ⇒ NoThunks (((Ticked ∷ Type → Type) :.: f) a) Source # 
Instance details

Defined in Ouroboros.Consensus.Ticked

Methods

noThunks ∷ Context → ((Ticked ∷ Type → Type) :.: f) a → IO (Maybe ThunkInfo) Source #

wNoThunks ∷ Context → ((Ticked ∷ Type → Type) :.: f) a → IO (Maybe ThunkInfo) Source #

showTypeOf ∷ Proxy (((Ticked ∷ Type → Type) :.: f) a) → String Source #

data Ticked () Source # 
Instance details

Defined in Ouroboros.Consensus.Ticked

data Ticked (HardForkChainDepState xs ∷ Type) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

data Ticked (HeaderState blk ∷ Type) Source # 
Instance details

Defined in Ouroboros.Consensus.HeaderValidation

data Ticked (PBftState c ∷ Type) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

newtype Ticked (WrapChainDepState blk ∷ Type) Source # 
Instance details

Defined in Ouroboros.Consensus.TypeFamilyWrappers

data Ticked (PraosChainDepState c ∷ Type) Source #

Ticking the Praos chain dep state has no effect

For the real Praos implementation, ticking is crucial, as it determines the point where the "nonce under construction" is swapped out for the "active" nonce. However, for the mock implementation, we keep the full history, and choose the right nonce from that; this means that ticking has no effect.

We do however need access to the ticked stake distribution.

Instance details

Defined in Ouroboros.Consensus.Mock.Protocol.Praos

type HeaderHash (Ticked l blk ∷ k2) Source # 
Instance details

Defined in Ouroboros.Consensus.Ticked

type HeaderHash (Ticked l blk ∷ k2) = HeaderHash (l blk)
data Ticked ExtLedgerState (blk ∷ Type) (mk ∷ MapKind) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

newtype Ticked LedgerState TestBlock (mk ∷ MapKind) # 
Instance details

Defined in Test.Ouroboros.Storage.TestBlock

newtype Ticked LedgerState TestBlock (mk ∷ MapKind) = TickedTestLedger {}
data Ticked LedgerState (HardForkBlock xs ∷ Type) (mk ∷ MapKind) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

newtype Ticked LedgerState (TestBlockWith ptype ∷ Type) (mk ∷ MapKind) # 
Instance details

Defined in Test.Util.TestBlock

newtype Ticked LedgerState (TestBlockWith ptype ∷ Type) (mk ∷ MapKind) = TickedTestLedger {}
data Ticked LedgerState (DualBlock m a ∷ Type) (mk ∷ MapKind) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

newtype Ticked LedgerState (SimpleBlock c ext ∷ Type) (mk ∷ MapKind) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block

type Rep (Ticked LedgerState (TestBlockWith ptype) mk) # 
Instance details

Defined in Test.Util.TestBlock

type Rep (Ticked LedgerState (TestBlockWith ptype) mk) = D1 ('MetaData "Ticked" "Test.Util.TestBlock" "ouroboros-consensus-4.0.0.0-inplace-unstable-consensus-testlib" 'True) (C1 ('MetaCons "TickedTestLedger" 'PrefixI 'True) (S1 ('MetaSel ('Just "getTickedTestLedger") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LedgerState (TestBlockWith ptype) mk))))
type Rep (Ticked LedgerState (SimpleBlock c ext) mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Mock.Ledger.Block

type Rep (Ticked LedgerState (SimpleBlock c ext) mk) = D1 ('MetaData "Ticked" "Ouroboros.Consensus.Mock.Ledger.Block" "ouroboros-consensus-4.0.0.0-inplace-unstable-mock-block" 'True) (C1 ('MetaCons "TickedSimpleLedgerState" 'PrefixI 'True) (S1 ('MetaSel ('Just "getTickedSimpleLedgerState") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LedgerState (SimpleBlock c ext) mk))))