ouroboros-consensus:unstable-shelley-testlib
Safe HaskellNone
LanguageHaskell2010

Test.ThreadNet.Infra.Shelley

Synopsis

Documentation

data CoreNode c Source #

Constructors

CoreNode 

Fields

data CoreNodeKeyInfo c Source #

Constructors

CoreNodeKeyInfo 

Fields

newtype DecentralizationParam Source #

A suitable value for the d protocol parameter

In the range 0 to 1, inclusive. Beware the misnomer: 0 means fully decentralized, and 1 means fully centralized.

Instances

Instances details
Arbitrary DecentralizationParam Source #

A fraction with denominator 10 and numerator 0 to 10 inclusive

Instance details

Defined in Test.ThreadNet.Infra.Shelley

Eq DecentralizationParam Source # 
Instance details

Defined in Test.ThreadNet.Infra.Shelley

Ord DecentralizationParam Source # 
Instance details

Defined in Test.ThreadNet.Infra.Shelley

Generic DecentralizationParam Source # 
Instance details

Defined in Test.ThreadNet.Infra.Shelley

Associated Types

type Rep DecentralizationParam 
Instance details

Defined in Test.ThreadNet.Infra.Shelley

type Rep DecentralizationParam = D1 ('MetaData "DecentralizationParam" "Test.ThreadNet.Infra.Shelley" "ouroboros-consensus-4.0.0.0-inplace-unstable-shelley-testlib" 'True) (C1 ('MetaCons "DecentralizationParam" 'PrefixI 'True) (S1 ('MetaSel ('Just "decentralizationParamToRational") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))
Show DecentralizationParam Source # 
Instance details

Defined in Test.ThreadNet.Infra.Shelley

type Rep DecentralizationParam Source # 
Instance details

Defined in Test.ThreadNet.Infra.Shelley

type Rep DecentralizationParam = D1 ('MetaData "DecentralizationParam" "Test.ThreadNet.Infra.Shelley" "ouroboros-consensus-4.0.0.0-inplace-unstable-shelley-testlib" 'True) (C1 ('MetaCons "DecentralizationParam" 'PrefixI 'True) (S1 ('MetaSel ('Just "decentralizationParamToRational") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))

data KesConfig Source #

Currently maxEvolutions * slotsPerEvolution is the max number of slots the test can run without needing new ocerts.

TODO This limitation may be lifted by PR #2107, see https://github.com/IntersectMBO/ouroboros-network/issues/2107.

Constructors

KesConfig 

mkEpochSize ∷ SecurityParam → Rational → EpochSize Source #

The epoch size, given k and f.

INVARIANT: 10 * k / f must be a whole number.

mkGenesisConfig Source #

Arguments

∷ PraosCrypto c 
⇒ ProtVer

Initial protocol version

→ SecurityParam 
→ Rational

Initial active slot coefficient

→ DecentralizationParam 
→ Word64

Max Lovelace supply, must be >= #coreNodes * initialLovelacePerCoreNode

→ SlotLength 
→ KesConfig 
→ [CoreNode c] 
→ ShelleyGenesis 

Note: a KES algorithm supports a particular max number of KES evolutions, but we can configure a potentially lower maximum for the ledger, that's why we take it as an argument.

mkKesConfig ∷ ∀ proxy c. Crypto c ⇒ proxy c → NumSlots → KesConfig Source #

A KesConfig that will not require more evolutions than this test's crypto allows.

mkKeyHashVrf ∷ ∀ c (r ∷ KeyRoleVRF). Crypto c ⇒ SignKeyVRF (VRF c) → VRFVerKeyHash r Source #

mkKeyPair ∷ ∀ (r ∷ KeyRole). SignKeyDSIGN DSIGN → KeyPair r Source #

mkLeaderCredentials ∷ CoreNode c → ShelleyLeaderCredentials c Source #

mkMASetDecentralizationParamTxs Source #

Arguments

∷ ∀ proto era. (ShelleyBasedEra era, AllegraEraTxBody era, ShelleyEraTxBody era, AtMostEra "Alonzo" era) 
⇒ [CoreNode (ProtoCrypto proto)] 
→ ProtVer

The proposed protocol version

→ SlotNo

The TTL

→ DecentralizationParam

The new value

→ [GenTx (ShelleyBlock proto era)] 

TODO This is a copy-paste-edit of mkSetDecentralizationParamTxs

Our current plan is to replace all of this infrastructure with the ThreadNet rewrite; so we're minimizing the work and maintenance here for now.

mkProtocolShelley ∷ ∀ m c. (KESAgentContext c m, ShelleyCompatible (TPraos c) ShelleyEra) ⇒ SomeHasFS m → ShelleyGenesis → Nonce → ProtVer → CoreNode c → m (ProtocolInfo (ShelleyBlock (TPraos c) ShelleyEra), Tracer m KESAgentClientTrace → m [MkBlockForging m (ShelleyBlock (TPraos c) ShelleyEra)]) Source #

mkSetDecentralizationParamTxs Source #

Arguments

∷ [CoreNode c] 
→ ProtVer

The proposed protocol version

→ SlotNo

The TTL

→ DecentralizationParam

The new value

→ [GenTx (ShelleyBlock (TPraos c) ShelleyEra)] 

mkVerKey ∷ ∀ (r ∷ KeyRole). SignKeyDSIGN DSIGN → VKey r Source #