ouroboros-consensus-protocol-0.1.0.1: Cardano consensus protocols.
Safe Haskell None
Language Haskell2010

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

KES Status

data KESStatus Source #

Constructors

BeforeKESStart

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

Fields

InKESRange 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

kesStatus :: KESInfo -> KESPeriod -> KESStatus 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 KESInfo KESPeriod

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

KESKeyAlreadyPoisoned KESInfo KESPeriod

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

mkHotKey Source #

Arguments

:: forall 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 #