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

Ouroboros.Consensus.Util.TentativeState

Synopsis

Documentation

data TentativeState blk Source #

Tentative header state in the context of diffusion pipelining. This is used to check/enforce the monotonicity requirement on invalid tentative block bodies.

  • During chain selection, we maintain the last invalid tentative header to ensure that the stream of tentative headers we sent downstream whose blocks turned out to be invalid are strictly improving.
  • In the BlockFetch client, we use it to enforce this property for each upstream peer.

Instances

Instances details
Eq (SelectView (BlockProtocol blk)) ⇒ Eq (TentativeState blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Util.TentativeState

Show (SelectView (BlockProtocol blk)) ⇒ Show (TentativeState blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Util.TentativeState

Generic (TentativeState blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Util.TentativeState

Associated Types

type Rep (TentativeState blk) ∷ TypeType Source #

Methods

fromTentativeState blk → Rep (TentativeState blk) x Source #

toRep (TentativeState blk) x → TentativeState blk Source #

NoThunks (SelectView (BlockProtocol blk)) ⇒ NoThunks (TentativeState blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Util.TentativeState

Methods

noThunks ∷ Context → TentativeState blk → IO (Maybe ThunkInfo) #

wNoThunks ∷ Context → TentativeState blk → IO (Maybe ThunkInfo) #

showTypeOfProxy (TentativeState blk) → String #

type Rep (TentativeState blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Util.TentativeState

type Rep (TentativeState blk) = D1 ('MetaData "TentativeState" "Ouroboros.Consensus.Util.TentativeState" "ouroboros-consensus-0.1.0.0-inplace" 'False) (C1 ('MetaCons "LastInvalidTentative" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SelectView (BlockProtocol blk)))) :+: C1 ('MetaCons "NoLastInvalidTentative" 'PrefixI 'False) (U1TypeType))