@@ -19,15 +19,24 @@ module Cardano.Node.Run
19
19
) where
20
20
21
21
import qualified Cardano.Api as Api
22
- import Cardano.Prelude hiding (ByteString , STM , atomically , show , take , trace )
23
- import Data.IP (toSockAddr )
24
- import Prelude (String , id , show )
22
+ import Prelude
25
23
24
+ import Control.Concurrent
26
25
import Control.Concurrent.Class.MonadSTM.Strict
27
- import Control.Monad.Trans.Except.Extra (left )
26
+ import Control.Exception
27
+ import Control.Monad
28
+ import Control.Monad.IO.Class (liftIO )
29
+ import Control.Monad.Trans.Except
30
+ import Control.Monad.Trans.Except.Extra
28
31
import "contra-tracer" Control.Tracer
32
+ import Data.Either
33
+ import Data.IP (toSockAddr )
34
+ import Data.Map.Strict (Map )
29
35
import qualified Data.Map.Strict as Map
30
- import Data.Text (breakOn , pack , take )
36
+ import Data.Maybe
37
+ import Data.Monoid
38
+ import Data.Proxy
39
+ import Data.Text (Text )
31
40
import qualified Data.Text as Text
32
41
import qualified Data.Text.Encoding as Text
33
42
import Data.Time.Clock (getCurrentTime )
@@ -37,6 +46,7 @@ import Network.HostName (getHostName)
37
46
import Network.Socket (Socket )
38
47
import System.Directory (canonicalizePath , createDirectoryIfMissing , makeAbsolute )
39
48
import System.Environment (lookupEnv )
49
+ import System.Exit
40
50
41
51
#ifdef UNIX
42
52
import GHC.Weak (deRefWeak )
@@ -61,12 +71,23 @@ import Cardano.Node.Configuration.NodeAddress
61
71
import Cardano.Node.Configuration.POM (NodeConfiguration (.. ),
62
72
PartialNodeConfiguration (.. ), SomeNetworkP2PMode (.. ),
63
73
defaultPartialNodeConfiguration , makeNodeConfiguration , parseNodeConfigurationFP )
74
+ import Cardano.Node.Configuration.Socket (SocketOrSocketInfo (.. ),
75
+ gatherConfiguredSockets , getSocketOrSocketInfoAddr )
76
+ import qualified Cardano.Node.Configuration.Topology as TopologyNonP2P
77
+ import Cardano.Node.Configuration.TopologyP2P
78
+ import qualified Cardano.Node.Configuration.TopologyP2P as TopologyP2P
79
+ import Cardano.Node.Handlers.Shutdown
80
+ import Cardano.Node.Protocol (mkConsensusProtocol )
81
+ import Cardano.Node.Protocol.Types
82
+ import Cardano.Node.Queries
64
83
import Cardano.Node.Startup
84
+ import Cardano.Node.TraceConstraints (TraceConstraints )
65
85
import Cardano.Node.Tracing.API
66
86
import Cardano.Node.Tracing.StateRep (NodeState (NodeKernelOnline ))
67
87
import Cardano.Node.Tracing.Tracers.Startup (getStartupInfo )
68
88
import Cardano.Node.Types
69
89
import Cardano.Tracing.Config (TraceOptions (.. ), TraceSelection (.. ))
90
+ import Cardano.Tracing.Tracers
70
91
71
92
import qualified Ouroboros.Consensus.Config as Consensus
72
93
import Ouroboros.Consensus.Config.SupportsNode (ConfigSupportsNode (.. ))
@@ -87,18 +108,6 @@ import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPo
87
108
import Ouroboros.Network.Subscription (DnsSubscriptionTarget (.. ),
88
109
IPSubscriptionTarget (.. ))
89
110
90
- import Cardano.Node.Configuration.Socket (SocketOrSocketInfo (.. ),
91
- gatherConfiguredSockets , getSocketOrSocketInfoAddr )
92
- import qualified Cardano.Node.Configuration.Topology as TopologyNonP2P
93
- import Cardano.Node.Configuration.TopologyP2P
94
- import qualified Cardano.Node.Configuration.TopologyP2P as TopologyP2P
95
- import Cardano.Node.Handlers.Shutdown
96
- import Cardano.Node.Protocol (mkConsensusProtocol )
97
- import Cardano.Node.Protocol.Types
98
- import Cardano.Node.Queries
99
- import Cardano.Node.TraceConstraints (TraceConstraints )
100
- import Cardano.Tracing.Tracers
101
-
102
111
{- HLINT ignore "Fuse concatMap/map" -}
103
112
{- HLINT ignore "Redundant <$>" -}
104
113
{- HLINT ignore "Use fewer imports" -}
@@ -115,7 +124,7 @@ runNode cmdPc = do
115
124
configYamlPc <- parseNodeConfigurationFP . getLast $ pncConfigFile cmdPc
116
125
117
126
nc <- case makeNodeConfiguration $ defaultPartialNodeConfiguration <> configYamlPc <> cmdPc of
118
- Left err -> panic $ " Error in creating the NodeConfiguration: " <> Text. pack err
127
+ Left err -> error $ " Error in creating the NodeConfiguration: " <> err
119
128
Right nc' -> return nc'
120
129
121
130
putStrLn $ " Node configuration: " <> show nc
@@ -124,7 +133,7 @@ runNode cmdPc = do
124
133
Just vrfFp -> do vrf <- runExceptT $ checkVRFFilePermissions vrfFp
125
134
case vrf of
126
135
Left err ->
127
- putTextLn ( renderVRFPrivateKeyFilePermissionError err) >> exitFailure
136
+ putStrLn ( Text. unpack $ renderVRFPrivateKeyFilePermissionError err) >> exitFailure
128
137
Right () ->
129
138
pure ()
130
139
Nothing -> pure ()
@@ -214,10 +223,10 @@ handleNodeWithTracers cmdPc nc p networkMagic runP = do
214
223
p
215
224
216
225
loggingLayer <- case eLoggingLayer of
217
- Left err -> putTextLn ( Text. pack $ show err) >> exitFailure
226
+ Left err -> print err >> exitFailure
218
227
Right res -> return res
219
228
! trace <- setupTrace loggingLayer
220
- let tracer = contramap pack $ toLogObject trace
229
+ let tracer = contramap Text. pack $ toLogObject trace
221
230
logTracingVerbosity nc tracer
222
231
223
232
-- Legacy logging infrastructure must trace 'nodeStartTime' and 'nodeBasicInfo'.
@@ -282,14 +291,14 @@ setupTrace
282
291
:: LoggingLayer
283
292
-> IO (Trace IO Text )
284
293
setupTrace loggingLayer = do
285
- hn <- maybe hostname (pure . pack) =<< lookupEnv " CARDANO_NODE_LOGGING_HOSTNAME"
286
- return $
287
- setHostname hn $
288
- llAppendName loggingLayer " node" (llBasicTrace loggingLayer)
294
+ hn <- maybe hostname (return . Text. pack) =<< lookupEnv " CARDANO_NODE_LOGGING_HOSTNAME"
295
+ return . setHostname hn $
296
+ llAppendName loggingLayer " node" (llBasicTrace loggingLayer)
289
297
where
290
- hostname = do
291
- hn0 <- pack <$> getHostName
292
- return $ take 8 $ fst $ breakOn " ." hn0
298
+ hostname :: IO Text
299
+ hostname = do
300
+ hn0 <- Text. pack <$> getHostName
301
+ return $ Text. take 8 $ fst $ Text. breakOn " ." hn0
293
302
294
303
{-
295
304
-- TODO: needs to be finished (issue #4362)
@@ -522,11 +531,11 @@ handleSimpleNode runP p2pMode tracers nc onKernel = do
522
531
Signals. Catch $ do
523
532
traceWith (startupTracer tracers) NetworkConfigUpdate
524
533
result <- try $ TopologyP2P. readTopologyFileOrError (startupTracer tracers) nc
525
- case result of
526
- Left ( FatalError err) ->
534
+ case result :: Either IOException NetworkTopology of
535
+ Left err ->
527
536
traceWith (startupTracer tracers)
528
537
$ NetworkConfigUpdateError
529
- $ pack " Error reading topology configuration file:" <> err
538
+ $ Text. pack $ " Error reading topology configuration file:" <> show err
530
539
Right nt -> do
531
540
let (localRoots, publicRoots) = producerAddresses nt
532
541
traceWith (startupTracer tracers)
0 commit comments