ouroboros-consensus-0.1.0.1: Consensus layer for the Ouroboros blockchain protocol
Safe Haskell None
Language Haskell2010

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) :: Type -> Type Source #

NoThunks ( SelectView ( BlockProtocol blk)) => NoThunks ( TentativeState blk) Source #
Instance details

Defined in Ouroboros.Consensus.Util.TentativeState

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.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "LastInvalidTentative" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( SelectView ( BlockProtocol blk)))) :+: C1 (' MetaCons "NoLastInvalidTentative" ' PrefixI ' False ) ( U1 :: Type -> Type ))