ouroboros-consensus-diffusion-0.19.0.0: Integration for the Ouroboros Network layer
Safe HaskellSafe-Inferred
LanguageHaskell2010

Ouroboros.Consensus.Node.Genesis

Synopsis

GenesisConfig

data GenesisConfig Source #

Aggregating the various configs for Genesis-related subcomponents.

Usually, enableGenesisConfigDefault or disableGenesisConfig can be used. See the haddocks of the types of the individual fields for details.

Instances

Instances details
Generic GenesisConfig Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

Associated Types

type Rep GenesisConfigTypeType #

Show GenesisConfig Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

Eq GenesisConfig Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

type Rep GenesisConfig Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

data GenesisConfigFlags Source #

Genesis configuration flags and low-level args, as parsed from config file or CLI

Instances

Instances details
Generic GenesisConfigFlags Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

Associated Types

type Rep GenesisConfigFlagsTypeType #

Show GenesisConfigFlags Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

Eq GenesisConfigFlags Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

type Rep GenesisConfigFlags Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

type Rep GenesisConfigFlags = D1 ('MetaData "GenesisConfigFlags" "Ouroboros.Consensus.Node.Genesis" "ouroboros-consensus-diffusion-0.19.0.0-inplace" 'False) (C1 ('MetaCons "GenesisConfigFlags" 'PrefixI 'True) (((S1 ('MetaSel ('Just "gcfEnableCSJ") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "gcfEnableLoEAndGDD") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "gcfEnableLoP") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "gcfBlockFetchGracePeriod") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DiffTime)))) :*: ((S1 ('MetaSel ('Just "gcfBucketCapacity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)) :*: S1 ('MetaSel ('Just "gcfBucketRate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer))) :*: (S1 ('MetaSel ('Just "gcfCSJJumpSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe SlotNo)) :*: S1 ('MetaSel ('Just "gcfGDDRateLimit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DiffTime))))))

data LoEAndGDDConfig a Source #

Whether to en-/disable the Limit on Eagerness and the Genesis Density Disconnector.

Instances

Instances details
Foldable LoEAndGDDConfig Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

Methods

foldMonoid m ⇒ LoEAndGDDConfig m → m #

foldMapMonoid m ⇒ (a → m) → LoEAndGDDConfig a → m #

foldMap'Monoid m ⇒ (a → m) → LoEAndGDDConfig a → m #

foldr ∷ (a → b → b) → b → LoEAndGDDConfig a → b #

foldr' ∷ (a → b → b) → b → LoEAndGDDConfig a → b #

foldl ∷ (b → a → b) → b → LoEAndGDDConfig a → b #

foldl' ∷ (b → a → b) → b → LoEAndGDDConfig a → b #

foldr1 ∷ (a → a → a) → LoEAndGDDConfig a → a #

foldl1 ∷ (a → a → a) → LoEAndGDDConfig a → a #

toListLoEAndGDDConfig a → [a] #

nullLoEAndGDDConfig a → Bool #

lengthLoEAndGDDConfig a → Int #

elemEq a ⇒ a → LoEAndGDDConfig a → Bool #

maximumOrd a ⇒ LoEAndGDDConfig a → a #

minimumOrd a ⇒ LoEAndGDDConfig a → a #

sumNum a ⇒ LoEAndGDDConfig a → a #

productNum a ⇒ LoEAndGDDConfig a → a #

Traversable LoEAndGDDConfig Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

Methods

traverseApplicative f ⇒ (a → f b) → LoEAndGDDConfig a → f (LoEAndGDDConfig b) #

sequenceAApplicative f ⇒ LoEAndGDDConfig (f a) → f (LoEAndGDDConfig a) #

mapMMonad m ⇒ (a → m b) → LoEAndGDDConfig a → m (LoEAndGDDConfig b) #

sequenceMonad m ⇒ LoEAndGDDConfig (m a) → m (LoEAndGDDConfig a) #

Functor LoEAndGDDConfig Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

Methods

fmap ∷ (a → b) → LoEAndGDDConfig a → LoEAndGDDConfig b #

(<$) ∷ a → LoEAndGDDConfig b → LoEAndGDDConfig a #

Generic (LoEAndGDDConfig a) Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

Associated Types

type Rep (LoEAndGDDConfig a) ∷ TypeType #

Show a ⇒ Show (LoEAndGDDConfig a) Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

Eq a ⇒ Eq (LoEAndGDDConfig a) Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

type Rep (LoEAndGDDConfig a) Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Genesis

type Rep (LoEAndGDDConfig a) = D1 ('MetaData "LoEAndGDDConfig" "Ouroboros.Consensus.Node.Genesis" "ouroboros-consensus-diffusion-0.19.0.0-inplace" 'False) (C1 ('MetaCons "LoEAndGDDEnabled" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)) :+: C1 ('MetaCons "LoEAndGDDDisabled" 'PrefixI 'False) (U1TypeType))

disableGenesisConfigGenesisConfig Source #

Disable all Genesis components, yielding Praos behavior.

NodeKernel helpers

data GenesisNodeKernelArgs m blk Source #

Genesis-related arguments needed by the NodeKernel initialization logic.

data LoEAndGDDNodeKernelArgs m blk Source #

Constructors

LoEAndGDDNodeKernelArgs 

Fields

mkGenesisNodeKernelArgs ∷ ∀ m blk. (IOLike m, GetHeader blk) ⇒ GenesisConfig → m (GenesisNodeKernelArgs m blk, Complete ChainDbArgs m blk → Complete ChainDbArgs m blk) Source #

Create the initial 'GenesisNodeKernelArgs" (with a temporary GetLoEFragment that will be replaced via setGetLoEFragment) and a function to update the ChainDbArgs accordingly.

setGetLoEFragment Source #

Arguments

∷ ∀ m blk. (IOLike m, GetHeader blk) 
STM m GsmState 
STM m (AnchoredFragment (Header blk))

The LoE fragment.

StrictTVar m (GetLoEFragment m blk) 
→ m () 

Set gnkaGetLoEFragment to the actual logic for determining the current LoE fragment.