ouroboros-consensus
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Peras.Vote.V1

Description

Concrete Peras vote types using BLS signatures.

NOTE: this module is meant to be imported qualified.

Synopsis

Documentation

data PerasVote blk Source #

Concrete Peras votes using BLS signatures

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

Constructors

PerasVote 

Fields

Instances

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

Defined in Ouroboros.Consensus.Peras.Vote.V1

Methods

showProxyProxy (PerasVote blk) → String #

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

Defined in Ouroboros.Consensus.Peras.Vote.V1

Methods

fromCBORDecoder s (PerasVote blk) Source #

labelProxy (PerasVote blk) → Text Source #

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

Defined in Ouroboros.Consensus.Peras.Vote.V1

Methods

toCBORPerasVote blk → Encoding Source #

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

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

Eq (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

Methods

(==)PerasVote blk → PerasVote blk → Bool #

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

Generic (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

Associated Types

type Rep (PerasVote blk) 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

type Rep (PerasVote blk) = D1 ('MetaData "PerasVote" "Ouroboros.Consensus.Peras.Vote.V1" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasVote" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pvRoundNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasRoundNo) :*: S1 ('MetaSel ('Just "pvBoostedBlock") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasBoostedBlock)) :*: (S1 ('MetaSel ('Just "pvSeatIndex") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasSeatIndex) :*: (S1 ('MetaSel ('Just "pvEligibilityProof") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasVoteEligibilityProof) :*: S1 ('MetaSel ('Just "pvSignature") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VoteSignature PerasBLSCrypto))))))

Methods

fromPerasVote blk → Rep (PerasVote blk) x #

toRep (PerasVote blk) x → PerasVote blk #

Show (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

Methods

showsPrecIntPerasVote blk → ShowS #

showPerasVote blk → String #

showList ∷ [PerasVote blk] → ShowS #

NoThunks (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

(ConvertRawHash blk, HashSize blk ~ 32)IsPerasVote (PerasVote blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

PerasVoteCompatibleWithVotingCommittee (PerasVote blk) PerasBLSCrypto EveryoneVotes Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

PerasVoteCompatibleWithVotingCommittee (PerasVote blk) PerasBLSCrypto WFALS Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

type Rep (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

type Rep (PerasVote blk) = D1 ('MetaData "PerasVote" "Ouroboros.Consensus.Peras.Vote.V1" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasVote" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pvRoundNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasRoundNo) :*: S1 ('MetaSel ('Just "pvBoostedBlock") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasBoostedBlock)) :*: (S1 ('MetaSel ('Just "pvSeatIndex") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasSeatIndex) :*: (S1 ('MetaSel ('Just "pvEligibilityProof") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasVoteEligibilityProof) :*: S1 ('MetaSel ('Just "pvSignature") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VoteSignature PerasBLSCrypto))))))
type BoostedBlock (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

castPerasVote ∷ ∀ blk' blk. PerasVote blk → PerasVote blk' Source #

Retag a PerasVote with a new phantom blk type.

data PerasVoteEligibilityProof Source #

Proof of eligibility for voting for committee members

Constructors

PersistentPerasVoteEligibilityProof

Persistent committee members require no additional proof of eligibility

NonPersistentPerasVoteEligibilityProof !(VRFOutput PerasBLSCrypto)

Non-persistent committee members provide a VRF proof of eligibility

Instances

Instances details
FromCBOR PerasVoteEligibilityProof Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

ToCBOR PerasVoteEligibilityProof Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

Eq PerasVoteEligibilityProof Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

Generic PerasVoteEligibilityProof Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

Associated Types

type Rep PerasVoteEligibilityProof 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

type Rep PerasVoteEligibilityProof = D1 ('MetaData "PerasVoteEligibilityProof" "Ouroboros.Consensus.Peras.Vote.V1" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "PersistentPerasVoteEligibilityProof" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "NonPersistentPerasVoteEligibilityProof" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VRFOutput PerasBLSCrypto))))
Show PerasVoteEligibilityProof Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

NoThunks PerasVoteEligibilityProof Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

type Rep PerasVoteEligibilityProof Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

type Rep PerasVoteEligibilityProof = D1 ('MetaData "PerasVoteEligibilityProof" "Ouroboros.Consensus.Peras.Vote.V1" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "PersistentPerasVoteEligibilityProof" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "NonPersistentPerasVoteEligibilityProof" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VRFOutput PerasBLSCrypto))))