ouroboros-consensus-shelley-0.1.0.0: Shelley ledger integration in the Ouroboros consensus layer
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Shelley.Protocol

Description

Transitional Praos.

Transitional praos allows for the overlaying of Praos with an overlay schedule determining slots to be produced by BFT

Synopsis

Documentation

data TPraos c Source #

Instances

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

Defined in Ouroboros.Consensus.Shelley.Protocol

Associated Types

type Rep (ConsensusConfig (TPraos c)) :: Type -> Type #

PraosCrypto c => NoThunks (ConsensusConfig (TPraos c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

PraosCrypto c => ChainSelection (TPraos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Associated Types

type ChainSelConfig (TPraos c) Source #

type SelectView (TPraos c) Source #

PraosCrypto c => ConsensusProtocol (TPraos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

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

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep (ConsensusConfig (TPraos c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Shelley.Protocol" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'False) (C1 ('MetaCons "TPraosConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "tpraosParams") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TPraosParams) :*: S1 ('MetaSel ('Just "tpraosEpochInfo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (EpochInfo Identity))))
data ConsensusConfig (TPraos c) Source #

Static configuration

Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type SelectView (TPraos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type ChainSelConfig (TPraos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type ChainSelConfig (TPraos c) = ()
type ValidateView (TPraos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type ValidationErr (TPraos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type LedgerView (TPraos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type CanBeLeader (TPraos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type IsLeader (TPraos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type ChainDepState (TPraos c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

data TPraosState c Source #

Transitional Praos consensus state.

In addition to the ChainDepState provided by the ledger, we track the slot number of the last applied header.

Instances

Instances details
Eq (TPraosState c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Show (TPraosState c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Generic (TPraosState c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Associated Types

type Rep (TPraosState c) :: Type -> Type #

Methods

from :: TPraosState c -> Rep (TPraosState c) x #

to :: Rep (TPraosState c) x -> TPraosState c #

PraosCrypto c => NoThunks (TPraosState c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

PraosCrypto c => Serialise (TPraosState c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

(ShelleyBasedEra era, EraCrypto era ~ c) => EncodeDisk (ShelleyBlock era) (TPraosState c) Source #
ChainDepState (BlockProtocol (ShelleyBlock era))
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

(ShelleyBasedEra era, EraCrypto era ~ c) => DecodeDisk (ShelleyBlock era) (TPraosState c) Source #
ChainDepState (BlockProtocol (ShelleyBlock era))
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

Methods

decodeDisk :: CodecConfig (ShelleyBlock era) -> forall s. Decoder s (TPraosState c) Source #

type Rep (TPraosState c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep (TPraosState c) = D1 ('MetaData "TPraosState" "Ouroboros.Consensus.Shelley.Protocol" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'False) (C1 ('MetaCons "TPraosState" 'PrefixI 'True) (S1 ('MetaSel ('Just "tpraosStateLastSlot") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (WithOrigin SlotNo)) :*: S1 ('MetaSel ('Just "tpraosStateChainDepState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ChainDepState c))))
data Ticked (TPraosState c) Source #

Ticked TPraosState

Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

data TPraosChainSelectView c Source #

View of the ledger tip for chain selection.

We order between chains as follows:

  1. By chain length, with longer chains always preferred.
  2. If the tip of each chain has the same slot number, we prefer the one tip that we produced ourselves.
  3. If the tip of each chain was issued by the same agent, then we prefer the chain whose tip has the highest ocert issue number.
  4. By the leader value of the chain tip, with lower values preferred.

data SelfIssued Source #

Separate type instead of Bool for the custom Ord instance + documentation.

Constructors

SelfIssued

A block we produced ourself

NotSelfIssued

A block produced by another node

data TPraosFields c toSign Source #

Constructors

TPraosFields 

Fields

Instances

Instances details
(Show toSign, PraosCrypto c) => Show (TPraosFields c toSign) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Methods

showsPrec :: Int -> TPraosFields c toSign -> ShowS #

show :: TPraosFields c toSign -> String #

showList :: [TPraosFields c toSign] -> ShowS #

Generic (TPraosFields c toSign) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Associated Types

type Rep (TPraosFields c toSign) :: Type -> Type #

Methods

from :: TPraosFields c toSign -> Rep (TPraosFields c toSign) x #

to :: Rep (TPraosFields c toSign) x -> TPraosFields c toSign #

(NoThunks toSign, PraosCrypto c) => NoThunks (TPraosFields c toSign) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

(Condense toSign, PraosCrypto c) => Condense (TPraosFields c toSign) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Methods

condense :: TPraosFields c toSign -> String Source #

type Rep (TPraosFields c toSign) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep (TPraosFields c toSign) = D1 ('MetaData "TPraosFields" "Ouroboros.Consensus.Shelley.Protocol" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'False) (C1 ('MetaCons "TPraosFields" 'PrefixI 'True) (S1 ('MetaSel ('Just "tpraosSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SignedKES c toSign)) :*: S1 ('MetaSel ('Just "tpraosToSign") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 toSign)))

forgeTPraosFields :: (PraosCrypto c, KESignable c toSign, Monad m) => HotKey c m -> CanBeLeader (TPraos c) -> IsLeader (TPraos c) -> (TPraosToSign c -> toSign) -> m (TPraosFields c toSign) Source #

data TPraosToSign c Source #

Fields arising from transitional praos execution which must be included in the block signature.

Constructors

TPraosToSign 

Fields

  • tpraosToSignIssuerVK :: VKey 'BlockIssuer c

    Verification key for the issuer of this block.

    Note that unlike in Classic/BFT where we have a key for the genesis delegate on whose behalf we are issuing this block, this key corresponds to the stake pool/core node actually forging the block.

  • tpraosToSignVrfVK :: VerKeyVRF c
     
  • tpraosToSignEta :: CertifiedVRF c Nonce

    Verifiable result containing the updated nonce value.

  • tpraosToSignLeader :: CertifiedVRF c Natural

    Verifiable proof of the leader value, used to determine whether the node has the right to issue a block in this slot.

    We include a value here even for blocks forged under the BFT schedule. It is not required that such a value be verifiable (though by default it will be verifiably correct, but unused.)

  • tpraosToSignOCert :: OCert c

    Lightweight delegation certificate mapping the cold (DSIGN) key to the online KES key.

Instances

Instances details
PraosCrypto c => Show (TPraosToSign c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Generic (TPraosToSign c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Associated Types

type Rep (TPraosToSign c) :: Type -> Type #

Methods

from :: TPraosToSign c -> Rep (TPraosToSign c) x #

to :: Rep (TPraosToSign c) x -> TPraosToSign c #

PraosCrypto c => NoThunks (TPraosToSign c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep (TPraosToSign c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep (TPraosToSign c) = D1 ('MetaData "TPraosToSign" "Ouroboros.Consensus.Shelley.Protocol" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'False) (C1 ('MetaCons "TPraosToSign" 'PrefixI 'True) ((S1 ('MetaSel ('Just "tpraosToSignIssuerVK") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (VKey 'BlockIssuer c)) :*: S1 ('MetaSel ('Just "tpraosToSignVrfVK") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (VerKeyVRF c))) :*: (S1 ('MetaSel ('Just "tpraosToSignEta") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CertifiedVRF c Nonce)) :*: (S1 ('MetaSel ('Just "tpraosToSignLeader") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CertifiedVRF c Natural)) :*: S1 ('MetaSel ('Just "tpraosToSignOCert") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OCert c))))))

type TPraosValidateView c = BHeader c Source #

Because we are using the executable spec, rather than implementing the protocol directly here, we have a fixed header type rather than an abstraction. So our validate view is fixed to this.

data TPraosParams Source #

TPraos parameters that are node independent

Constructors

TPraosParams 

Fields

Instances

Instances details
Generic TPraosParams Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Associated Types

type Rep TPraosParams :: Type -> Type #

NoThunks TPraosParams Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep TPraosParams Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep TPraosParams = D1 ('MetaData "TPraosParams" "Ouroboros.Consensus.Shelley.Protocol" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'False) (C1 ('MetaCons "TPraosParams" 'PrefixI 'True) (((S1 ('MetaSel ('Just "tpraosSlotsPerKESPeriod") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word64) :*: S1 ('MetaSel ('Just "tpraosLeaderF") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ActiveSlotCoeff)) :*: (S1 ('MetaSel ('Just "tpraosSecurityParam") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SecurityParam) :*: S1 ('MetaSel ('Just "tpraosMaxKESEvo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word64))) :*: ((S1 ('MetaSel ('Just "tpraosQuorum") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word64) :*: S1 ('MetaSel ('Just "tpraosMaxMajorPV") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 MaxMajorProtVer)) :*: (S1 ('MetaSel ('Just "tpraosMaxLovelaceSupply") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word64) :*: (S1 ('MetaSel ('Just "tpraosNetworkId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Network) :*: S1 ('MetaSel ('Just "tpraosInitialNonce") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Nonce))))))

mkTPraosParams Source #

Arguments

:: MaxMajorProtVer 
-> Nonce

Initial nonce

-> ShelleyGenesis era 
-> TPraosParams 

data TPraosCanBeLeader c Source #

Constructors

TPraosCanBeLeader 

Fields

Instances

Instances details
Generic (TPraosCanBeLeader c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Associated Types

type Rep (TPraosCanBeLeader c) :: Type -> Type #

PraosCrypto c => NoThunks (TPraosCanBeLeader c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep (TPraosCanBeLeader c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep (TPraosCanBeLeader c) = D1 ('MetaData "TPraosCanBeLeader" "Ouroboros.Consensus.Shelley.Protocol" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'False) (C1 ('MetaCons "TPraosCanBeLeader" 'PrefixI 'True) (S1 ('MetaSel ('Just "tpraosCanBeLeaderOpCert") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (OCert c)) :*: (S1 ('MetaSel ('Just "tpraosCanBeLeaderColdVerKey") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VKey 'BlockIssuer c)) :*: S1 ('MetaSel ('Just "tpraosCanBeLeaderSignKeyVRF") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SignKeyVRF c)))))

data TPraosIsLeader c Source #

Assembled proof that the issuer has the right to issue a block in the selected slot.

Constructors

TPraosIsLeader 

Fields

Instances

Instances details
Generic (TPraosIsLeader c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Associated Types

type Rep (TPraosIsLeader c) :: Type -> Type #

PraosCrypto c => NoThunks (TPraosIsLeader c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep (TPraosIsLeader c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep (TPraosIsLeader c) = D1 ('MetaData "TPraosIsLeader" "Ouroboros.Consensus.Shelley.Protocol" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'False) (C1 ('MetaCons "TPraosIsLeader" 'PrefixI 'True) (S1 ('MetaSel ('Just "tpraosIsLeaderEta") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CertifiedVRF c Nonce)) :*: (S1 ('MetaSel ('Just "tpraosIsLeaderProof") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CertifiedVRF c Natural)) :*: S1 ('MetaSel ('Just "tpraosIsLeaderGenVRFHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (Hash c (VerKeyVRF c)))))))

newtype MaxMajorProtVer Source #

The maximum major protocol version.

Must be at least the current major protocol version. For Cardano mainnet, the Shelley era has major protocol verison 2.

Instances

Instances details
Eq MaxMajorProtVer Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Show MaxMajorProtVer Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Generic MaxMajorProtVer Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Associated Types

type Rep MaxMajorProtVer :: Type -> Type #

NoThunks MaxMajorProtVer Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep MaxMajorProtVer Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep MaxMajorProtVer = D1 ('MetaData "MaxMajorProtVer" "Ouroboros.Consensus.Shelley.Protocol" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'True) (C1 ('MetaCons "MaxMajorProtVer" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMaxMajorProtVer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural)))

Crypto

CannotForge

data TPraosCannotForge c Source #

Expresses that, whilst we believe ourselves to be a leader for this slot, we are nonetheless unable to forge a block.

Constructors

TPraosCannotForgeKeyNotUsableYet

The KES key in our operational certificate can't be used because the current (wall clock) period is before the start period of the key. current KES period.

Note: the opposite case, i.e., the wall clock period being after the end period of the key, is caught when trying to update the key in updateForgeState.

Fields

  • !KESPeriod

    Current KES period according to the wallclock slot, i.e., the KES period in which we want to use the key.

  • !KESPeriod

    Start KES period of the KES key.

TPraosCannotForgeWrongVRF !(Hash c (VerKeyVRF c)) !(Hash c (VerKeyVRF c))

We are a genesis delegate, but our VRF key (second argument) does not match the registered key for that delegate (first argument).

Instances

Instances details
PraosCrypto c => Show (TPraosCannotForge c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Generic (TPraosCannotForge c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Associated Types

type Rep (TPraosCannotForge c) :: Type -> Type #

type Rep (TPraosCannotForge c) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep (TPraosCannotForge c) = D1 ('MetaData "TPraosCannotForge" "Ouroboros.Consensus.Shelley.Protocol" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'False) (C1 ('MetaCons "TPraosCannotForgeKeyNotUsableYet" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 KESPeriod) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 KESPeriod)) :+: C1 ('MetaCons "TPraosCannotForgeWrongVRF" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Hash c (VerKeyVRF c))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Hash c (VerKeyVRF c)))))

tpraosCheckCanForge Source #

Arguments

:: ConsensusConfig (TPraos c) 
-> Hash c (VerKeyVRF c)

Precomputed hash of the VRF verification key

-> SlotNo 
-> IsLeader (TPraos c) 
-> KESInfo 
-> Either (TPraosCannotForge c) () 

Type instances

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 (TPraos c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

Associated Types

type Rep (ConsensusConfig (TPraos c)) :: Type -> Type #

PraosCrypto c => NoThunks (ConsensusConfig (TPraos c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

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

Defined in Ouroboros.Consensus.Shelley.Protocol

type Rep (ConsensusConfig (TPraos c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Shelley.Protocol" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'False) (C1 ('MetaCons "TPraosConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "tpraosParams") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TPraosParams) :*: S1 ('MetaSel ('Just "tpraosEpochInfo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (EpochInfo Identity))))
data ConsensusConfig (TPraos c) Source #

Static configuration

Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

data family Ticked st Source #

" Ticked " piece of state (LedgerState, LedgerView, ChainIndepState)

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 (or forecast).

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.

Instances

Instances details
Show (Ticked ()) 
Instance details

Defined in Ouroboros.Consensus.Ticked

Methods

showsPrec :: Int -> Ticked () -> ShowS #

show :: Ticked () -> String #

showList :: [Ticked ()] -> ShowS #

Show (Ticked a) => Show (Ticked (K a x)) 
Instance details

Defined in Ouroboros.Consensus.Ticked

Methods

showsPrec :: Int -> Ticked (K a x) -> ShowS #

show :: Ticked (K a x) -> String #

showList :: [Ticked (K a x)] -> ShowS #

Generic (Ticked (LedgerState (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Ledger

Associated Types

type Rep (Ticked (LedgerState (ShelleyBlock era))) :: Type -> Type #

NoThunks (Ticked (LedgerState (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Ledger

IsLedger (LedgerState blk) => GetTip (Ticked (ExtLedgerState blk)) 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

IsLedger l => GetTip (Ticked (LedgerDB l r)) 
Instance details

Defined in Ouroboros.Consensus.Storage.LedgerDB.InMemory

Methods

getTip :: Ticked (LedgerDB l r) -> Point (Ticked (LedgerDB l r)) Source #

GetTip (Ticked (LedgerState (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Ledger

Show (Ticked (f a)) => Show ((Ticked :.: f) a) 
Instance details

Defined in Ouroboros.Consensus.Ticked

Methods

showsPrec :: Int -> (Ticked :.: f) a -> ShowS #

show :: (Ticked :.: f) a -> String #

showList :: [(Ticked :.: f) a] -> ShowS #

NoThunks (Ticked (f a)) => NoThunks ((Ticked :.: f) a) 
Instance details

Defined in Ouroboros.Consensus.Ticked

data Ticked () 
Instance details

Defined in Ouroboros.Consensus.Ticked

type Rep (Ticked (LedgerState (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Ledger

type Rep (Ticked (LedgerState (ShelleyBlock era))) = D1 ('MetaData "Ticked" "Ouroboros.Consensus.Shelley.Ledger.Ledger" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'False) (C1 ('MetaCons "TickedShelleyLedgerState" 'PrefixI 'True) (S1 ('MetaSel ('Just "untickedShelleyLedgerTip") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (WithOrigin (ShelleyTip era))) :*: (S1 ('MetaSel ('Just "tickedShelleyLedgerTransition") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ShelleyTransition) :*: S1 ('MetaSel ('Just "tickedShelleyLedgerState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NewEpochState era)))))
newtype Ticked (WrapChainDepState blk) 
Instance details

Defined in Ouroboros.Consensus.TypeFamilyWrappers

newtype Ticked (WrapLedgerView blk) 
Instance details

Defined in Ouroboros.Consensus.TypeFamilyWrappers

data Ticked (ExtLedgerState blk) 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

data Ticked (HeaderState blk) 
Instance details

Defined in Ouroboros.Consensus.HeaderValidation

data Ticked (LedgerState (ShelleyBlock era)) Source #

Ticking only affects the state itself

Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Ledger

newtype Ticked (LedgerView c) Source #

Ledger view at a particular slot

Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

data Ticked (TPraosState c) Source #

Ticked TPraosState

Instance details

Defined in Ouroboros.Consensus.Shelley.Protocol

type HeaderHash (Ticked l) 
Instance details

Defined in Ouroboros.Consensus.Ledger.Basics

data Ticked (LedgerDB l r)

Ticking the ledger DB just ticks the current state

We don't push the new state into the DB until we apply a block.

Instance details

Defined in Ouroboros.Consensus.Storage.LedgerDB.InMemory

newtype Ticked (K a x) 
Instance details

Defined in Ouroboros.Consensus.Ticked

newtype Ticked (K a x) = TickedK {}