Skip to content

Commit

Permalink
cardano-node module restructuring
Browse files Browse the repository at this point in the history
  • Loading branch information
Jimbo4350 committed Aug 3, 2020
1 parent 2cd7cf0 commit 448657e
Show file tree
Hide file tree
Showing 23 changed files with 115 additions and 119 deletions.
3 changes: 1 addition & 2 deletions cardano-cli/cardano-cli.cabal
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions cardano-cli/src/Cardano/CLI/Byron/Delegation.hs
Expand Up @@ -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]
Expand Down
2 changes: 1 addition & 1 deletion cardano-cli/src/Cardano/CLI/Byron/Key.hs
Expand Up @@ -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
Expand Down
Expand Up @@ -4,7 +4,7 @@
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}

module Cardano.CLI.Legacy.Byron (
module Cardano.CLI.Byron.Legacy (
LegacyDelegateKey(..)
, encodeLegacyDelegateKey
, decodeLegacyDelegateKey
Expand Down
9 changes: 5 additions & 4 deletions cardano-node/app/cardano-node.hs
Expand Up @@ -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 ()
Expand Down
20 changes: 12 additions & 8 deletions cardano-node/cardano-node.cabal
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -66,7 +65,7 @@ library


other-modules: Paths_cardano_node
Cardano.Node.Socket
Cardano.Node.Configuration.Socket
Cardano.Tracing.MicroBenchmarking

build-depends: aeson
Expand Down Expand Up @@ -148,10 +147,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
Expand All @@ -164,11 +166,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
Expand Down
1 change: 1 addition & 0 deletions cardano-node/chairman/chairman.hs
Expand Up @@ -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 ()
Expand Down
31 changes: 0 additions & 31 deletions cardano-node/src/Cardano/Common/Help.hs

This file was deleted.

Expand Up @@ -9,7 +9,7 @@
#define UNIX
#endif

module Cardano.Node.Logging
module Cardano.Node.Configuration.Logging
( LoggingLayer (..)
, createLoggingLayer
, shutdownLoggingLayer
Expand Down
Expand Up @@ -2,7 +2,7 @@
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE ScopedTypeVariables #-}

module Cardano.Node.Socket
module Cardano.Node.Configuration.Socket
( gatherConfiguredSockets
, SocketOrSocketInfo(..)
, SocketConfigError(..)
Expand Down
@@ -1,6 +1,6 @@
{-# LANGUAGE OverloadedStrings #-}

module Cardano.Node.Topology
module Cardano.Node.Configuration.Topology
( TopologyError(..)
, NetworkTopology(..)
, NodeHostAddress(..)
Expand Down
Expand Up @@ -2,7 +2,7 @@
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}

module Cardano.Node.Shutdown
module Cardano.Node.Handlers.Shutdown
(
-- * Generalised shutdown handling
ShutdownFDs
Expand Down
@@ -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.
Expand Down
24 changes: 23 additions & 1 deletion cardano-node/src/Cardano/Node/Parsers.hs
Expand Up @@ -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 (..))

Expand Down Expand Up @@ -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
2 changes: 1 addition & 1 deletion cardano-node/src/Cardano/Node/Protocol.hs
Expand Up @@ -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
Expand Down
47 changes: 46 additions & 1 deletion 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)
Expand All @@ -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
Expand Down
15 changes: 7 additions & 8 deletions cardano-node/src/Cardano/Node/Run.hs
Expand Up @@ -12,8 +12,7 @@

module Cardano.Node.Run
( runNode
)
where
) where

import Cardano.Prelude hiding (ByteString, atomically, take, trace)
import Prelude (String, error)
Expand Down Expand Up @@ -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)
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion cardano-node/src/Cardano/Node/TUI/Drawing.hs
Expand Up @@ -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
Expand Down

0 comments on commit 448657e

Please sign in to comment.