Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Cardano.Node.Protocol.Shelley
Contents
Synopsis
- mkSomeConsensusProtocolShelley :: NodeShelleyProtocolConfiguration -> Maybe ProtocolFilepaths -> ExceptT ShelleyProtocolInstantiationError IO SomeConsensusProtocol
- data ShelleyProtocolInstantiationError
- data GenesisReadError
- newtype GenesisValidationError = GenesisValidationErrors [ValidationErr]
- data PraosLeaderCredentialsError
- = CredentialsReadError !FilePath !IOException
- | EnvelopeParseError !FilePath !String
- | FileError !(FileError TextEnvelopeError)
- | OCertNotSpecified
- | VRFKeyNotSpecified
- | KESKeyNotSpecified
- | MismatchedKesKey FilePath FilePath
- readGenesis :: GenesisFile -> Maybe GenesisHash -> ExceptT GenesisReadError IO (ShelleyGenesis StandardCrypto, GenesisHash)
- readGenesisAny :: FromJSON genesis => GenesisFile -> Maybe GenesisHash -> ExceptT GenesisReadError IO (genesis, GenesisHash)
- readLeaderCredentials :: Maybe ProtocolFilepaths -> ExceptT PraosLeaderCredentialsError IO [ShelleyLeaderCredentials StandardCrypto]
- genesisHashToPraosNonce :: GenesisHash -> Nonce
- validateGenesis :: ShelleyGenesis StandardCrypto -> ExceptT GenesisValidationError IO ()
Documentation
mkSomeConsensusProtocolShelley :: NodeShelleyProtocolConfiguration -> Maybe ProtocolFilepaths -> ExceptT ShelleyProtocolInstantiationError IO SomeConsensusProtocol Source #
Make SomeConsensusProtocol
using the Shelley instance.
This lets us handle multiple protocols in a generic way.
This also serves a purpose as a sanity check that we have all the necessary type class instances available.
Errors
data ShelleyProtocolInstantiationError Source #
Constructors
GenesisReadError GenesisReadError | |
GenesisValidationError GenesisValidationError | |
PraosLeaderCredentialsError PraosLeaderCredentialsError |
Instances
Show ShelleyProtocolInstantiationError Source # | |
Defined in Cardano.Node.Protocol.Shelley | |
Error ShelleyProtocolInstantiationError Source # | |
Defined in Cardano.Node.Protocol.Shelley Methods prettyError :: ShelleyProtocolInstantiationError -> Doc ann |
data GenesisReadError Source #
Constructors
GenesisReadFileError !FilePath !IOException | |
GenesisHashMismatch !GenesisHash !GenesisHash | |
GenesisDecodeError !FilePath !String |
Instances
Show GenesisReadError Source # | |
Defined in Cardano.Node.Protocol.Shelley | |
Error GenesisReadError Source # | |
Defined in Cardano.Node.Protocol.Shelley Methods prettyError :: GenesisReadError -> Doc ann |
newtype GenesisValidationError Source #
Constructors
GenesisValidationErrors [ValidationErr] |
Instances
Show GenesisValidationError Source # | |
Defined in Cardano.Node.Protocol.Shelley | |
Error GenesisValidationError Source # | |
Defined in Cardano.Node.Protocol.Shelley Methods prettyError :: GenesisValidationError -> Doc ann |
data PraosLeaderCredentialsError Source #
Constructors
CredentialsReadError !FilePath !IOException | |
EnvelopeParseError !FilePath !String | |
FileError !(FileError TextEnvelopeError) | |
OCertNotSpecified | |
VRFKeyNotSpecified | |
KESKeyNotSpecified | |
MismatchedKesKey FilePath FilePath |
Instances
Show PraosLeaderCredentialsError Source # | |
Defined in Cardano.Node.Protocol.Shelley | |
Error PraosLeaderCredentialsError Source # | |
Defined in Cardano.Node.Protocol.Shelley Methods prettyError :: PraosLeaderCredentialsError -> Doc ann |
Reusable parts
readGenesis :: GenesisFile -> Maybe GenesisHash -> ExceptT GenesisReadError IO (ShelleyGenesis StandardCrypto, GenesisHash) Source #
readGenesisAny :: FromJSON genesis => GenesisFile -> Maybe GenesisHash -> ExceptT GenesisReadError IO (genesis, GenesisHash) Source #
readLeaderCredentials :: Maybe ProtocolFilepaths -> ExceptT PraosLeaderCredentialsError IO [ShelleyLeaderCredentials StandardCrypto] Source #
genesisHashToPraosNonce :: GenesisHash -> Nonce Source #
validateGenesis :: ShelleyGenesis StandardCrypto -> ExceptT GenesisValidationError IO () Source #