Skip to content

Commit 9ed9aca

Browse files
authored
Merge pull request #5813 from IntersectMBO/js/remove-cli-args
Remove consensus internal options from cli flags
2 parents 2770221 + 305d328 commit 9ed9aca

File tree

4 files changed

+36
-13
lines changed

4 files changed

+36
-13
lines changed

cardano-node/ChangeLog.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
## Next version
44

55
- Use p2p network stack by default, warn when using the legacy network stack.
6+
- Deprecate some CLI flags corresponding to low-level consensus options. They are
7+
still accepted but a warning is emitted on startup on stderr suggesting to set
8+
them in the configuration file instead:
9+
- `--mempool-capacity-override` and `--no-mempool-capacity-override` can be set in the configuration file via the key `MempoolCapacityBytesOverride`.
10+
- `--snapshot-interval` can be set in the configuration file via the key `SnapshotInterval`.
11+
- `--num-of-disk-snapshots` can be set in the configuration file via the key `NumOfDiskSnapshots`.
612

713
## 8.2.1 -- August 2023
814

cardano-node/app/cardano-node.hs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11
{-# LANGUAGE OverloadedStrings #-}
22
{-# LANGUAGE RankNTypes #-}
33
{-# LANGUAGE TemplateHaskell #-}
4+
{-# LANGUAGE GADTs #-}
45

56
import qualified Cardano.Crypto.Init as Crypto
67
import Cardano.Git.Rev (gitRev)
7-
import Cardano.Node.Configuration.POM (PartialNodeConfiguration)
8+
import Cardano.Node.Configuration.POM (PartialNodeConfiguration(..))
89
import Cardano.Node.Handlers.TopLevel
910
import Cardano.Node.Parsers (nodeCLIParser, parserHelpHeader, parserHelpOptions,
1011
renderHelpDoc)
1112
import Cardano.Node.Run (runNode)
1213
import Cardano.Node.Tracing.Documentation (TraceDocumentationCmd (..),
1314
parseTraceDocumentationCmd, runTraceDocumentationCmd)
1415

16+
import Data.Monoid (Last (getLast))
1517
import qualified Data.Text as Text
1618
import qualified Data.Text.IO as Text
1719
import Data.Version (showVersion)
1820
import Options.Applicative
1921
import qualified Options.Applicative as Opt
2022
import Options.Applicative.Help ((<$$>))
2123
import System.Info (arch, compilerName, compilerVersion, os)
24+
import System.IO (hPutStrLn, stderr)
2225

2326
import Paths_cardano_node (version)
2427

@@ -30,13 +33,27 @@ main = do
3033
cmd <- Opt.customExecParser p opts
3134

3235
case cmd of
33-
RunCmd args -> runNode args
36+
RunCmd args -> do
37+
warnIfSet args pncMaybeMempoolCapacityOverride "mempool-capacity-override" "MempoolCapacityBytesOverride"
38+
warnIfSet args pncNumOfDiskSnapshots "num-of-disk-snapshots" "NumOfDiskSnapshots"
39+
warnIfSet args pncSnapshotInterval "snapshot-interval" "SnapshotInterval"
40+
runNode args
3441
TraceDocumentation tdc -> runTraceDocumentationCmd tdc
3542
VersionCmd -> runVersionCommand
3643

3744
where
3845
p = Opt.prefs Opt.showHelpOnEmpty
3946

47+
warnIfSet :: PartialNodeConfiguration -> (PartialNodeConfiguration -> Last a) -> String -> String -> IO ()
48+
warnIfSet args f name key =
49+
maybe
50+
(pure ())
51+
(\_ -> hPutStrLn stderr $ "WARNING: Option --" ++ name ++ " was set via CLI flags.\
52+
\ This CLI flag will be removed in upcoming node releases.\
53+
\ Please, set this configuration option in the configuration file instead with key " ++ key ++ ".")
54+
$ getLast
55+
$ f args
56+
4057
opts :: Opt.ParserInfo Command
4158
opts =
4259
Opt.info (fmap RunCmd nodeCLIParser

cardano-node/src/Cardano/Node/Parsers.hs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ nodeRunParser = do
5151
-- Filepaths
5252
topFp <- lastOption parseTopologyFile
5353
dbFp <- lastOption parseDbPath
54+
validate <- lastOption parseValidateDB
5455
socketFp <- lastOption $ parseSocketPath "Path to a cardano-node socket"
5556
traceForwardSocket <- lastOption parseTracerSocketMode
57+
nodeConfigFp <- lastOption parseConfigFile
5658

5759
-- Protocol files
5860
byronCertFile <- optional parseByronDelegationCert
@@ -68,15 +70,13 @@ nodeRunParser = do
6870
nIPv6Address <- lastOption parseHostIPv6Addr
6971
nPortNumber <- lastOption parsePort
7072

71-
-- NodeConfiguration filepath
72-
nodeConfigFp <- lastOption parseConfigFile
73-
numOfDiskSnapshots <- lastOption parseNumOfDiskSnapshots
74-
snapshotInterval <- lastOption parseSnapshotInterval
75-
76-
validate <- lastOption parseValidateDB
73+
-- Shutdown
7774
shutdownIPC <- lastOption parseShutdownIPC
7875
shutdownOnLimit <- lastOption parseShutdownOn
7976

77+
-- Hidden options (to be removed eventually)
78+
numOfDiskSnapshots <- lastOption parseNumOfDiskSnapshots
79+
snapshotInterval <- lastOption parseSnapshotInterval
8080
maybeMempoolCapacityOverride <- lastOption parseMempoolCapacityOverride
8181

8282
pure $ PartialNodeConfiguration
@@ -215,13 +215,13 @@ parseMempoolCapacityOverride = parseOverride <|> parseNoOverride
215215
Opt.option (auto @Word32)
216216
( long "mempool-capacity-override"
217217
<> metavar "BYTES"
218-
<> help "The number of bytes"
218+
<> help "[DEPRECATED: Set it in config file with key MempoolCapacityBytesOverride] The number of bytes"
219219
)
220220
parseNoOverride :: Parser MempoolCapacityBytesOverride
221221
parseNoOverride =
222222
flag' NoMempoolCapacityBytesOverride
223223
( long "no-mempool-capacity-override"
224-
<> help "The port number"
224+
<> help "[DEPRECATED: Set it in config file] Don't override mempool capacity"
225225
)
226226

227227
parseDbPath :: Parser FilePath
@@ -336,7 +336,7 @@ parseNumOfDiskSnapshots = fmap RequestedNumOfDiskSnapshots parseNum
336336
parseNum = Opt.option auto
337337
( long "num-of-disk-snapshots"
338338
<> metavar "NUMOFDISKSNAPSHOTS"
339-
<> help "Number of ledger snapshots stored on disk."
339+
<> help "[DEPRECATED: Set it in config file with key NumOfDiskSnapshots] Number of ledger snapshots stored on disk."
340340
)
341341

342342
-- TODO revisit because it sucks
@@ -346,7 +346,7 @@ parseSnapshotInterval = fmap (RequestedSnapshotInterval . secondsToDiffTime) par
346346
parseDifftime = Opt.option auto
347347
( long "snapshot-interval"
348348
<> metavar "SNAPSHOTINTERVAL"
349-
<> help "Snapshot Interval (in seconds)"
349+
<> help "[DEPRECATED: Set it in config file with key SnapshotInterval] Snapshot Interval (in seconds)"
350350
)
351351

352352
-- | Produce just the brief help header for a given CLI option parser,

cardano-node/src/Cardano/Node/Tracing/Tracers/ChainDB.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ instance ( LogFormatting (Header blk)
422422
"Added request to queue to reprocess blocks postponed by LoE."
423423
forHuman ChainDB.PoppedReprocessLoEBlocksFromQueue =
424424
"Poppped request from queue to reprocess blocks postponed by LoE."
425-
forHuman ChainDB.ChainSelectionLoEDebug {} =
425+
forHuman ChainDB.ChainSelectionLoEDebug{} =
426426
"ChainDB LoE debug event"
427427
forMachine dtal (ChainDB.IgnoreBlockOlderThanK pt) =
428428
mconcat [ "kind" .= String "IgnoreBlockOlderThanK"

0 commit comments

Comments
 (0)