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

Ouroboros.Consensus.Storage.PerasVoteDB.API

Contents

Synopsis

Documentation

data PerasVoteDB (m ∷ TypeType) blk Source #

Constructors

PerasVoteDB 

Fields

Instances

Instances details
NoThunks (PerasVoteDB m blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

data AddPerasVoteResult blk Source #

Instances

Instances details
Generic (AddPerasVoteResult blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

Associated Types

type Rep (AddPerasVoteResult blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

type Rep (AddPerasVoteResult blk) = D1 ('MetaData "AddPerasVoteResult" "Ouroboros.Consensus.Storage.PerasVoteDB.API" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasVoteAlreadyInDB" 'PrefixI 'False) (U1TypeType) :+: (C1 ('MetaCons "AddedPerasVoteButDidntGenerateNewCert" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "AddedPerasVoteAndGeneratedNewCert" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ValidatedPerasCert blk)))))
StandardHash blk ⇒ Show (AddPerasVoteResult blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

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

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

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

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

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

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

type Rep (AddPerasVoteResult blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

type Rep (AddPerasVoteResult blk) = D1 ('MetaData "AddPerasVoteResult" "Ouroboros.Consensus.Storage.PerasVoteDB.API" "ouroboros-consensus-1.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasVoteAlreadyInDB" 'PrefixI 'False) (U1TypeType) :+: (C1 ('MetaCons "AddedPerasVoteButDidntGenerateNewCert" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "AddedPerasVoteAndGeneratedNewCert" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ValidatedPerasCert blk)))))

data PerasVoteTicketNo Source #

A sequence number, incremented every time we receive a new vote.

Instances

Instances details
Enum PerasVoteTicketNo Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

Show PerasVoteTicketNo Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

Eq PerasVoteTicketNo Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

Ord PerasVoteTicketNo Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

NoThunks PerasVoteTicketNo Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.PerasVoteDB.API

Invariants

prop_addVoteThenGetVoteIdsMonadSTM m ⇒ PerasVoteDB m blk → WithArrivalTime (ValidatedPerasVote blk) → m Bool Source #

After adding a vote, its ID should be present in getVoteIds.

prop_getVotesAfterZeroMonadSTM m ⇒ PerasVoteDB m blk → m Bool Source #

getVotesAfter with ticket 0 should return all votes in the database.

prop_getVotesAfterMonotonicMonadSTM m ⇒ PerasVoteDB m blk → PerasVoteTicketNo → m Bool Source #

getVotesAfter returns strictly increasing ticket numbers.

prop_garbageCollectRemovesOldVotesMonadSTM m ⇒ PerasVoteDB m blk → PerasRoundNo → m Bool Source #

After garbage collection for round N, no votes for rounds <N should remain.

prop_addVoteThenGetForgedCertForRound ∷ (MonadSTM m, StandardHash blk) ⇒ PerasVoteDB m blk → WithArrivalTime (ValidatedPerasVote blk) → m Bool Source #

When adding a vote results in a certificate just being forged for a round, this certificate should also be retrievable via getForgedCertForRound.