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

Ouroboros.Consensus.Protocol.BFT

Synopsis

Documentation

data Bft c Source #

Basic BFT

Basic BFT is very simple:

  • No support for delegation (and hence has no need for a ledger view)
  • Requires round-robin block signing throughout (and so has no need for any chain state or cryptographic leader proofs).
  • Does not use any stateful crypto (and so has no need for node state)

Instances

Instances details
Generic ( ConsensusConfig ( Bft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

BftCrypto c => NoThunks ( ConsensusConfig ( Bft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

BftCrypto c => ConsensusProtocol ( Bft c) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type Rep ( ConsensusConfig ( Bft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type ChainDepState ( Bft c) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type ChainDepState ( Bft c) = ()
type IsLeader ( Bft c) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type IsLeader ( Bft c) = ()
type CanBeLeader ( Bft c) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type SelectView ( Bft c) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type LedgerView ( Bft c) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type LedgerView ( Bft c) = ()
type ValidationErr ( Bft c) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type ValidateView ( Bft c) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

data ConsensusConfig ( Bft c) Source #

(Static) node configuration

Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

data BftFields c toSign Source #

Constructors

BftFields

Instances

Instances details
BftCrypto c => Eq ( BftFields c toSign) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

BftCrypto c => Show ( BftFields c toSign) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

Generic ( BftFields c toSign) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

Associated Types

type Rep ( BftFields c toSign) :: Type -> Type Source #

( BftCrypto c, Typeable toSign) => NoThunks ( BftFields c toSign) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

BftCrypto c => Condense ( BftFields c toSign) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type Rep ( BftFields c toSign) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type Rep ( BftFields c toSign) = D1 (' MetaData "BftFields" "Ouroboros.Consensus.Protocol.BFT" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "BftFields" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "bftSignature") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( SignedDSIGN ( BftDSIGN c) toSign))))

data BftValidationErr Source #

Instances

Instances details
Eq BftValidationErr Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

Show BftValidationErr Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

Generic BftValidationErr Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

NoThunks BftValidationErr Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type Rep BftValidationErr Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type Rep BftValidationErr = D1 (' MetaData "BftValidationErr" "Ouroboros.Consensus.Protocol.BFT" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "BftInvalidSignature" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 String )))

Classes

data BftValidateView c Source #

Constructors

forall signed. Signable ( BftDSIGN c) signed => BftValidateView ( BftFields c signed) signed

Type instances

data family ConsensusConfig p :: Type Source #

Static configuration required to run the consensus protocol

Every method in the ConsensusProtocol class takes the consensus configuration as a parameter, so having this as a data family rather than a type family resolves most ambiguity.

Defined out of the class so that protocols can define this type without having to define the entire protocol at the same time (or indeed in the same module).

Instances

Instances details
Generic ( ConsensusConfig ( ModChainSel p s)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

Generic ( ConsensusConfig ( Bft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

Generic ( ConsensusConfig ( HardForkProtocol xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

Generic ( ConsensusConfig ( PBft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

ConsensusProtocol p => NoThunks ( ConsensusConfig ( ModChainSel p s)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

BftCrypto c => NoThunks ( ConsensusConfig ( Bft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

CanHardFork xs => NoThunks ( ConsensusConfig ( HardForkProtocol xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

NoThunks ( ConsensusConfig ( PBft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

type Rep ( ConsensusConfig ( ModChainSel p s)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

type Rep ( ConsensusConfig ( ModChainSel p s)) = D1 (' MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.ModChainSel" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "McsConsensusConfig" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "mcsConfigP") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( ConsensusConfig p))))
type Rep ( ConsensusConfig ( Bft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type Rep ( ConsensusConfig ( HardForkProtocol xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

type Rep ( ConsensusConfig ( HardForkProtocol xs)) = D1 (' MetaData "ConsensusConfig" "Ouroboros.Consensus.HardFork.Combinator.Basics" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "HardForkConsensusConfig" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "hardForkConsensusConfigK") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 SecurityParam ) :*: ( S1 (' MetaSel (' Just "hardForkConsensusConfigShape") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( Shape xs)) :*: S1 (' MetaSel (' Just "hardForkConsensusConfigPerEra") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( PerEraConsensusConfig xs)))))
type Rep ( ConsensusConfig ( PBft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

type Rep ( ConsensusConfig ( PBft c)) = D1 (' MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.PBFT" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "PBftConfig" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "pbftParams") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 PBftParams )))
data ConsensusConfig ( Bft c) Source #

(Static) node configuration

Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

data ConsensusConfig ( HardForkProtocol xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

newtype ConsensusConfig ( PBft c) Source #

(Static) node configuration

Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

newtype ConsensusConfig ( ModChainSel p s) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel