ouroboros-consensus
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Peras.Cert.V1

Description

Concrete Peras certificate types using BLS signatures.

NOTE: this module is meant to be imported qualified.

NOTE: the validation performed during serialization is minimal, and does not cover any of additional semantic and cryptographic checks that must be performed on the certificate later on.

Synopsis

Documentation

data PerasCert blk Source #

Concrete Peras certificates using BLS signatures

NOTE: the blk parameter is a phantom type used to track the block type that the certificate is associated with, to ensure injectivity when PerasCert is used as a type instance for BlockSupportsPeras class.

Constructors

PerasCert 

Fields

Instances

Instances details
ShowProxy blk ⇒ ShowProxy (PerasCert blk ∷ Type) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

Methods

showProxyProxy (PerasCert blk) → String #

Typeable blk ⇒ FromCBOR (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

Methods

fromCBORDecoder s (PerasCert blk) Source #

labelProxy (PerasCert blk) → Text Source #

Typeable blk ⇒ ToCBOR (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

Methods

toCBORPerasCert blk → Encoding Source #

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

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

Eq (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

Methods

(==)PerasCert blk → PerasCert blk → Bool #

(/=)PerasCert blk → PerasCert blk → Bool #

Generic (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

Associated Types

type Rep (PerasCert blk) 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

type Rep (PerasCert blk) = D1 ('MetaData "PerasCert" "Ouroboros.Consensus.Peras.Cert.V1" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasCert" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pcRoundNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasRoundNo) :*: S1 ('MetaSel ('Just "pcBoostedBlock") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasBoostedBlock)) :*: (S1 ('MetaSel ('Just "pcVoters") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasCertVoters) :*: S1 ('MetaSel ('Just "pcSignature") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (AggregateVoteSignature PerasBLSCrypto)))))

Methods

fromPerasCert blk → Rep (PerasCert blk) x #

toRep (PerasCert blk) x → PerasCert blk #

Show (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

Methods

showsPrecIntPerasCert blk → ShowS #

showPerasCert blk → String #

showList ∷ [PerasCert blk] → ShowS #

NoThunks (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

(ConvertRawHash blk, HashSize blk ~ 32)IsPerasCert (PerasCert blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

PerasCertCompatibleWithVotingCommittee (PerasCert blk) PerasBLSCrypto EveryoneVotes Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

PerasCertCompatibleWithVotingCommittee (PerasCert blk) PerasBLSCrypto WFALS Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

type Rep (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

type Rep (PerasCert blk) = D1 ('MetaData "PerasCert" "Ouroboros.Consensus.Peras.Cert.V1" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasCert" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pcRoundNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasRoundNo) :*: S1 ('MetaSel ('Just "pcBoostedBlock") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasBoostedBlock)) :*: (S1 ('MetaSel ('Just "pcVoters") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasCertVoters) :*: S1 ('MetaSel ('Just "pcSignature") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (AggregateVoteSignature PerasBLSCrypto)))))
type BoostedBlock (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

castPerasCert ∷ ∀ blk' blk. PerasCert blk → PerasCert blk' Source #

Retag a PerasCert with a new phantom blk type.

newtype PerasCertVoters Source #

Voters contained in a certificate with their appropriate eligibility proof

Instances

Instances details
FromCBOR PerasCertVoters Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

ToCBOR PerasCertVoters Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

Eq PerasCertVoters Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

Generic PerasCertVoters Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

Associated Types

type Rep PerasCertVoters 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

type Rep PerasCertVoters = D1 ('MetaData "PerasCertVoters" "Ouroboros.Consensus.Peras.Cert.V1" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasCertVoters" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasCertVoters") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NE (Map PerasSeatIndex PerasVoteEligibilityProof)))))
Show PerasCertVoters Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

NoThunks PerasCertVoters Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

type Rep PerasCertVoters Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

type Rep PerasCertVoters = D1 ('MetaData "PerasCertVoters" "Ouroboros.Consensus.Peras.Cert.V1" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasCertVoters" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasCertVoters") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NE (Map PerasSeatIndex PerasVoteEligibilityProof)))))