cardano-protocol-tpraos-0.1.0.0
Safe Haskell None
Language Haskell2010

Cardano.Protocol.TPraos.Rules.Overlay

Synopsis

Documentation

data OVERLAY crypto Source #

Instances

Instances details
( Crypto crypto, DSignable crypto ( OCertSignable crypto), KESignable crypto ( BHBody crypto), Signable ( VRF crypto) Seed ) => STS ( OVERLAY crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

( Crypto crypto, DSignable crypto ( OCertSignable crypto), KESignable crypto ( BHBody crypto), Signable ( VRF crypto) Seed ) => Embed ( OCERT crypto) ( OVERLAY crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

( Crypto crypto, DSignable crypto ( OCertSignable crypto), KESignable crypto ( BHBody crypto), VRFSignable crypto Seed ) => Embed ( OVERLAY crypto) ( PRTCL crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Prtcl

type State ( OVERLAY crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Event ( OVERLAY crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Event ( OVERLAY crypto) = Void
type PredicateFailure ( OVERLAY crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type BaseM ( OVERLAY crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Environment ( OVERLAY crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Signal ( OVERLAY crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Signal ( OVERLAY crypto) = BHeader crypto

type family PredicateFailure a Source #

Descriptive type for the possible failures which might cause a transition to fail.

As a convention, PredicateFailure s which are "structural" (meaning that they are not "throwable" in practice, and are used to pass control from one transition rule to another) are prefixed with S_ .

Structural PredicateFailure s represent conditions between rules where the disjunction of all rules' preconditions is equal to True . That is, either one rule will throw a structural PredicateFailure and the other will succeed, or vice-versa.

Instances

Instances details
type PredicateFailure TICKN Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Tickn

type PredicateFailure ( AlonzoLEDGER era)
Instance details

Defined in Cardano.Ledger.Alonzo.Rules.Ledger

type PredicateFailure ( AlonzoUTXOW era)
Instance details

Defined in Cardano.Ledger.Alonzo.Rules.Utxow

type PredicateFailure ( AlonzoUTXO era)
Instance details

Defined in Cardano.Ledger.Alonzo.Rules.Utxo

type PredicateFailure ( UTXOS era)
Instance details

Defined in Cardano.Ledger.Alonzo.Rules.Utxos

type PredicateFailure ( AlonzoBBODY era)
Instance details

Defined in Cardano.Ledger.Alonzo.Rules.Bbody

type PredicateFailure ( BabbageLEDGER era)
Instance details

Defined in Cardano.Ledger.Babbage.Rules.Ledger

type PredicateFailure ( BabbageUTXOW era)
Instance details

Defined in Cardano.Ledger.Babbage.Rules.Utxow

type PredicateFailure ( BabbageUTXO era)
Instance details

Defined in Cardano.Ledger.Babbage.Rules.Utxo

type PredicateFailure ( BabbageUTXOS era)
Instance details

Defined in Cardano.Ledger.Babbage.Rules.Utxos

type PredicateFailure ( TICK era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Tick

type PredicateFailure ( TICKF era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Tick

type PredicateFailure ( NEWEPOCH era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.NewEpoch

type PredicateFailure ( BBODY era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Bbody

type PredicateFailure ( LEDGERS era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Ledgers

type PredicateFailure ( LEDGER era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Ledger

type PredicateFailure ( DELEGS era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Delegs

type PredicateFailure ( DELPL era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Delpl

type PredicateFailure ( DELEG era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Deleg

type PredicateFailure ( EPOCH era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Epoch

type PredicateFailure ( MIR era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Mir

type PredicateFailure ( UPEC era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Upec

type PredicateFailure ( NEWPP era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Newpp

type PredicateFailure ( POOL era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Pool

type PredicateFailure ( POOLREAP era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.PoolReap

type PredicateFailure ( UTXOW era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Utxow

type PredicateFailure ( UTXO era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Utxo

type PredicateFailure ( PPUP era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Ppup

type PredicateFailure ( RUPD era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Rupd

type PredicateFailure ( SNAP era)
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Snap

type PredicateFailure ( UTXOW era)
Instance details

Defined in Cardano.Ledger.ShelleyMA.Rules.Utxow

type PredicateFailure ( UTXO era)
Instance details

Defined in Cardano.Ledger.ShelleyMA.Rules.Utxo

type PredicateFailure ( OCERT crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.OCert

type PredicateFailure ( OVERLAY crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type PredicateFailure ( UPDN crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Updn

type PredicateFailure ( PRTCL crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Prtcl

type PredicateFailure ( STUB e st si f m)
Instance details

Defined in Control.State.Transition.Extended

type PredicateFailure ( STUB e st si f m) = f

data OverlayEnv crypto Source #

Instances

Instances details
Generic ( OverlayEnv crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Associated Types

type Rep ( OverlayEnv crypto) :: Type -> Type Source #

NoThunks ( OverlayEnv crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Rep ( OverlayEnv crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

data OverlayPredicateFailure crypto Source #

Instances

Instances details
VRFAlgorithm ( VRF crypto) => Eq ( OverlayPredicateFailure crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

VRFAlgorithm ( VRF crypto) => Show ( OverlayPredicateFailure crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Generic ( OverlayPredicateFailure crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

VRFAlgorithm ( VRF crypto) => NoThunks ( OverlayPredicateFailure crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Rep ( OverlayPredicateFailure crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Rep ( OverlayPredicateFailure crypto) = D1 (' MetaData "OverlayPredicateFailure" "Cardano.Protocol.TPraos.Rules.Overlay" "cardano-protocol-tpraos-0.1.0.0-La5Cvz4HrqgBuFHns9l3Vn" ' False ) ((( C1 (' MetaCons "VRFKeyUnknown" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( KeyHash ' StakePool crypto))) :+: C1 (' MetaCons "VRFKeyWrongVRFKey" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( KeyHash ' StakePool crypto)) :*: ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( Hash crypto ( VerKeyVRF crypto))) :*: S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( Hash crypto ( VerKeyVRF crypto)))))) :+: ( C1 (' MetaCons "VRFKeyBadNonce" ' PrefixI ' False ) (( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 Nonce ) :*: S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 SlotNo )) :*: ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 Nonce ) :*: S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( CertifiedVRF ( VRF crypto) Nonce )))) :+: ( C1 (' MetaCons "VRFKeyBadLeaderValue" ' PrefixI ' False ) (( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 Nonce ) :*: S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 SlotNo )) :*: ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 Nonce ) :*: S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( CertifiedVRF ( VRF crypto) Nonce )))) :+: C1 (' MetaCons "VRFLeaderValueTooBig" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( OutputVRF ( VRF crypto))) :*: ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 Rational ) :*: S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ActiveSlotCoeff )))))) :+: (( C1 (' MetaCons "NotActiveSlotOVERLAY" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 SlotNo )) :+: C1 (' MetaCons "WrongGenesisColdKeyOVERLAY" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( KeyHash ' BlockIssuer crypto)) :*: S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( KeyHash ' GenesisDelegate crypto)))) :+: ( C1 (' MetaCons "WrongGenesisVRFKeyOVERLAY" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( KeyHash ' BlockIssuer crypto)) :*: ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( Hash crypto ( VerKeyVRF crypto))) :*: S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( Hash crypto ( VerKeyVRF crypto))))) :+: ( C1 (' MetaCons "UnknownGenesisKeyOVERLAY" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( KeyHash ' Genesis crypto))) :+: C1 (' MetaCons "OcertFailure" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( PredicateFailure ( OCERT crypto))))))))

data OBftSlot crypto Source #

Instances

Instances details
Eq ( OBftSlot crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Ord ( OBftSlot crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Show ( OBftSlot crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Generic ( OBftSlot crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Associated Types

type Rep ( OBftSlot crypto) :: Type -> Type Source #

NFData ( OBftSlot crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Methods

rnf :: OBftSlot crypto -> () Source #

Crypto crypto => ToCBOR ( OBftSlot crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Crypto crypto => FromCBOR ( OBftSlot crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

NoThunks ( OBftSlot crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Rep ( OBftSlot crypto) Source #
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Rep ( OBftSlot crypto) = D1 (' MetaData "OBftSlot" "Cardano.Protocol.TPraos.Rules.Overlay" "cardano-protocol-tpraos-0.1.0.0-La5Cvz4HrqgBuFHns9l3Vn" ' False ) ( C1 (' MetaCons "NonActiveSlot" ' PrefixI ' False ) ( U1 :: Type -> Type ) :+: C1 (' MetaCons "ActiveSlot" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( KeyHash ' Genesis crypto))))

overlaySlots :: SlotNo -> UnitInterval -> EpochSize -> [ SlotNo ] Source #

Return the list of overlaySlots for a given epoch. Note that this linear in the size of the epoch, and should probably only be used for testing. If something more performant is needed, we could probably use [start + floor(x d) | x <- [0 .. (spe -1)], floor(x d) < spe] but we would need to make sure that this is equivalent.