From ebdd30f8f7a85133f6325bb376792c0054a6837e Mon Sep 17 00:00:00 2001 From: Jordan Millar Date: Fri, 31 Jul 2020 09:09:12 +0100 Subject: [PATCH] cardano-node module restructuring --- cardano-cli/cardano-cli.cabal | 3 +- .../src/Cardano/CLI/Byron/Delegation.hs | 4 +- cardano-cli/src/Cardano/CLI/Byron/Key.hs | 2 +- .../CLI/{Legacy/Byron.hs => Byron/Legacy.hs} | 2 +- cardano-node/app/cardano-node.hs | 9 ++-- cardano-node/cardano-node.cabal | 20 +++++--- cardano-node/chairman/chairman.hs | 1 + cardano-node/src/Cardano/Common/Help.hs | 31 ------------ .../Node/{ => Configuration}/Logging.hs | 2 +- .../Node/{ => Configuration}/Socket.hs | 2 +- .../Node/{ => Configuration}/Topology.hs | 2 +- .../Cardano/Node/{ => Handlers}/Shutdown.hs | 2 +- .../{TopHandler.hs => Handlers/TopLevel.hs} | 5 +- cardano-node/src/Cardano/Node/Parsers.hs | 24 ++++++++- cardano-node/src/Cardano/Node/Protocol.hs | 2 +- .../src/Cardano/Node/Protocol/Types.hs | 47 ++++++++++++++++- cardano-node/src/Cardano/Node/Run.hs | 15 +++--- cardano-node/src/Cardano/Node/TUI/Drawing.hs | 2 +- .../src/Cardano/Node/TUI/EventHandler.hs | 2 +- cardano-node/src/Cardano/Node/Types.hs | 50 ++----------------- .../TraceConfig.hs => Tracing/Config.hs} | 2 +- cardano-node/src/Cardano/Tracing/Tracers.hs | 2 +- cardano-node/test/Test/Cardano/Node/Gen.hs | 3 +- 23 files changed, 115 insertions(+), 119 deletions(-) rename cardano-cli/src/Cardano/CLI/{Legacy/Byron.hs => Byron/Legacy.hs} (98%) delete mode 100644 cardano-node/src/Cardano/Common/Help.hs rename cardano-node/src/Cardano/Node/{ => Configuration}/Logging.hs (99%) rename cardano-node/src/Cardano/Node/{ => Configuration}/Socket.hs (99%) rename cardano-node/src/Cardano/Node/{ => Configuration}/Topology.hs (99%) rename cardano-node/src/Cardano/Node/{ => Handlers}/Shutdown.hs (99%) rename cardano-node/src/Cardano/Node/{TopHandler.hs => Handlers/TopLevel.hs} (98%) rename cardano-node/src/Cardano/{Node/TraceConfig.hs => Tracing/Config.hs} (99%) diff --git a/cardano-cli/cardano-cli.cabal b/cardano-cli/cardano-cli.cabal index 76c9131f230..a55559249ab 100644 --- a/cardano-cli/cardano-cli.cabal +++ b/cardano-cli/cardano-cli.cabal @@ -29,14 +29,13 @@ library Cardano.CLI.Environment - Cardano.CLI.Legacy.Byron - Cardano.CLI.Byron.Commands Cardano.CLI.Byron.Parsers Cardano.CLI.Byron.Run Cardano.CLI.Byron.Delegation Cardano.CLI.Byron.Genesis Cardano.CLI.Byron.Key + Cardano.CLI.Byron.Legacy Cardano.CLI.Byron.Tx Cardano.CLI.Byron.Query Cardano.CLI.Byron.UpdateProposal diff --git a/cardano-cli/src/Cardano/CLI/Byron/Delegation.hs b/cardano-cli/src/Cardano/CLI/Byron/Delegation.hs index 0c99690c628..a88eb73a212 100644 --- a/cardano-cli/src/Cardano/CLI/Byron/Delegation.hs +++ b/cardano-cli/src/Cardano/CLI/Byron/Delegation.hs @@ -22,14 +22,14 @@ import Formatting (Format, sformat) import Cardano.Binary (Annotated (..), serialize') import qualified Cardano.Chain.Delegation as Dlg import Cardano.Chain.Slotting (EpochNumber) -import qualified Cardano.CLI.Legacy.Byron as Legacy +import qualified Cardano.CLI.Byron.Legacy as Legacy import Cardano.Crypto (ProtocolMagicId, SigningKey) import qualified Cardano.Crypto as Crypto import Cardano.CLI.Byron.Key (ByronKeyFailure, CardanoEra (..), renderByronKeyFailure, serialiseSigningKey) import Cardano.CLI.Helpers (textShow) -import Cardano.CLI.Types (CertificateFile(..)) +import Cardano.CLI.Types (CertificateFile (..)) data ByronDelegationError = CertificateValidationErrors !FilePath ![Text] diff --git a/cardano-cli/src/Cardano/CLI/Byron/Key.hs b/cardano-cli/src/Cardano/CLI/Byron/Key.hs index e14d8da3d46..cd78fba67e8 100644 --- a/cardano-cli/src/Cardano/CLI/Byron/Key.hs +++ b/cardano-cli/src/Cardano/CLI/Byron/Key.hs @@ -43,8 +43,8 @@ import System.IO (hFlush, hSetEcho, stdin, stdout) import qualified Cardano.Chain.Common as Common import qualified Cardano.Chain.Genesis as Genesis +import qualified Cardano.CLI.Byron.Legacy as Legacy import Cardano.CLI.Helpers (textShow) -import qualified Cardano.CLI.Legacy.Byron as Legacy import Cardano.CLI.Types import Cardano.Crypto (SigningKey (..)) import qualified Cardano.Crypto.Random as Crypto diff --git a/cardano-cli/src/Cardano/CLI/Legacy/Byron.hs b/cardano-cli/src/Cardano/CLI/Byron/Legacy.hs similarity index 98% rename from cardano-cli/src/Cardano/CLI/Legacy/Byron.hs rename to cardano-cli/src/Cardano/CLI/Byron/Legacy.hs index cf682903907..28e53c9a7eb 100644 --- a/cardano-cli/src/Cardano/CLI/Legacy/Byron.hs +++ b/cardano-cli/src/Cardano/CLI/Byron/Legacy.hs @@ -4,7 +4,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} -module Cardano.CLI.Legacy.Byron ( +module Cardano.CLI.Byron.Legacy ( LegacyDelegateKey(..) , encodeLegacyDelegateKey , decodeLegacyDelegateKey diff --git a/cardano-node/app/cardano-node.hs b/cardano-node/app/cardano-node.hs index 8ca58a49937..d50044e5182 100644 --- a/cardano-node/app/cardano-node.hs +++ b/cardano-node/app/cardano-node.hs @@ -9,17 +9,18 @@ import Prelude (String) import Data.Semigroup ((<>)) import Options.Applicative import qualified Options.Applicative as Opt +import Options.Applicative.Help ((<$$>)) import Cardano.Config.Git.Rev (gitRev) import Data.Version (showVersion) import Paths_cardano_node (version) import System.Info (arch, compilerName, compilerVersion, os) -import Cardano.Common.Help -import Cardano.Node.Logging (createLoggingLayer) -import Cardano.Node.Parsers (nodeCLIParser) +import Cardano.Node.Configuration.Logging (createLoggingLayer) +import Cardano.Node.Handlers.TopLevel +import Cardano.Node.Parsers (nodeCLIParser, parserHelpHeader, parserHelpOptions, + renderHelpDoc) import Cardano.Node.Run (runNode) -import Cardano.Node.TopHandler import Cardano.Node.Types (NodeCLI (..)) main :: IO () diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index ef793ebd243..7bde976365b 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -33,8 +33,10 @@ library hs-source-dirs: src - exposed-modules: Cardano.Common.Help - Cardano.Node.Logging + exposed-modules: Cardano.Node.Configuration.Topology + Cardano.Node.Configuration.Logging + Cardano.Node.Handlers.Shutdown + Cardano.Node.Handlers.TopLevel Cardano.Node.Orphans Cardano.Node.Protocol Cardano.Node.Protocol.Byron @@ -44,11 +46,8 @@ library Cardano.Node.Protocol.Types Cardano.Node.Parsers Cardano.Node.Run - Cardano.Node.Shutdown - Cardano.Node.TopHandler - Cardano.Node.Topology - Cardano.Node.TraceConfig Cardano.Node.Types + Cardano.Tracing.Config Cardano.Tracing.Constraints Cardano.Tracing.Kernel Cardano.Tracing.Metrics @@ -65,7 +64,7 @@ library other-modules: Paths_cardano_node - Cardano.Node.Socket + Cardano.Node.Configuration.Socket Cardano.Tracing.MicroBenchmarking build-depends: aeson @@ -147,10 +146,13 @@ library cardano-node-config hs-source-dirs: src exposed-modules: Cardano.Node.Orphans + Cardano.Node.Protocol.Types Cardano.Node.Types - Cardano.Node.TraceConfig + Cardano.Tracing.Config + Cardano.Tracing.Constraints Cardano.Tracing.Metrics Cardano.Tracing.OrphanInstances.Common + Cardano.Tracing.Queries build-depends: aeson , base >=4.12 && <5 @@ -163,11 +165,13 @@ library cardano-node-config , cardano-config , cardano-prelude , cardano-slotting + , containers , filepath , iohk-monitoring , iproute , network , ouroboros-consensus + , ouroboros-consensus-cardano , ouroboros-consensus-byron , ouroboros-consensus-shelley , ouroboros-consensus-mock diff --git a/cardano-node/chairman/chairman.hs b/cardano-node/chairman/chairman.hs index 166a8d1d571..dff63fbdfac 100644 --- a/cardano-node/chairman/chairman.hs +++ b/cardano-node/chairman/chairman.hs @@ -23,6 +23,7 @@ import Cardano.Api.Protocol.Shelley import Cardano.Api.Protocol.Types import Cardano.Api.Typed (NetworkMagic (..)) import Cardano.Chairman (chairmanTest) +import Cardano.Node.Protocol.Types (Protocol (..)) import Cardano.Node.Types main :: IO () diff --git a/cardano-node/src/Cardano/Common/Help.hs b/cardano-node/src/Cardano/Common/Help.hs deleted file mode 100644 index 4cf00f5e66f..00000000000 --- a/cardano-node/src/Cardano/Common/Help.hs +++ /dev/null @@ -1,31 +0,0 @@ -module Cardano.Common.Help - ( parserHelpHeader - , parserHelpOptions - , renderHelpDoc - -- * Re-exports - , OptI.Doc - , (<$$>) - ) -where - -import Prelude - -import Data.Maybe (fromMaybe) -import qualified Options.Applicative as Opt -import Options.Applicative.Help ((<$$>)) -import qualified Options.Applicative.Help as OptI - --- | Produce just the brief help header for a given CLI option parser, --- without the options. -parserHelpHeader :: String -> Opt.Parser a -> OptI.Doc -parserHelpHeader execName = flip (OptI.parserUsage (Opt.prefs mempty)) execName - --- | Produce just the options help for a given CLI option parser, --- without the header. -parserHelpOptions :: Opt.Parser a -> OptI.Doc -parserHelpOptions = fromMaybe mempty . OptI.unChunk . OptI.fullDesc (Opt.prefs mempty) - --- | Render the help pretty document. -renderHelpDoc :: Int -> OptI.Doc -> String -renderHelpDoc cols = - (`OptI.displayS` "") . OptI.renderPretty 1.0 cols diff --git a/cardano-node/src/Cardano/Node/Logging.hs b/cardano-node/src/Cardano/Node/Configuration/Logging.hs similarity index 99% rename from cardano-node/src/Cardano/Node/Logging.hs rename to cardano-node/src/Cardano/Node/Configuration/Logging.hs index 36a4bb98f0d..9350d9cc559 100644 --- a/cardano-node/src/Cardano/Node/Logging.hs +++ b/cardano-node/src/Cardano/Node/Configuration/Logging.hs @@ -9,7 +9,7 @@ #define UNIX #endif -module Cardano.Node.Logging +module Cardano.Node.Configuration.Logging ( LoggingLayer (..) , createLoggingLayer , shutdownLoggingLayer diff --git a/cardano-node/src/Cardano/Node/Socket.hs b/cardano-node/src/Cardano/Node/Configuration/Socket.hs similarity index 99% rename from cardano-node/src/Cardano/Node/Socket.hs rename to cardano-node/src/Cardano/Node/Configuration/Socket.hs index 3828733e18a..a715379c033 100644 --- a/cardano-node/src/Cardano/Node/Socket.hs +++ b/cardano-node/src/Cardano/Node/Configuration/Socket.hs @@ -2,7 +2,7 @@ {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE ScopedTypeVariables #-} -module Cardano.Node.Socket +module Cardano.Node.Configuration.Socket ( gatherConfiguredSockets , SocketOrSocketInfo(..) , SocketConfigError(..) diff --git a/cardano-node/src/Cardano/Node/Topology.hs b/cardano-node/src/Cardano/Node/Configuration/Topology.hs similarity index 99% rename from cardano-node/src/Cardano/Node/Topology.hs rename to cardano-node/src/Cardano/Node/Configuration/Topology.hs index c419618360f..0ff699bf039 100644 --- a/cardano-node/src/Cardano/Node/Topology.hs +++ b/cardano-node/src/Cardano/Node/Configuration/Topology.hs @@ -1,6 +1,6 @@ {-# LANGUAGE OverloadedStrings #-} -module Cardano.Node.Topology +module Cardano.Node.Configuration.Topology ( TopologyError(..) , NetworkTopology(..) , NodeHostAddress(..) diff --git a/cardano-node/src/Cardano/Node/Shutdown.hs b/cardano-node/src/Cardano/Node/Handlers/Shutdown.hs similarity index 99% rename from cardano-node/src/Cardano/Node/Shutdown.hs rename to cardano-node/src/Cardano/Node/Handlers/Shutdown.hs index 38ff2d3ef4b..427e63ca248 100644 --- a/cardano-node/src/Cardano/Node/Shutdown.hs +++ b/cardano-node/src/Cardano/Node/Handlers/Shutdown.hs @@ -2,7 +2,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} -module Cardano.Node.Shutdown +module Cardano.Node.Handlers.Shutdown ( -- * Generalised shutdown handling ShutdownFDs diff --git a/cardano-node/src/Cardano/Node/TopHandler.hs b/cardano-node/src/Cardano/Node/Handlers/TopLevel.hs similarity index 98% rename from cardano-node/src/Cardano/Node/TopHandler.hs rename to cardano-node/src/Cardano/Node/Handlers/TopLevel.hs index a641581c777..d13532d0f78 100644 --- a/cardano-node/src/Cardano/Node/TopHandler.hs +++ b/cardano-node/src/Cardano/Node/Handlers/TopLevel.hs @@ -1,7 +1,6 @@ -module Cardano.Node.TopHandler +module Cardano.Node.Handlers.TopLevel ( toplevelExceptionHandler - ) -where + ) where -- The code in this module derives from multiple authors over many years. -- It is all under the BSD3 license below. diff --git a/cardano-node/src/Cardano/Node/Parsers.hs b/cardano-node/src/Cardano/Node/Parsers.hs index f6b60c64f4c..0b826e5b82b 100644 --- a/cardano-node/src/Cardano/Node/Parsers.hs +++ b/cardano-node/src/Cardano/Node/Parsers.hs @@ -3,14 +3,20 @@ module Cardano.Node.Parsers ( nodeCLIParser + , parserHelpHeader + , parserHelpOptions + , renderHelpDoc ) where import Cardano.Prelude hiding (option) import Prelude (String) +import Data.Maybe (fromMaybe) import Network.Socket (PortNumber) import Options.Applicative hiding (str) -import System.Posix.Types (Fd(..)) +import qualified Options.Applicative as Opt +import qualified Options.Applicative.Help as OptI +import System.Posix.Types (Fd (..)) import Ouroboros.Network.Block (MaxSlotNo (..), SlotNo (..)) @@ -250,3 +256,19 @@ parseVrfKeyFilePath = <> help "Path to the VRF signing key." <> completer (bashCompleter "file") ) + + +-- | Produce just the brief help header for a given CLI option parser, +-- without the options. +parserHelpHeader :: String -> Opt.Parser a -> OptI.Doc +parserHelpHeader execName = flip (OptI.parserUsage (Opt.prefs mempty)) execName + +-- | Produce just the options help for a given CLI option parser, +-- without the header. +parserHelpOptions :: Opt.Parser a -> OptI.Doc +parserHelpOptions = fromMaybe mempty . OptI.unChunk . OptI.fullDesc (Opt.prefs mempty) + +-- | Render the help pretty document. +renderHelpDoc :: Int -> OptI.Doc -> String +renderHelpDoc cols = + (`OptI.displayS` "") . OptI.renderPretty 1.0 cols diff --git a/cardano-node/src/Cardano/Node/Protocol.hs b/cardano-node/src/Cardano/Node/Protocol.hs index 632f4d178c5..3849f658270 100644 --- a/cardano-node/src/Cardano/Node/Protocol.hs +++ b/cardano-node/src/Cardano/Node/Protocol.hs @@ -18,7 +18,7 @@ import Cardano.Node.Protocol.Byron import Cardano.Node.Protocol.Cardano import Cardano.Node.Protocol.Mock import Cardano.Node.Protocol.Shelley -import Cardano.Node.Protocol.Types (SomeConsensusProtocol (..)) +import Cardano.Node.Protocol.Types (MockProtocol (..), SomeConsensusProtocol (..)) ------------------------------------------------------------------------------ -- Conversions from configuration into specific protocols and their params diff --git a/cardano-node/src/Cardano/Node/Protocol/Types.hs b/cardano-node/src/Cardano/Node/Protocol/Types.hs index 8313c5373f4..7c9e9593fd9 100644 --- a/cardano-node/src/Cardano/Node/Protocol/Types.hs +++ b/cardano-node/src/Cardano/Node/Protocol/Types.hs @@ -1,15 +1,23 @@ {-# LANGUAGE ConstraintKinds #-} +{-# LANGUAGE DeriveAnyClass #-} +{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTSyntax #-} +{-# LANGUAGE StandaloneDeriving #-} module Cardano.Node.Protocol.Types - ( SomeConsensusProtocol(..) + ( MockProtocol(..) + , Protocol(..) + , SomeConsensusProtocol(..) , SomeConsensusProtocolConstraints ) where import Cardano.Prelude +import Control.Monad.Fail (fail) +import Data.Aeson + import Cardano.BM.Tracing (Transformable) import Ouroboros.Consensus.Block (BlockProtocol, ForgeState (..)) import qualified Ouroboros.Consensus.Cardano as Consensus (Protocol) @@ -18,6 +26,43 @@ import Ouroboros.Consensus.Node.Run (RunNode) import Cardano.Tracing.Constraints (TraceConstraints) import Cardano.Tracing.Metrics (HasKESMetricsData) +data Protocol = MockProtocol !MockProtocol + | ByronProtocol + | ShelleyProtocol + | CardanoProtocol + deriving (Eq, Show, Generic) + +deriving instance NFData Protocol +deriving instance NoUnexpectedThunks Protocol + +instance FromJSON Protocol where + parseJSON = + withText "Protocol" $ \str -> case str of + + -- The new names + "MockBFT" -> pure (MockProtocol MockBFT) + "MockPBFT" -> pure (MockProtocol MockPBFT) + "MockPraos" -> pure (MockProtocol MockPraos) + "Byron" -> pure ByronProtocol + "Shelley" -> pure ShelleyProtocol + "Cardano" -> pure CardanoProtocol + + -- The old names + "BFT" -> pure (MockProtocol MockBFT) + --"MockPBFT" -- same as new name + "Praos" -> pure (MockProtocol MockPraos) + "RealPBFT" -> pure ByronProtocol + "TPraos" -> pure ShelleyProtocol + + _ -> fail $ "Parsing of Protocol failed. " + <> show str <> " is not a valid protocol" + +data MockProtocol = MockBFT | MockPBFT | MockPraos + deriving (Eq, Show, Generic) + +deriving instance NFData MockProtocol +deriving instance NoUnexpectedThunks MockProtocol + type SomeConsensusProtocolConstraints blk = ( HasKESMetricsData blk , RunNode blk diff --git a/cardano-node/src/Cardano/Node/Run.hs b/cardano-node/src/Cardano/Node/Run.hs index d0956882207..8dd1506d86b 100644 --- a/cardano-node/src/Cardano/Node/Run.hs +++ b/cardano-node/src/Cardano/Node/Run.hs @@ -12,8 +12,7 @@ module Cardano.Node.Run ( runNode - ) -where + ) where import Cardano.Prelude hiding (ByteString, atomically, take, trace) import Prelude (String, error) @@ -47,11 +46,11 @@ import Cardano.BM.Data.Transformers (setHostname) import Cardano.BM.Trace import Cardano.Config.Git.Rev (gitRev) -import Cardano.Node.Logging (LoggingLayer (..), Severity (..), shutdownLoggingLayer) +import Cardano.Node.Configuration.Logging (LoggingLayer (..), Severity (..), shutdownLoggingLayer) #ifdef UNIX -import Cardano.Node.TraceConfig (traceBlockFetchDecisions) +import Cardano.Tracing.Config (traceBlockFetchDecisions) #endif -import Cardano.Node.TraceConfig (TraceOptions (..), TraceSelection (..)) +import Cardano.Tracing.Config (TraceOptions (..), TraceSelection (..)) import Cardano.Node.Types import Ouroboros.Consensus.Block (BlockProtocol) @@ -78,9 +77,9 @@ import Ouroboros.Consensus.Storage.VolatileDB (BlockValidationPolicy ( import Cardano.Node.Protocol (SomeConsensusProtocol (..), mkConsensusProtocol, renderProtocolInstantiationError) -import Cardano.Node.Shutdown -import Cardano.Node.Socket (SocketOrSocketInfo (..), gatherConfiguredSockets) -import Cardano.Node.Topology +import Cardano.Node.Handlers.Shutdown +import Cardano.Node.Configuration.Socket (SocketOrSocketInfo (..), gatherConfiguredSockets) +import Cardano.Node.Configuration.Topology import Cardano.Tracing.Kernel import Cardano.Tracing.Peer import Cardano.Tracing.Tracers diff --git a/cardano-node/src/Cardano/Node/TUI/Drawing.hs b/cardano-node/src/Cardano/Node/TUI/Drawing.hs index 90e51381466..977dba6abdb 100644 --- a/cardano-node/src/Cardano/Node/TUI/Drawing.hs +++ b/cardano-node/src/Cardano/Node/TUI/Drawing.hs @@ -39,7 +39,7 @@ import qualified Graphics.Vty as Vty import Numeric (showFFloat) import Text.Printf (printf) -import Cardano.Node.Types (Protocol (..)) +import Cardano.Node.Protocol.Types (Protocol (..)) import Cardano.Tracing.Peer (Peer (..), ppPeer) data ColorTheme diff --git a/cardano-node/src/Cardano/Node/TUI/EventHandler.hs b/cardano-node/src/Cardano/Node/TUI/EventHandler.hs index e123a2f867f..c906cf8604c 100644 --- a/cardano-node/src/Cardano/Node/TUI/EventHandler.hs +++ b/cardano-node/src/Cardano/Node/TUI/EventHandler.hs @@ -29,9 +29,9 @@ import Cardano.BM.Data.Backend (BackendKind (..), IsBackend (..), IsEf import Cardano.BM.Data.Counter (Platform (..)) import Cardano.BM.Data.LogItem (LOContent (..), LOMeta (..), LogObject (..), utc2ns) import Cardano.Config.Git.Rev (gitRev) +import Cardano.Node.Protocol.Types (MockProtocol (..), Protocol (..)) import Cardano.Node.TUI.Drawing (ColorTheme (..), LiveViewState (..), LiveViewThread (..), Screen (..), darkTheme, drawUI, lightTheme) -import Cardano.Node.Types (MockProtocol (..), Protocol (..)) import Paths_cardano_node (version) diff --git a/cardano-node/src/Cardano/Node/Types.hs b/cardano-node/src/Cardano/Node/Types.hs index f0416ba5b67..b3cb1addb5e 100644 --- a/cardano-node/src/Cardano/Node/Types.hs +++ b/cardano-node/src/Cardano/Node/Types.hs @@ -1,9 +1,6 @@ -{-# LANGUAGE DeriveAnyClass #-} -{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE GeneralisedNewtypeDeriving #-} {-# LANGUAGE NamedFieldPuns #-} -{-# LANGUAGE StandaloneDeriving #-} module Cardano.Node.Types ( ConfigError(..) @@ -12,9 +9,7 @@ module Cardano.Node.Types , GenesisFile(..) , NodeCLI(..) , NodeConfiguration(..) - , Protocol(..) , ProtocolFilepaths (..) - , MockProtocol(..) , GenesisHash(..) , MaxConcurrencyBulkSync(..) , MaxConcurrencyDeadline(..) @@ -28,7 +23,6 @@ module Cardano.Node.Types , NodeProtocolMode(..) , SocketPath(..) , TopologyFile(..) - , TraceOptions(..) , ViewMode(..) , ncProtocol , parseNodeConfiguration @@ -39,7 +33,7 @@ module Cardano.Node.Types import Cardano.Prelude import Prelude (String) -import Control.Monad.Fail (fail) +import Control.Monad (fail) import Data.Aeson import Data.IP (IP) import qualified Data.Text as Text @@ -52,7 +46,8 @@ import Cardano.Api.Typed (EpochNo) import qualified Cardano.Chain.Update as Byron import Cardano.Crypto (RequiresNetworkMagic (..)) import qualified Cardano.Crypto.Hash as Crypto -import Cardano.Node.TraceConfig (TraceOptions (..), traceConfigParser) +import Cardano.Node.Protocol.Types (MockProtocol (..), Protocol (..)) +import Cardano.Tracing.Config (TraceOptions (..), traceConfigParser) import Ouroboros.Consensus.NodeId (CoreNodeId (..)) import Ouroboros.Network.Block (MaxSlotNo (..)) @@ -328,37 +323,6 @@ instance FromJSON NodeConfiguration where npcShelleyHardForkNotBeforeEpoch } -data Protocol = MockProtocol !MockProtocol - | ByronProtocol - | ShelleyProtocol - | CardanoProtocol - deriving (Eq, Show, Generic) - -instance FromJSON Protocol where - parseJSON = - withText "Protocol" $ \str -> case str of - - -- The new names - "MockBFT" -> pure (MockProtocol MockBFT) - "MockPBFT" -> pure (MockProtocol MockPBFT) - "MockPraos" -> pure (MockProtocol MockPraos) - "Byron" -> pure ByronProtocol - "Shelley" -> pure ShelleyProtocol - "Cardano" -> pure CardanoProtocol - - -- The old names - "BFT" -> pure (MockProtocol MockBFT) - --"MockPBFT" -- same as new name - "Praos" -> pure (MockProtocol MockPraos) - "RealPBFT" -> pure ByronProtocol - "TPraos" -> pure ShelleyProtocol - - _ -> fail $ "Parsing of Protocol failed. " - <> show str <> " is not a valid protocol" - -deriving instance NFData Protocol -deriving instance NoUnexpectedThunks Protocol - data ProtocolFilepaths = ProtocolFilepaths { byronCertFile :: !(Maybe FilePath) @@ -368,14 +332,6 @@ data ProtocolFilepaths = , shelleyCertFile :: !(Maybe FilePath) } -data MockProtocol = MockBFT - | MockPBFT - | MockPraos - deriving (Eq, Show, Generic) - -deriving instance NFData MockProtocol -deriving instance NoUnexpectedThunks MockProtocol - newtype GenesisHash = GenesisHash (Crypto.Hash Crypto.Blake2b_256 ByteString) deriving newtype (Eq, Show, ToJSON, FromJSON) diff --git a/cardano-node/src/Cardano/Node/TraceConfig.hs b/cardano-node/src/Cardano/Tracing/Config.hs similarity index 99% rename from cardano-node/src/Cardano/Node/TraceConfig.hs rename to cardano-node/src/Cardano/Tracing/Config.hs index d6fb80f9fcc..0a1b7c20cbd 100644 --- a/cardano-node/src/Cardano/Node/TraceConfig.hs +++ b/cardano-node/src/Cardano/Tracing/Config.hs @@ -2,7 +2,7 @@ {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} -module Cardano.Node.TraceConfig +module Cardano.Tracing.Config ( TraceOptions (..) , TraceSelection (..) , traceConfigParser diff --git a/cardano-node/src/Cardano/Tracing/Tracers.hs b/cardano-node/src/Cardano/Tracing/Tracers.hs index d7a6e84bc41..94082e6cbe0 100644 --- a/cardano-node/src/Cardano/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Tracing/Tracers.hs @@ -80,7 +80,7 @@ import Ouroboros.Network.Subscription import qualified Ouroboros.Consensus.Storage.ChainDB as ChainDB import qualified Ouroboros.Consensus.Storage.LedgerDB.OnDisk as LedgerDB -import Cardano.Node.TraceConfig +import Cardano.Tracing.Config import Cardano.Tracing.Constraints (TraceConstraints) import Cardano.Tracing.Kernel import Cardano.Tracing.Metrics (HasKESMetricsData (..), KESMetricsData (..), diff --git a/cardano-node/test/Test/Cardano/Node/Gen.hs b/cardano-node/test/Test/Cardano/Node/Gen.hs index c2e9adce29a..3c31cc67743 100644 --- a/cardano-node/test/Test/Cardano/Node/Gen.hs +++ b/cardano-node/test/Test/Cardano/Node/Gen.hs @@ -14,7 +14,8 @@ module Test.Cardano.Node.Gen import Cardano.Prelude -import Cardano.Node.Topology (NetworkTopology (..), NodeSetup (..), RemoteAddress (..)) +import Cardano.Node.Configuration.Topology (NetworkTopology (..), NodeSetup (..), + RemoteAddress (..)) import Cardano.Node.Types (NodeAddress (..), NodeHostAddress (..)) import qualified Data.IP as IP