ouroboros-consensus-1.0.0.0: Consensus layer for the Ouroboros blockchain protocol
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Block.SupportsPeras

Synopsis

Documentation

newtype PerasRoundNo Source #

Constructors

PerasRoundNo 

Instances

Instances details
Bounded PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Enum PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Generic PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Associated Types

type Rep PerasRoundNo 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep PerasRoundNo = D1 ('MetaData "PerasRoundNo" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasRoundNo" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasRoundNo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))
Num PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Show PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Eq PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Ord PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

NoThunks PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Condense PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Serialise PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

SerialiseNodeToNode blk PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Serialisation

ShowProxy PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep PerasRoundNo Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep PerasRoundNo = D1 ('MetaData "PerasRoundNo" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasRoundNo" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasRoundNo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

onPerasRoundNo ∷ (Word64Word64Word64) → PerasRoundNoPerasRoundNoPerasRoundNo Source #

Lift a binary operation on Word64 to PerasRoundNo

data PerasVoteId blk Source #

Instances

Instances details
Generic (PerasVoteId blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Associated Types

type Rep (PerasVoteId blk) 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasVoteId blk) = D1 ('MetaData "PerasVoteId" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasVoteId" 'PrefixI 'True) (S1 ('MetaSel ('Just "pviRoundNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasRoundNo) :*: S1 ('MetaSel ('Just "pviVoterId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasVoterId)))

Methods

fromPerasVoteId blk → Rep (PerasVoteId blk) x #

toRep (PerasVoteId blk) x → PerasVoteId blk #

Show (PerasVoteId blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

showsPrecIntPerasVoteId blk → ShowS #

showPerasVoteId blk → String #

showList ∷ [PerasVoteId blk] → ShowS #

Eq (PerasVoteId blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

(==)PerasVoteId blk → PerasVoteId blk → Bool #

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

Ord (PerasVoteId blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

comparePerasVoteId blk → PerasVoteId blk → Ordering #

(<)PerasVoteId blk → PerasVoteId blk → Bool #

(<=)PerasVoteId blk → PerasVoteId blk → Bool #

(>)PerasVoteId blk → PerasVoteId blk → Bool #

(>=)PerasVoteId blk → PerasVoteId blk → Bool #

maxPerasVoteId blk → PerasVoteId blk → PerasVoteId blk #

minPerasVoteId blk → PerasVoteId blk → PerasVoteId blk #

NoThunks (PerasVoteId blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasVoteId blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasVoteId blk) = D1 ('MetaData "PerasVoteId" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasVoteId" 'PrefixI 'True) (S1 ('MetaSel ('Just "pviRoundNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasRoundNo) :*: S1 ('MetaSel ('Just "pviVoterId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasVoterId)))

data PerasVoteTarget blk Source #

Constructors

PerasVoteTarget 

Fields

Instances

Instances details
Generic (PerasVoteTarget blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Associated Types

type Rep (PerasVoteTarget blk) 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasVoteTarget blk) = D1 ('MetaData "PerasVoteTarget" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasVoteTarget" 'PrefixI 'True) (S1 ('MetaSel ('Just "pvtRoundNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasRoundNo) :*: S1 ('MetaSel ('Just "pvtBlock") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Point blk))))

Methods

fromPerasVoteTarget blk → Rep (PerasVoteTarget blk) x #

toRep (PerasVoteTarget blk) x → PerasVoteTarget blk #

StandardHash blk ⇒ Show (PerasVoteTarget blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

showsPrecIntPerasVoteTarget blk → ShowS #

showPerasVoteTarget blk → String #

showList ∷ [PerasVoteTarget blk] → ShowS #

StandardHash blk ⇒ Eq (PerasVoteTarget blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

(==)PerasVoteTarget blk → PerasVoteTarget blk → Bool #

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

StandardHash blk ⇒ Ord (PerasVoteTarget blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

StandardHash blk ⇒ NoThunks (PerasVoteTarget blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasVoteTarget blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasVoteTarget blk) = D1 ('MetaData "PerasVoteTarget" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasVoteTarget" 'PrefixI 'True) (S1 ('MetaSel ('Just "pvtRoundNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasRoundNo) :*: S1 ('MetaSel ('Just "pvtBlock") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Point blk))))

newtype PerasVoterId Source #

Constructors

PerasVoterId 

Instances

Instances details
Generic PerasVoterId Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Associated Types

type Rep PerasVoterId 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep PerasVoterId = D1 ('MetaData "PerasVoterId" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasVoterId" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasVoterId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (KeyHash 'StakePool))))
Show PerasVoterId Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Eq PerasVoterId Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Ord PerasVoterId Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

NoThunks PerasVoterId Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

SerialiseNodeToNode blk PerasVoterId Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Serialisation

type Rep PerasVoterId Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep PerasVoterId = D1 ('MetaData "PerasVoterId" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasVoterId" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasVoterId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (KeyHash 'StakePool))))

newtype PerasVoteStake Source #

Constructors

PerasVoteStake 

Instances

Instances details
Monoid PerasVoteStake Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Semigroup PerasVoteStake Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Generic PerasVoteStake Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Associated Types

type Rep PerasVoteStake 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep PerasVoteStake = D1 ('MetaData "PerasVoteStake" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasVoteStake" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasVoteStake") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))
Num PerasVoteStake Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Fractional PerasVoteStake Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Show PerasVoteStake Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Eq PerasVoteStake Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Ord PerasVoteStake Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

NoThunks PerasVoteStake Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Serialise PerasVoteStake Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep PerasVoteStake Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep PerasVoteStake = D1 ('MetaData "PerasVoteStake" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasVoteStake" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasVoteStake") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))

stakeAboveThresholdPerasParamsPerasVoteStakeBool Source #

Check whether a given vote stake is above the quorum threshold.

TODO: this function assumes that the PerasVoteStake and the quorum threshold used in PerasParams are expressed in the same units. That is, both are either absolute or relative (normalized) values. Under the current current implementation of PerasParams, this function only makes sense when both values are relative (normalized) values, so we should either normalize the PerasVoteStake before calling this function, or change this function to accept a stake distribution and perform the normalization internally.

newtype PerasVoteStakeDistr Source #

Instances

Instances details
Generic PerasVoteStakeDistr Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Associated Types

type Rep PerasVoteStakeDistr 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep PerasVoteStakeDistr = D1 ('MetaData "PerasVoteStakeDistr" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasVoteStakeDistr" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasVoteStakeDistr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map PerasVoterId PerasVoteStake))))
Show PerasVoteStakeDistr Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Eq PerasVoteStakeDistr Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

NoThunks PerasVoteStakeDistr Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep PerasVoteStakeDistr Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep PerasVoteStakeDistr = D1 ('MetaData "PerasVoteStakeDistr" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasVoteStakeDistr" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasVoteStakeDistr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map PerasVoterId PerasVoteStake))))

lookupPerasVoteStakePerasVote blk → PerasVoteStakeDistrMaybe PerasVoteStake Source #

Lookup the stake of a vote cast by a member of a given stake distribution.

class (Show (PerasCfg blk), NoThunks (PerasCert blk)) ⇒ BlockSupportsPeras blk where Source #

Associated Types

type PerasCfg blk Source #

data PerasCert blk Source #

data PerasVote blk Source #

data PerasValidationErr blk Source #

data PerasForgeErr blk Source #

data family PerasCert blk Source #

Instances

Instances details
ConvertRawHash blk ⇒ SerialiseNodeToNode blk (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Serialisation

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

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

showProxyProxy (PerasCert blk) → String Source #

Generic (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Associated Types

type Rep (PerasCert blk) 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasCert blk) = D1 ('MetaData "PerasCert" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasCert" 'PrefixI 'True) (S1 ('MetaSel ('Just "pcCertRound") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PerasRoundNo) :*: S1 ('MetaSel ('Just "pcCertBoostedBlock") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk))))

Methods

fromPerasCert blk → Rep (PerasCert blk) x #

toRep (PerasCert blk) x → PerasCert blk #

StandardHash blk ⇒ Show (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

showsPrecIntPerasCert blk → ShowS #

showPerasCert blk → String #

showList ∷ [PerasCert blk] → ShowS #

StandardHash blk ⇒ Eq (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

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

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

StandardHash blk ⇒ Ord (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

comparePerasCert blk → PerasCert blk → Ordering #

(<)PerasCert blk → PerasCert blk → Bool #

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

(>)PerasCert blk → PerasCert blk → Bool #

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

maxPerasCert blk → PerasCert blk → PerasCert blk #

minPerasCert blk → PerasCert blk → PerasCert blk #

StandardHash blk ⇒ NoThunks (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasCertRound (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Serialise (HeaderHash blk) ⇒ Serialise (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasCertBoostedBlock (PerasCert blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

data PerasCert blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasCert blk) = D1 ('MetaData "PerasCert" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasCert" 'PrefixI 'True) (S1 ('MetaSel ('Just "pcCertRound") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PerasRoundNo) :*: S1 ('MetaSel ('Just "pcCertBoostedBlock") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk))))

data family PerasVote blk Source #

Instances

Instances details
ConvertRawHash blk ⇒ SerialiseNodeToNode blk (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Node.Serialisation

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

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

showProxyProxy (PerasVote blk) → String Source #

Generic (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Associated Types

type Rep (PerasVote blk) 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasVote blk) = D1 ('MetaData "PerasVote" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasVote" 'PrefixI 'True) (S1 ('MetaSel ('Just "pvVoteRound") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PerasRoundNo) :*: (S1 ('MetaSel ('Just "pvVoteBlock") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('Just "pvVoteVoterId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PerasVoterId))))

Methods

fromPerasVote blk → Rep (PerasVote blk) x #

toRep (PerasVote blk) x → PerasVote blk #

StandardHash blk ⇒ Show (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

showsPrecIntPerasVote blk → ShowS #

showPerasVote blk → String #

showList ∷ [PerasVote blk] → ShowS #

StandardHash blk ⇒ Eq (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

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

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

StandardHash blk ⇒ Ord (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

comparePerasVote blk → PerasVote blk → Ordering #

(<)PerasVote blk → PerasVote blk → Bool #

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

(>)PerasVote blk → PerasVote blk → Bool #

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

maxPerasVote blk → PerasVote blk → PerasVote blk #

minPerasVote blk → PerasVote blk → PerasVote blk #

StandardHash blk ⇒ NoThunks (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteRound (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteVoterId (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Serialise (HeaderHash blk) ⇒ Serialise (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteBlock (PerasVote blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

getPerasVoteBlockPerasVote blk → Point blk Source #

HasPerasVoteId (PerasVote blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteTarget (PerasVote blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

data PerasVote blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (PerasVote blk) = D1 ('MetaData "PerasVote" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasVote" 'PrefixI 'True) (S1 ('MetaSel ('Just "pvVoteRound") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PerasRoundNo) :*: (S1 ('MetaSel ('Just "pvVoteBlock") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('Just "pvVoteVoterId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PerasVoterId))))

data ValidatedPerasCert blk Source #

Constructors

ValidatedPerasCert 

Fields

Instances

Instances details
Generic (ValidatedPerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Associated Types

type Rep (ValidatedPerasCert blk) 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (ValidatedPerasCert blk) = D1 ('MetaData "ValidatedPerasCert" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "ValidatedPerasCert" 'PrefixI 'True) (S1 ('MetaSel ('Just "vpcCert") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasCert blk)) :*: S1 ('MetaSel ('Just "vpcCertBoost") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasWeight)))
StandardHash blk ⇒ Show (ValidatedPerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

StandardHash blk ⇒ Eq (ValidatedPerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

StandardHash blk ⇒ Ord (ValidatedPerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

StandardHash blk ⇒ NoThunks (ValidatedPerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasCertBoost (ValidatedPerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasCertRound (ValidatedPerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasCertBoostedBlock (ValidatedPerasCert blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (ValidatedPerasCert blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (ValidatedPerasCert blk) = D1 ('MetaData "ValidatedPerasCert" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "ValidatedPerasCert" 'PrefixI 'True) (S1 ('MetaSel ('Just "vpcCert") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasCert blk)) :*: S1 ('MetaSel ('Just "vpcCertBoost") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasWeight)))

data ValidatedPerasVote blk Source #

Constructors

ValidatedPerasVote 

Fields

Instances

Instances details
Generic (ValidatedPerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Associated Types

type Rep (ValidatedPerasVote blk) 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (ValidatedPerasVote blk) = D1 ('MetaData "ValidatedPerasVote" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "ValidatedPerasVote" 'PrefixI 'True) (S1 ('MetaSel ('Just "vpvVote") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasVote blk)) :*: S1 ('MetaSel ('Just "vpvVoteStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasVoteStake)))
StandardHash blk ⇒ Show (ValidatedPerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

StandardHash blk ⇒ Eq (ValidatedPerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

StandardHash blk ⇒ Ord (ValidatedPerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

StandardHash blk ⇒ NoThunks (ValidatedPerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteRound (ValidatedPerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteStake (ValidatedPerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteVoterId (ValidatedPerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteBlock (ValidatedPerasVote blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteId (ValidatedPerasVote blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteTarget (ValidatedPerasVote blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (ValidatedPerasVote blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (ValidatedPerasVote blk) = D1 ('MetaData "ValidatedPerasVote" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "ValidatedPerasVote" 'PrefixI 'True) (S1 ('MetaSel ('Just "vpvVote") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasVote blk)) :*: S1 ('MetaSel ('Just "vpvVoteStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasVoteStake)))

data ValidatedPerasVotesWithQuorum blk Source #

A collection of validated Peras votes that: 1. are all for the same target, and 2. have total stake above the quorum threshold for a given PerasCfg.

Instances

Instances details
Generic (ValidatedPerasVotesWithQuorum blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Associated Types

type Rep (ValidatedPerasVotesWithQuorum blk) 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (ValidatedPerasVotesWithQuorum blk) = D1 ('MetaData "ValidatedPerasVotesWithQuorum" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "ValidatedPerasVotesWithQuorum" 'PrefixI 'True) (S1 ('MetaSel ('Just "vpvqTarget") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasVoteTarget blk)) :*: (S1 ('MetaSel ('Just "vpvqVotes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty (ValidatedPerasVote blk))) :*: S1 ('MetaSel ('Just "vpvqPerasCfg") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasCfg blk)))))
StandardHash blk ⇒ Show (ValidatedPerasVotesWithQuorum blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

StandardHash blk ⇒ Eq (ValidatedPerasVotesWithQuorum blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

StandardHash blk ⇒ NoThunks (ValidatedPerasVotesWithQuorum blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (ValidatedPerasVotesWithQuorum blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

type Rep (ValidatedPerasVotesWithQuorum blk) = D1 ('MetaData "ValidatedPerasVotesWithQuorum" "Ouroboros.Consensus.Block.SupportsPeras" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "ValidatedPerasVotesWithQuorum" 'PrefixI 'True) (S1 ('MetaSel ('Just "vpvqTarget") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasVoteTarget blk)) :*: (S1 ('MetaSel ('Just "vpvqVotes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty (ValidatedPerasVote blk))) :*: S1 ('MetaSel ('Just "vpvqPerasCfg") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasCfg blk)))))

votesReachQuorumStandardHash blk ⇒ PerasCfg blk → [ValidatedPerasVote blk] → Maybe (ValidatedPerasVotesWithQuorum blk) Source #

Smart constructor for ValidatedPerasVotesReachingQuorum.

This function checks that all votes are for the same target, and that their total stake is above the quorum threshold defined in the given PerasCfg. It returns Nothing if either of these conditions is not met.

class HasPerasCertRound cert where Source #

Extract the certificate round from a Peras certificate container

class HasPerasCertBoostedBlock cert blk | cert → blk where Source #

Extract the boosted block point from a Peras certificate container

Methods

getPerasCertBoostedBlock ∷ cert → Point blk Source #

class HasPerasCertBoost cert where Source #

Extract the certificate boost from a Peras certificate container

class HasPerasVoteBlock vote blk | vote → blk where Source #

Extract the vote block point from a Peras vote container

Methods

getPerasVoteBlock ∷ vote → Point blk Source #

Instances

Instances details
HasPerasVoteBlock (PerasVote blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Methods

getPerasVoteBlockPerasVote blk → Point blk Source #

HasPerasVoteBlock (ValidatedPerasVote blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteBlock vote blk ⇒ HasPerasVoteBlock (WithArrivalTime vote) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

class HasPerasVoteVoterId vote where Source #

Extract the stake pool ID from a Peras vote container

class HasPerasVoteStake vote where Source #

Extract the vote stake from a validated Peras vote container

class HasPerasVoteTarget vote blk | vote → blk where Source #

Extract the vote target from a Peras vote container

Methods

getPerasVoteTarget ∷ vote → PerasVoteTarget blk Source #

class HasPerasVoteId vote blk | vote → blk where Source #

Extract the vote ID from a Peras vote container

Methods

getPerasVoteId ∷ vote → PerasVoteId blk Source #

Instances

Instances details
HasPerasVoteId (PerasVote blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteId (ValidatedPerasVote blk) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

HasPerasVoteId vote blk ⇒ HasPerasVoteId (WithArrivalTime vote) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Block.SupportsPeras

Convenience re-exports