ouroboros-consensus-protocol-0.9.0.0: Cardano consensus protocols
Safe HaskellSafe-Inferred
LanguageHaskell2010

Ouroboros.Consensus.Protocol.Ledger.HotKey

Description

Hot key

Intended for qualified import

Synopsis

KES Info

type KESEvolution = Period Source #

We call the relative periods that a KES key is valid its evolution, to avoid confusion with absolute periods.

data KESInfo Source #

Constructors

KESInfo 

Fields

Instances

Instances details
Generic KESInfo Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.Ledger.HotKey

Associated Types

type Rep KESInfoTypeType #

Methods

fromKESInfoRep KESInfo x #

toRep KESInfo x → KESInfo #

Show KESInfo Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.Ledger.HotKey

Methods

showsPrecIntKESInfoShowS #

showKESInfoString #

showList ∷ [KESInfo] → ShowS #

NoThunks KESInfo Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.Ledger.HotKey

type Rep KESInfo Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.Ledger.HotKey

type Rep KESInfo = D1 ('MetaData "KESInfo" "Ouroboros.Consensus.Protocol.Ledger.HotKey" "ouroboros-consensus-protocol-0.9.0.0-inplace" 'False) (C1 ('MetaCons "KESInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "kesStartPeriod") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 KESPeriod) :*: (S1 ('MetaSel ('Just "kesEndPeriod") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 KESPeriod) :*: S1 ('MetaSel ('Just "kesEvolution") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 KESEvolution))))

kesAbsolutePeriodKESInfoKESPeriod Source #

Return the absolute KES period

KES Status

data KESStatus Source #

Constructors

BeforeKESStart

The given period is before the start period of the KES key.

Fields

InKESRange

The given period is in the range of the KES key.

Fields

  • KESEvolution

    Relative period or evolution corresponding to the given absolute period

AfterKESEnd

The given period is after the end period of the KES key.

Fields

kesStatusKESInfoKESPeriodKESStatus Source #

Return the evolution of the given KES period, when it falls within the range of the HotKey ([hkStart, hkEnd)).

Note that the upper bound is exclusive, the spec says: > c0 <= kesPeriod s < c0 + MaxKESEvo

Hot Key

data HotKey c m Source #

API to interact with the key.

Constructors

HotKey 

Fields

data KESEvolutionError Source #

Failed to evolve the KES key.

Constructors

KESCouldNotEvolve

The KES key could not be evolved to the target period.

Fields

  • KESInfo
     
  • KESPeriod

    Target period outside the range of the current KES key. Typically the current KES period according to the wallclock slot.

KESKeyAlreadyPoisoned

The KES key was already poisoned.

Fields

  • KESInfo
     
  • KESPeriod

    Target period outside the range of the current KES key. Typically the current KES period according to the wallclock slot.

type KESEvolutionInfo = UpdateInfo KESInfo KESEvolutionError Source #

Result of evolving the KES key.

mkHotKey Source #

Arguments

∷ ∀ m c. (Crypto c, IOLike m) 
SignKeyKES c 
KESPeriod

Start period

Word64

Max KES evolutions

→ m (HotKey c m) 

sign ∷ (KESignable c toSign, HasCallStack) ⇒ HotKey c m → toSign → m (SignedKES c toSign) Source #