| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Cardano.Chain.Update.Validation.Registration
Description
Validation rules for registering updates
This is an implementation of the rules defined in the Byron ledger specification
Synopsis
- data Error
- = DuplicateProtocolVersion ProtocolVersion
- | DuplicateSoftwareVersion SoftwareVersion
- | InvalidProposer KeyHash
- | InvalidProtocolVersion ProtocolVersion Adopted
- | InvalidScriptVersion Word16 Word16
- | InvalidSignature
- | InvalidSoftwareVersion ApplicationVersions SoftwareVersion
- | MaxBlockSizeTooLarge (TooLarge Natural)
- | MaxTxSizeTooLarge (TooLarge Natural)
- | ProposalAttributesUnknown
- | ProposalTooLarge (TooLarge Natural)
- | SoftwareVersionError SoftwareVersionError
- | SystemTagError SystemTagError
- | NullUpdateProposal
- data Environment = Environment {}
- data State = State {}
- data ApplicationVersion = ApplicationVersion {}
- type ApplicationVersions = Map ApplicationName ApplicationVersion
- type Metadata = Map SystemTag InstallerHash
- data ProtocolUpdateProposal = ProtocolUpdateProposal {}
- type ProtocolUpdateProposals = Map UpId ProtocolUpdateProposal
- data SoftwareUpdateProposal = SoftwareUpdateProposal {}
- type SoftwareUpdateProposals = Map UpId SoftwareUpdateProposal
- registerProposal ∷ MonadError Error m ⇒ Environment → State → AProposal ByteString → m State
- data TooLarge n = TooLarge {
- tlActual ∷ n
- tlMaxBound ∷ n
- newtype Adopted = Adopted ProtocolVersion
Documentation
Error captures the ways in which registration could fail
Constructors
| DuplicateProtocolVersion ProtocolVersion | |
| DuplicateSoftwareVersion SoftwareVersion | |
| InvalidProposer KeyHash | |
| InvalidProtocolVersion ProtocolVersion Adopted | |
| InvalidScriptVersion Word16 Word16 | |
| InvalidSignature | |
| InvalidSoftwareVersion ApplicationVersions SoftwareVersion | |
| MaxBlockSizeTooLarge (TooLarge Natural) | |
| MaxTxSizeTooLarge (TooLarge Natural) | |
| ProposalAttributesUnknown | |
| ProposalTooLarge (TooLarge Natural) | |
| SoftwareVersionError SoftwareVersionError | |
| SystemTagError SystemTagError | |
| NullUpdateProposal | The update proposal proposes neither a bump in the protocol or application versions. |
data Environment Source #
Constructors
| Environment | |
State keeps track of registered protocol and software update proposals
Constructors
| State | |
data ApplicationVersion Source #
Constructors
| ApplicationVersion | |
Fields | |
Instances
data ProtocolUpdateProposal Source #
Constructors
| ProtocolUpdateProposal | |
Instances
| FromCBOR ProtocolUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration | |||||
| ToCBOR ProtocolUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Methods toCBOR ∷ ProtocolUpdateProposal → Encoding Source # encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy ProtocolUpdateProposal → Size Source # encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [ProtocolUpdateProposal] → Size Source # | |||||
| DecCBOR ProtocolUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration | |||||
| EncCBOR ProtocolUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Methods | |||||
| NFData ProtocolUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Methods rnf ∷ ProtocolUpdateProposal → () # | |||||
| Generic ProtocolUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Associated Types
Methods from ∷ ProtocolUpdateProposal → Rep ProtocolUpdateProposal x # to ∷ Rep ProtocolUpdateProposal x → ProtocolUpdateProposal # | |||||
| Show ProtocolUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Methods showsPrec ∷ Int → ProtocolUpdateProposal → ShowS # show ∷ ProtocolUpdateProposal → String # showList ∷ [ProtocolUpdateProposal] → ShowS # | |||||
| Eq ProtocolUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Methods (==) ∷ ProtocolUpdateProposal → ProtocolUpdateProposal → Bool # (/=) ∷ ProtocolUpdateProposal → ProtocolUpdateProposal → Bool # | |||||
| NoThunks ProtocolUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration | |||||
| type Rep ProtocolUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration type Rep ProtocolUpdateProposal = D1 ('MetaData "ProtocolUpdateProposal" "Cardano.Chain.Update.Validation.Registration" "cardano-ledger-byron-1.3.0.0-inplace" 'False) (C1 ('MetaCons "ProtocolUpdateProposal" 'PrefixI 'True) (S1 ('MetaSel ('Just "pupProtocolVersion") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ProtocolVersion) :*: S1 ('MetaSel ('Just "pupProtocolParameters") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ProtocolParameters))) | |||||
data SoftwareUpdateProposal Source #
Constructors
| SoftwareUpdateProposal | |
Fields | |
Instances
| FromCBOR SoftwareUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration | |||||
| ToCBOR SoftwareUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Methods toCBOR ∷ SoftwareUpdateProposal → Encoding Source # encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy SoftwareUpdateProposal → Size Source # encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [SoftwareUpdateProposal] → Size Source # | |||||
| DecCBOR SoftwareUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration | |||||
| EncCBOR SoftwareUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Methods | |||||
| NFData SoftwareUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Methods rnf ∷ SoftwareUpdateProposal → () # | |||||
| Generic SoftwareUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Associated Types
Methods from ∷ SoftwareUpdateProposal → Rep SoftwareUpdateProposal x # to ∷ Rep SoftwareUpdateProposal x → SoftwareUpdateProposal # | |||||
| Show SoftwareUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Methods showsPrec ∷ Int → SoftwareUpdateProposal → ShowS # show ∷ SoftwareUpdateProposal → String # showList ∷ [SoftwareUpdateProposal] → ShowS # | |||||
| Eq SoftwareUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration Methods (==) ∷ SoftwareUpdateProposal → SoftwareUpdateProposal → Bool # (/=) ∷ SoftwareUpdateProposal → SoftwareUpdateProposal → Bool # | |||||
| NoThunks SoftwareUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration | |||||
| type Rep SoftwareUpdateProposal Source # | |||||
Defined in Cardano.Chain.Update.Validation.Registration type Rep SoftwareUpdateProposal = D1 ('MetaData "SoftwareUpdateProposal" "Cardano.Chain.Update.Validation.Registration" "cardano-ledger-byron-1.3.0.0-inplace" 'False) (C1 ('MetaCons "SoftwareUpdateProposal" 'PrefixI 'True) (S1 ('MetaSel ('Just "supSoftwareVersion") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SoftwareVersion) :*: S1 ('MetaSel ('Just "supSoftwareMetadata") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Metadata))) | |||||
registerProposal ∷ MonadError Error m ⇒ Environment → State → AProposal ByteString → m State Source #
Register an update proposal after verifying its signature and validating
its contents. This corresponds to the UPREG rules in the spec.
Constructors
| TooLarge | |
Fields
| |