cardano-ledger-byron-1.3.0.0: The blockchain layer of Cardano during the Byron era
Safe HaskellNone
LanguageHaskell2010

Cardano.Chain.Genesis

Synopsis

Documentation

data Config Source #

Constructors

Config 

Fields

Instances

Instances details
FromCBOR Config Source # 
Instance details

Defined in Cardano.Chain.Genesis.Config

ToCBOR Config Source # 
Instance details

Defined in Cardano.Chain.Genesis.Config

Methods

toCBORConfigEncoding Source #

encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy ConfigSize Source #

encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [Config] → Size Source #

DecCBOR Config Source # 
Instance details

Defined in Cardano.Chain.Genesis.Config

EncCBOR Config Source # 
Instance details

Defined in Cardano.Chain.Genesis.Config

Methods

encCBORConfigEncoding Source #

Generic Config Source # 
Instance details

Defined in Cardano.Chain.Genesis.Config

Associated Types

type Rep Config 
Instance details

Defined in Cardano.Chain.Genesis.Config

type Rep Config = D1 ('MetaData "Config" "Cardano.Chain.Genesis.Config" "cardano-ledger-byron-1.3.0.0-inplace" 'False) (C1 ('MetaCons "Config" 'PrefixI 'True) ((S1 ('MetaSel ('Just "configGenesisData") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 GenesisData) :*: S1 ('MetaSel ('Just "configGenesisHash") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 GenesisHash)) :*: (S1 ('MetaSel ('Just "configReqNetMagic") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RequiresNetworkMagic) :*: S1 ('MetaSel ('Just "configUTxOConfiguration") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UTxOConfiguration))))

Methods

fromConfigRep Config x #

toRep Config x → Config #

Show Config Source # 
Instance details

Defined in Cardano.Chain.Genesis.Config

Methods

showsPrecIntConfigShowS #

showConfigString #

showList ∷ [Config] → ShowS #

Eq Config Source # 
Instance details

Defined in Cardano.Chain.Genesis.Config

Methods

(==)ConfigConfigBool #

(/=)ConfigConfigBool #

NoThunks Config Source # 
Instance details

Defined in Cardano.Chain.Genesis.Config

type Rep Config Source # 
Instance details

Defined in Cardano.Chain.Genesis.Config

type Rep Config = D1 ('MetaData "Config" "Cardano.Chain.Genesis.Config" "cardano-ledger-byron-1.3.0.0-inplace" 'False) (C1 ('MetaCons "Config" 'PrefixI 'True) ((S1 ('MetaSel ('Just "configGenesisData") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 GenesisData) :*: S1 ('MetaSel ('Just "configGenesisHash") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 GenesisHash)) :*: (S1 ('MetaSel ('Just "configReqNetMagic") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RequiresNetworkMagic) :*: S1 ('MetaSel ('Just "configUTxOConfiguration") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UTxOConfiguration))))

newtype GenesisDelegation Source #

This type contains genesis state of heavyweight delegation. It wraps a map where keys are issuers and values are delegation certificates. There are some invariants:

  1. In each pair delegate must differ from issuer, i. e. no revocations.
  2. PSKs must be consistent with keys in the map, i. e. issuer's ID must be equal to the key in the map.
  3. Delegates can't be issuers, i. e. transitive delegation is not supported. It's not needed in genesis, it can always be reduced.

Instances

Instances details
FromCBOR GenesisDelegation Source # 
Instance details

Defined in Cardano.Chain.Genesis.Delegation

ToCBOR GenesisDelegation Source # 
Instance details

Defined in Cardano.Chain.Genesis.Delegation

DecCBOR GenesisDelegation Source # 
Instance details

Defined in Cardano.Chain.Genesis.Delegation

EncCBOR GenesisDelegation Source # 
Instance details

Defined in Cardano.Chain.Genesis.Delegation

Show GenesisDelegation Source # 
Instance details

Defined in Cardano.Chain.Genesis.Delegation

Eq GenesisDelegation Source # 
Instance details

Defined in Cardano.Chain.Genesis.Delegation

NoThunks GenesisDelegation Source # 
Instance details

Defined in Cardano.Chain.Genesis.Delegation

MonadError SchemaError m ⇒ FromJSON m GenesisDelegation Source # 
Instance details

Defined in Cardano.Chain.Genesis.Delegation

Monad m ⇒ ToJSON m GenesisDelegation Source # 
Instance details

Defined in Cardano.Chain.Genesis.Delegation

newtype GenesisHash Source #

Constructors

GenesisHash 

Fields

Instances

Instances details
ToJSON GenesisHash Source # 
Instance details

Defined in Cardano.Chain.Genesis.Hash

FromCBOR GenesisHash Source # 
Instance details

Defined in Cardano.Chain.Genesis.Hash

ToCBOR GenesisHash Source # 
Instance details

Defined in Cardano.Chain.Genesis.Hash

Methods

toCBORGenesisHashEncoding Source #

encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy GenesisHashSize Source #

encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [GenesisHash] → Size Source #

DecCBOR GenesisHash Source # 
Instance details

Defined in Cardano.Chain.Genesis.Hash

EncCBOR GenesisHash Source # 
Instance details

Defined in Cardano.Chain.Genesis.Hash

NFData GenesisHash Source # 
Instance details

Defined in Cardano.Chain.Genesis.Hash

Methods

rnfGenesisHash → () #

Generic GenesisHash Source # 
Instance details

Defined in Cardano.Chain.Genesis.Hash

Associated Types

type Rep GenesisHash 
Instance details

Defined in Cardano.Chain.Genesis.Hash

type Rep GenesisHash = D1 ('MetaData "GenesisHash" "Cardano.Chain.Genesis.Hash" "cardano-ledger-byron-1.3.0.0-inplace" 'True) (C1 ('MetaCons "GenesisHash" 'PrefixI 'True) (S1 ('MetaSel ('Just "unGenesisHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Hash Raw))))
Show GenesisHash Source # 
Instance details

Defined in Cardano.Chain.Genesis.Hash

Eq GenesisHash Source # 
Instance details

Defined in Cardano.Chain.Genesis.Hash

NoThunks GenesisHash Source # 
Instance details

Defined in Cardano.Chain.Genesis.Hash

type Rep GenesisHash Source # 
Instance details

Defined in Cardano.Chain.Genesis.Hash

type Rep GenesisHash = D1 ('MetaData "GenesisHash" "Cardano.Chain.Genesis.Hash" "cardano-ledger-byron-1.3.0.0-inplace" 'True) (C1 ('MetaCons "GenesisHash" 'PrefixI 'True) (S1 ('MetaSel ('Just "unGenesisHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Hash Raw))))

newtype GenesisKeyHashes Source #

The set of genesis keys, who are able to produce blocks and submit votes and proposals in the Byron era

Instances

Instances details
FromCBOR GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

ToCBOR GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

DecCBOR GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

EncCBOR GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

Buildable GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

Monoid GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

Semigroup GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

Show GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

Eq GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

NoThunks GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

MonadError SchemaError m ⇒ FromJSON m GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

Monad m ⇒ ToJSON m GenesisKeyHashes Source # 
Instance details

Defined in Cardano.Chain.Genesis.KeyHashes

newtype GenesisAvvmBalances Source #

Predefined balances of AVVM (Ada Voucher Vending Machine) entries. People who purchased Ada at a pre-sale were issued a certificate during the pre-sale period. These certificates allow customers to redeem ADA.

Instances

Instances details
FromCBOR GenesisAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.AvvmBalances

ToCBOR GenesisAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.AvvmBalances

DecCBOR GenesisAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.AvvmBalances

EncCBOR GenesisAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.AvvmBalances

Semigroup GenesisAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.AvvmBalances

Show GenesisAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.AvvmBalances

Eq GenesisAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.AvvmBalances

NoThunks GenesisAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.AvvmBalances

MonadError SchemaError m ⇒ FromJSON m GenesisAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.AvvmBalances

Monad m ⇒ ToJSON m GenesisAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.AvvmBalances

data ConfigurationError Source #

Constructors

ConfigurationGenesisDataError GenesisDataError

An error in constructing GenesisData

GenesisHashMismatch GenesisHash (Hash Raw)

The GenesisData canonical JSON hash is different than expected

GenesisHashDecodeError Text

An error occured while decoding the genesis hash.

Instances

Instances details
Show ConfigurationError Source # 
Instance details

Defined in Cardano.Chain.Genesis.Config

configProtocolMagicConfigProtocolMagic Source #

There isn't a full ProtocolMagic in Config, but the requisite ProtocolMagicId and RequiresNetworkMagic are stored separately. We use them to construct and return a ProtocolMagic.

mkConfigFromFile Source #

Arguments

∷ (MonadError ConfigurationError m, MonadIO m) 
RequiresNetworkMagic 
FilePath 
Hash Raw

The expected hash of the file

→ m Config 

Construct a Config from an external genesis file.

The FilePath refers to a canonical JSON file. It will be hashed and checked against the expected hash, which should be known from config.

data GenesisData Source #

Genesis data contains all data which determines consensus rules. It must be same for all nodes. It's used to initialize global state, slotting, etc.

Instances

Instances details
FromCBOR GenesisData Source # 
Instance details

Defined in Cardano.Chain.Genesis.Data

ToCBOR GenesisData Source # 
Instance details

Defined in Cardano.Chain.Genesis.Data

Methods

toCBORGenesisDataEncoding Source #

encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy GenesisDataSize Source #

encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [GenesisData] → Size Source #

DecCBOR GenesisData Source # 
Instance details

Defined in Cardano.Chain.Genesis.Data

EncCBOR GenesisData Source # 
Instance details

Defined in Cardano.Chain.Genesis.Data

Generic GenesisData Source # 
Instance details

Defined in Cardano.Chain.Genesis.Data

Show GenesisData Source # 
Instance details

Defined in Cardano.Chain.Genesis.Data

Eq GenesisData Source # 
Instance details

Defined in Cardano.Chain.Genesis.Data

NoThunks GenesisData Source # 
Instance details

Defined in Cardano.Chain.Genesis.Data

MonadError SchemaError m ⇒ FromJSON m GenesisData Source # 
Instance details

Defined in Cardano.Chain.Genesis.Data

Monad m ⇒ ToJSON m GenesisData Source # 
Instance details

Defined in Cardano.Chain.Genesis.Data

Methods

toJSONGenesisData → m JSValue Source #

type Rep GenesisData Source # 
Instance details

Defined in Cardano.Chain.Genesis.Data

readGenesisData ∷ (MonadError GenesisDataError m, MonadIO m) ⇒ FilePath → m (GenesisData, GenesisHash) Source #

Parse GenesisData from a JSON file and annotate with Canonical JSON hash

newtype GenesisNonAvvmBalances Source #

Predefined balances of non avvm entries.

Instances

Instances details
FromCBOR GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

ToCBOR GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

DecCBOR GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

EncCBOR GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

Buildable GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

Monoid GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

Semigroup GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

Show GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

Eq GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

NoThunks GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

MonadError SchemaError m ⇒ FromJSON m GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

Monad m ⇒ ToJSON m GenesisNonAvvmBalances Source # 
Instance details

Defined in Cardano.Chain.Genesis.NonAvvmBalances

data GeneratedSecrets Source #

Valuable secrets which can unlock genesis data.

Constructors

GeneratedSecrets 

Fields

Instances

Instances details
Generic GeneratedSecrets Source # 
Instance details

Defined in Cardano.Chain.Genesis.Generate

Associated Types

type Rep GeneratedSecrets 
Instance details

Defined in Cardano.Chain.Genesis.Generate

type Rep GeneratedSecrets = D1 ('MetaData "GeneratedSecrets" "Cardano.Chain.Genesis.Generate" "cardano-ledger-byron-1.3.0.0-inplace" 'False) (C1 ('MetaCons "GeneratedSecrets" 'PrefixI 'True) ((S1 ('MetaSel ('Just "gsDlgIssuersSecrets") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [SigningKey]) :*: S1 ('MetaSel ('Just "gsRichSecrets") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [SigningKey])) :*: (S1 ('MetaSel ('Just "gsPoorSecrets") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [PoorSecret]) :*: S1 ('MetaSel ('Just "gsFakeAvvmSecrets") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [RedeemSigningKey]))))
NoThunks GeneratedSecrets Source # 
Instance details

Defined in Cardano.Chain.Genesis.Generate

type Rep GeneratedSecrets Source # 
Instance details

Defined in Cardano.Chain.Genesis.Generate

type Rep GeneratedSecrets = D1 ('MetaData "GeneratedSecrets" "Cardano.Chain.Genesis.Generate" "cardano-ledger-byron-1.3.0.0-inplace" 'False) (C1 ('MetaCons "GeneratedSecrets" 'PrefixI 'True) ((S1 ('MetaSel ('Just "gsDlgIssuersSecrets") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [SigningKey]) :*: S1 ('MetaSel ('Just "gsRichSecrets") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [SigningKey])) :*: (S1 ('MetaSel ('Just "gsPoorSecrets") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [PoorSecret]) :*: S1 ('MetaSel ('Just "gsFakeAvvmSecrets") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [RedeemSigningKey]))))

newtype PoorSecret Source #

Poor node secret

Constructors

PoorSecret 

Instances

Instances details
Generic PoorSecret Source # 
Instance details

Defined in Cardano.Chain.Genesis.Generate

Associated Types

type Rep PoorSecret 
Instance details

Defined in Cardano.Chain.Genesis.Generate

type Rep PoorSecret = D1 ('MetaData "PoorSecret" "Cardano.Chain.Genesis.Generate" "cardano-ledger-byron-1.3.0.0-inplace" 'True) (C1 ('MetaCons "PoorSecret" 'PrefixI 'True) (S1 ('MetaSel ('Just "poorSecretToKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SigningKey)))
NoThunks PoorSecret Source # 
Instance details

Defined in Cardano.Chain.Genesis.Generate

type Rep PoorSecret Source # 
Instance details

Defined in Cardano.Chain.Genesis.Generate

type Rep PoorSecret = D1 ('MetaData "PoorSecret" "Cardano.Chain.Genesis.Generate" "cardano-ledger-byron-1.3.0.0-inplace" 'True) (C1 ('MetaCons "PoorSecret" 'PrefixI 'True) (S1 ('MetaSel ('Just "poorSecretToKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SigningKey)))

generateGenesisDataUTCTimeGenesisSpecExceptT GenesisDataGenerationError IO (GenesisData, GeneratedSecrets) Source #

Generate a genesis GenesisData and GeneratedSecrets from a GenesisSpec. This is used only for tests blockhains. For a real blockcain you must use the external key generation tool so that each stakeholder can generate their keys privately.

generateGenesisDataWithEntropy ∷ ∀ (m ∷ TypeType). MonadRandom m ⇒ UTCTimeGenesisSpecExceptT GenesisDataGenerationError m (GenesisData, GeneratedSecrets) Source #

A version of generateGenesisData parametrised over MonadRandom. For testing purposes this allows using a completely pure deterministic entropy source, rather than a cryptographically secure entropy source.

generateGenesisConfigUTCTimeGenesisSpecExceptT GenesisDataGenerationError IO (Config, GeneratedSecrets) Source #

Generate a genesis Config from a GenesisSpec. This is used only for tests. For the real node we always generate an external JSON genesis file.

generateGenesisConfigWithEntropy ∷ ∀ (m ∷ TypeType). MonadRandom m ⇒ UTCTimeGenesisSpecExceptT GenesisDataGenerationError m (Config, GeneratedSecrets) Source #

A version of generateGenesisConfig parametrised over MonadRandom. For testing purposes this allows using a completely pure deterministic entropy source, rather than a cryptographically secure entropy source.

data FakeAvvmOptions Source #

These options determines balances of fake AVVM nodes which didn't really go through vending, but pretend they did

Constructors

FakeAvvmOptions 

Fields

Instances

Instances details
Generic FakeAvvmOptions Source # 
Instance details

Defined in Cardano.Chain.Genesis.Initializer

Associated Types

type Rep FakeAvvmOptions 
Instance details

Defined in Cardano.Chain.Genesis.Initializer

type Rep FakeAvvmOptions = D1 ('MetaData "FakeAvvmOptions" "Cardano.Chain.Genesis.Initializer" "cardano-ledger-byron-1.3.0.0-inplace" 'False) (C1 ('MetaCons "FakeAvvmOptions" 'PrefixI 'True) (S1 ('MetaSel ('Just "faoCount") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word) :*: S1 ('MetaSel ('Just "faoOneBalance") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Lovelace)))
Show FakeAvvmOptions Source # 
Instance details

Defined in Cardano.Chain.Genesis.Initializer

Eq FakeAvvmOptions Source # 
Instance details

Defined in Cardano.Chain.Genesis.Initializer

type Rep FakeAvvmOptions Source # 
Instance details

Defined in Cardano.Chain.Genesis.Initializer

type Rep FakeAvvmOptions = D1 ('MetaData "FakeAvvmOptions" "Cardano.Chain.Genesis.Initializer" "cardano-ledger-byron-1.3.0.0-inplace" 'False) (C1 ('MetaCons "FakeAvvmOptions" 'PrefixI 'True) (S1 ('MetaSel ('Just "faoCount") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word) :*: S1 ('MetaSel ('Just "faoOneBalance") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Lovelace)))

data GenesisInitializer Source #

Options determining generated genesis stakes, balances, and delegation

Constructors

GenesisInitializer 

Fields

data TestnetBalanceOptions Source #

These options determine balances of nodes specific for testnet

Constructors

TestnetBalanceOptions 

Fields

data GenesisSpec Source #

Specification how to generate full GenesisData

Constructors

UnsafeGenesisSpec 

Fields

Instances

Instances details
Generic GenesisSpec Source # 
Instance details

Defined in Cardano.Chain.Genesis.Spec

Associated Types

type Rep GenesisSpec 
Instance details

Defined in Cardano.Chain.Genesis.Spec

Show GenesisSpec Source # 
Instance details

Defined in Cardano.Chain.Genesis.Spec

Eq GenesisSpec Source # 
Instance details

Defined in Cardano.Chain.Genesis.Spec

type Rep GenesisSpec Source # 
Instance details

Defined in Cardano.Chain.Genesis.Spec

convertNonAvvmDataToBalancesMonadError NonAvvmBalancesError m ⇒ Map Text Integer → m GenesisNonAvvmBalances Source #

Generate genesis address distribution out of avvm parameters. Txdistr of the utxo is all empty. Redelegate it in calling function.

mkGenesisSpecGenesisAvvmBalancesGenesisDelegationProtocolParametersBlockCountProtocolMagicGenesisInitializerEither Text GenesisSpec Source #

Safe constructor for GenesisSpec. Throws error if something goes wrong.