ouroboros-consensus-byron-0.1.0.0: Byron ledger integration in the Ouroboros consensus layer
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Byron.Ledger.Inspect

Synopsis

Documentation

Layer around the Byron protocol update inteface

data ProtocolUpdate Source #

Wrapper around a Byron protocol update with information about its state

NOTE: We don't currently record the ProtocolParameters here because we don't really need to track them, and adding them would add a lot of output to the Show instance. We could easily add them however if that would be useful.

Constructors

ProtocolUpdate 

Fields

data UpdateState Source #

The various states a protocol update goes through

Listed in chronological order.

Constructors

UpdateRegistered SlotNo

The update was registered, but does not yet have any votes

We record the SlotNo of the slot in which the update was registered. After registration, nodes must vote on it.

UpdateActive (Set KeyHash)

The update is accumulating votes

We record which nodes have voted for the proposal. The proposal must accumulate a sufficient number of votes before it can be confirmed.

UpdateConfirmed SlotNo

The update has amassed a sufficient number of votes

We record the SlotNo of the slot in which the required threshold of votes was met. At this point 2k slots need to pass before the update can be endorsed.

UpdateStablyConfirmed (Set KeyHash)

The votes are stable. We can start to accumulate endorsements.

We record which nodes have endorsed the proposal. The proposal must accumulate a sufficient number of endorsements before it is nominated and becomes a candidate.

UpdateCandidate SlotNo EpochNo

The update has amassed a sufficient number of endorsements

We record the SlotNo of the slot in which the required threshold of endorsement was met. At this point a further 2k slots need to pass before the update becomes a stable candidate and can be adopted.

We additionally record the EpochNo in which the candidate will be adopted, if it becomes stable.

UpdateStableCandidate EpochNo

The endorsements are stable. The update will be accepted.

We record the EpochNo of the epoch in which it will become active.

protocolUpdatesLedgerConfig ByronBlockLedgerState ByronBlock → [ProtocolUpdate] Source #

All proposal updates, from new to old

Orphan instances