From f0eb0d373acd83cb54342f178786fed215146449 Mon Sep 17 00:00:00 2001 From: Kosyrev Serge Date: Tue, 4 May 2021 18:05:46 +0300 Subject: [PATCH] CAD-2907 stub compute: calibrate at startup, with configurable targets --- cardano-node/src/Cardano/Node/Configuration/POM.hs | 4 ++++ cardano-node/src/Cardano/Node/Protocol/Cardano.hs | 11 ++++++++++- cardano-node/src/Cardano/Node/Types.hs | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/cardano-node/src/Cardano/Node/Configuration/POM.hs b/cardano-node/src/Cardano/Node/Configuration/POM.hs index 7667ed349b6..88e8b785891 100644 --- a/cardano-node/src/Cardano/Node/Configuration/POM.hs +++ b/cardano-node/src/Cardano/Node/Configuration/POM.hs @@ -237,10 +237,14 @@ instance FromJSON PartialNodeConfiguration where (Just _, Just _) -> fail $ "Specify either ShelleyGenesisFile" ++ "or GenesisFile, but not both" npcShelleyGenesisFileHash <- v .:? "ShelleyGenesisHash" + npcStubComputeDuration <- fromMaybe 0.05 <$> v .:? "StubComputeDuration" + npcStubComputePrecision <- fromMaybe 0.005 <$> v .:? "StubComputePrecision" pure NodeShelleyProtocolConfiguration { npcShelleyGenesisFile , npcShelleyGenesisFileHash + , npcStubComputeDuration + , npcStubComputePrecision } parseAlonzoProtocol v = do diff --git a/cardano-node/src/Cardano/Node/Protocol/Cardano.hs b/cardano-node/src/Cardano/Node/Protocol/Cardano.hs index 74c95992681..718f4dc2b00 100644 --- a/cardano-node/src/Cardano/Node/Protocol/Cardano.hs +++ b/cardano-node/src/Cardano/Node/Protocol/Cardano.hs @@ -15,6 +15,7 @@ module Cardano.Node.Protocol.Cardano import Prelude +import Control.Monad.IO.Class (liftIO) import Control.Monad.Trans.Except (ExceptT) import Control.Monad.Trans.Except.Extra (firstExceptT) @@ -26,6 +27,7 @@ import qualified Ouroboros.Consensus.Cardano.CanHardFork as Consensus import Ouroboros.Consensus.HardFork.Combinator.Condense () import Ouroboros.Consensus.Cardano.Condense () +import Ouroboros.Consensus.Shelley.Ledger.Stub import Cardano.Api import Cardano.Api.Orphans () @@ -77,7 +79,9 @@ mkSomeConsensusProtocolCardano NodeByronProtocolConfiguration { } NodeShelleyProtocolConfiguration { npcShelleyGenesisFile, - npcShelleyGenesisFileHash + npcShelleyGenesisFileHash, + npcStubComputeDuration, + npcStubComputePrecision } NodeAlonzoProtocolConfiguration { npcAlonzoGenesisFile, @@ -95,6 +99,11 @@ mkSomeConsensusProtocolCardano NodeByronProtocolConfiguration { npcTestAlonzoHardForkAtVersion } files = do + liftIO $ + calibrateStubComputationArgForTime + npcStubComputeDuration + npcStubComputePrecision + byronGenesis <- firstExceptT CardanoProtocolInstantiationErrorByron $ Byron.readGenesis npcByronGenesisFile diff --git a/cardano-node/src/Cardano/Node/Types.hs b/cardano-node/src/Cardano/Node/Types.hs index ee5531031c3..2009c2c2c11 100644 --- a/cardano-node/src/Cardano/Node/Types.hs +++ b/cardano-node/src/Cardano/Node/Types.hs @@ -270,6 +270,8 @@ data NodeShelleyProtocolConfiguration = NodeShelleyProtocolConfiguration { npcShelleyGenesisFile :: !GenesisFile , npcShelleyGenesisFileHash :: !(Maybe GenesisHash) + , npcStubComputeDuration :: !Double + , npcStubComputePrecision :: !Double } deriving (Eq, Show)