From 3961e13eccc45c1985bbc4f2df0d2781e94d67a6 Mon Sep 17 00:00:00 2001 From: Edmund Noble Date: Fri, 28 Jul 2023 20:14:10 -0400 Subject: [PATCH 1/6] silent replays.... shhhhh --- src/Chainweb/Chainweb.hs | 1 - src/Chainweb/Pact/PactService.hs | 2 +- src/Chainweb/Pact/PactService/Checkpointer.hs | 3 +- src/Chainweb/Pact/PactService/ExecBlock.hs | 22 +++++++++++---- src/Chainweb/Pact/Service/Types.hs | 2 -- src/Chainweb/Pact/TransactionExec.hs | 2 +- src/Chainweb/Pact/Types.hs | 28 +++++++++++++------ src/Chainweb/Version/Guards.hs | 4 --- test/Chainweb/Test/Pact/Utils.hs | 2 +- tools/cwtool/TxSimulator.hs | 2 +- 10 files changed, 40 insertions(+), 28 deletions(-) diff --git a/src/Chainweb/Chainweb.hs b/src/Chainweb/Chainweb.hs index 470ff599ce..9e85528b66 100644 --- a/src/Chainweb/Chainweb.hs +++ b/src/Chainweb/Chainweb.hs @@ -418,7 +418,6 @@ withChainwebInternal conf logger peer serviceSock rocksDb pactDbDir backupDir re pactConfig maxGasLimit = PactServiceConfig { _pactReorgLimit = _configReorgLimit conf , _pactLocalRewindDepthLimit = _configLocalRewindDepthLimit conf - , _pactRevalidate = True , _pactQueueSize = _configPactQueueSize conf , _pactResetDb = resetDb , _pactAllowReadsInLocal = _configAllowReadsInLocal conf diff --git a/src/Chainweb/Pact/PactService.hs b/src/Chainweb/Pact/PactService.hs index 36ebff1f5d..904166f773 100644 --- a/src/Chainweb/Pact/PactService.hs +++ b/src/Chainweb/Pact/PactService.hs @@ -154,7 +154,7 @@ withPactService ver cid chainwebLogger bhDb pdb sqlenv config act = , _psLocalRewindDepthLimit = _pactLocalRewindDepthLimit config , _psOnFatalError = defaultOnFatalError (logFunctionText chainwebLogger) , _psVersion = ver - , _psValidateHashesOnReplay = _pactRevalidate config + , _psReplaying = False , _psAllowReadsInLocal = _pactAllowReadsInLocal config , _psIsBatch = False , _psCheckpointerDepth = 0 diff --git a/src/Chainweb/Pact/PactService/Checkpointer.hs b/src/Chainweb/Pact/PactService/Checkpointer.hs index 2779d426bf..479f7ef0b0 100644 --- a/src/Chainweb/Pact/PactService/Checkpointer.hs +++ b/src/Chainweb/Pact/PactService/Checkpointer.hs @@ -400,8 +400,7 @@ rewindTo rewindLimit (Just (ParentHeader parent)) = do withAsync (heightProgress (_blockHeight commonAncestor) heightRef (logInfo_ logger)) $ \_ -> s & S.scanM - -- no need to re-validate hashes, because these blocks have already been validated - (\ !p !c -> runPact (local (psValidateHashesOnReplay .~ False) $ fastForward (ParentHeader p, c)) >> writeIORef heightRef (_blockHeight c) >> return c) + (\ !p !c -> runPact (local (psReplaying .~ True) $ fastForward (ParentHeader p, c)) >> writeIORef heightRef (_blockHeight c) >> return c) (return h) -- initial parent return & S.length_ diff --git a/src/Chainweb/Pact/PactService/ExecBlock.hs b/src/Chainweb/Pact/PactService/ExecBlock.hs index 382d9fe97f..3b21bf8a3f 100644 --- a/src/Chainweb/Pact/PactService/ExecBlock.hs +++ b/src/Chainweb/Pact/PactService/ExecBlock.hs @@ -53,6 +53,7 @@ import Data.Vector (Vector) import qualified Data.Vector as V import System.IO +import qualified System.Logger as L import System.Timeout import Prelude hiding (lookup) @@ -151,8 +152,9 @@ execBlock currHeader plData pdbenv = do modify' $ set psStateValidated $ Just currHeader - -- Validate hashes if requested - asks _psValidateHashesOnReplay >>= \x -> when x $ + -- Validate hashes if not doing a replay. no need to re-validate hashes + -- during a replay, because these blocks have already been validated + view psReplaying >>= \x -> unless x $ either throwM (void . return) $! validateHashes currHeader plData miner results @@ -347,7 +349,6 @@ runCoinbase -> PactServiceM logger tbl (P.CommandResult [P.TxLogJson]) runCoinbase True _ _ _ _ _ = return noCoinbase runCoinbase False dbEnv miner enfCBFail usePrecomp mc = do - logger <- view psLogger rs <- view psMinerRewards v <- view chainwebVersion txCtx <- getTxContext def @@ -357,7 +358,8 @@ runCoinbase False dbEnv miner enfCBFail usePrecomp mc = do reward <- liftIO $! minerReward v rs bh (T2 cr upgradedCacheM) <- - liftIO $! applyCoinbase v logger dbEnv miner reward txCtx enfCBFail usePrecomp mc + withSilentLoggerForReplays $ \logger -> + liftIO $ applyCoinbase v logger dbEnv miner reward txCtx enfCBFail usePrecomp mc mapM_ upgradeInitCache upgradedCacheM debugResult "runCoinbase" (P.crLogs %~ fmap J.Array $ cr) return $! cr @@ -388,6 +390,14 @@ applyPactCmds isGenesis env cmds miner mc blockGas txTimeLimit = do evalStateT (V.mapM (applyPactCmd isGenesis env miner txTimeLimit) cmds) (T2 mc blockGas) return txs +-- we don't want pact tx failure or unknown exception messages when we're doing a replay. +withSilentLoggerForReplays :: Logger logger => (logger -> PactServiceM logger tbl a) -> PactServiceM logger tbl a +withSilentLoggerForReplays f = do + replaying <- view psReplaying + logger <- view psLogger + if replaying then L.withLoggerLevel L.Error logger f + else f logger + applyPactCmd :: (Logger logger) => Bool @@ -434,9 +444,9 @@ applyPactCmd isGenesis env miner txTimeLimit cmd = StateT $ \(T2 mcache maybeBlo Just limit -> maybe (throwM timeoutError) return <=< timeout (fromIntegral limit) let txGas (T3 r _ _) = fromIntegral $ P._crGas r - T3 r c _warns <- + T3 r c _warns <- withSilentLoggerForReplays $ \cmdLogger -> tracePactServiceM' "applyCmd" (J.toJsonViaEncode (P._cmdHash cmd)) txGas $ - liftIO $ txTimeout $ applyCmd v logger gasLogger env miner (gasModel txCtx) txCtx spv gasLimitedCmd initialGas mcache ApplySend + liftIO $ txTimeout $ applyCmd v cmdLogger gasLogger env miner (gasModel txCtx) txCtx spv gasLimitedCmd initialGas mcache ApplySend pure $ T2 r c if isGenesis diff --git a/src/Chainweb/Pact/Service/Types.hs b/src/Chainweb/Pact/Service/Types.hs index 4fad852d83..fde905b3ea 100644 --- a/src/Chainweb/Pact/Service/Types.hs +++ b/src/Chainweb/Pact/Service/Types.hs @@ -86,8 +86,6 @@ data PactServiceConfig = PactServiceConfig -- hardcodes this to 8 currently. , _pactLocalRewindDepthLimit :: !RewindLimit -- ^ Maximum allowed rewind depth in the local command. - , _pactRevalidate :: !Bool - -- ^ Re-validate payload hashes during transaction replay , _pactAllowReadsInLocal :: !Bool -- ^ Allow direct database reads in local mode , _pactQueueSize :: !Natural diff --git a/src/Chainweb/Pact/TransactionExec.hs b/src/Chainweb/Pact/TransactionExec.hs index 4c2300cfc7..4f3ef0bb61 100644 --- a/src/Chainweb/Pact/TransactionExec.hs +++ b/src/Chainweb/Pact/TransactionExec.hs @@ -329,7 +329,7 @@ applyGenesisCmd logger dbEnv spv txCtx cmd = go = do -- TODO: fix with version recordification so that this matches the flags at genesis heights. - cr <- catchesPactError logger PrintsUnexpectedError $! runGenesis cmd permissiveNamespacePolicy interp + cr <- catchesPactError logger (onChainErrorPrintingFor txCtx) $! runGenesis cmd permissiveNamespacePolicy interp case cr of Left e -> fatal $ "Genesis command failed: " <> sshow e Right r -> r <$ debug "successful genesis tx for request key" diff --git a/src/Chainweb/Pact/Types.hs b/src/Chainweb/Pact/Types.hs index 68a2d90efd..d215c4c299 100644 --- a/src/Chainweb/Pact/Types.hs +++ b/src/Chainweb/Pact/Types.hs @@ -38,6 +38,7 @@ module Chainweb.Pact.Types , GasId(..) , EnforceCoinbaseFailure(..) , CoinbaseUsePrecompiled(..) + , cleanModuleCache -- * Transaction State , TransactionState(..) @@ -80,7 +81,7 @@ module Chainweb.Pact.Types , psLocalRewindDepthLimit , psOnFatalError , psVersion - , psValidateHashesOnReplay + , psReplaying , psLogger , psGasLogger , psAllowReadsInLocal @@ -215,7 +216,6 @@ import Chainweb.Time import Chainweb.Transaction import Chainweb.Utils import Chainweb.Version -import Chainweb.Version.Guards import Utils.Logging.Trace @@ -286,6 +286,15 @@ moduleCacheKeys :: ModuleCache -> [ModuleName] moduleCacheKeys (ModuleCache a) = fst <$> LHM.toList a {-# INLINE moduleCacheKeys #-} +-- this can't go in Chainweb.Version.Guards because it causes an import cycle +-- it uses genesisHeight which is from BlockHeader which imports Guards +cleanModuleCache :: ChainwebVersion -> ChainId -> BlockHeight -> Bool +cleanModuleCache v cid bh = + case v ^?! versionForks . at Chainweb217Pact . _Just . onChain cid of + ForkAtBlockHeight bh' -> bh == bh' + ForkAtGenesis -> bh == genesisHeight v cid + ForkNever -> False + -- -------------------------------------------------------------------- -- -- Local vs. Send execution context flag @@ -410,7 +419,7 @@ data PactServiceEnv logger tbl = PactServiceEnv -- ^ The limit of checkpointer's rewind in the `execValidationBlock` command. , _psOnFatalError :: !(forall a. PactException -> Text -> IO a) , _psVersion :: !ChainwebVersion - , _psValidateHashesOnReplay :: !Bool + , _psReplaying :: !Bool , _psAllowReadsInLocal :: !Bool , _psLogger :: !logger , _psGasLogger :: !(Maybe logger) @@ -456,7 +465,6 @@ testPactServiceConfig :: PactServiceConfig testPactServiceConfig = PactServiceConfig { _pactReorgLimit = defaultReorgLimit , _pactLocalRewindDepthLimit = defaultLocalRewindDepthLimit - , _pactRevalidate = True , _pactQueueSize = 1000 , _pactResetDb = True , _pactAllowReadsInLocal = False @@ -720,9 +728,11 @@ catchesPactError :: (MonadCatch m, MonadIO m, Logger logger) => logger -> Unexpe catchesPactError logger exnPrinting action = catches (Right <$> action) [ Handler $ \(e :: PactError) -> return $ Left e , Handler $ \(e :: SomeException) -> do - liftIO $ logWarn_ logger ("catchesPactError: unknown error: " <> sshow e) - return $ Left $ PactError EvalError def def $ - case exnPrinting of - PrintsUnexpectedError -> viaShow e - CensorsUnexpectedError -> "unknown error" + !err <- case exnPrinting of + PrintsUnexpectedError -> + return (viaShow e) + CensorsUnexpectedError -> do + liftIO $ logWarn_ logger ("catchesPactError: unknown error: " <> sshow e) + return "unknown error" + return $ Left $ PactError EvalError def def err ] diff --git a/src/Chainweb/Version/Guards.hs b/src/Chainweb/Version/Guards.hs index a8d0dd1e9d..fd7d3f4f99 100644 --- a/src/Chainweb/Version/Guards.hs +++ b/src/Chainweb/Version/Guards.hs @@ -38,7 +38,6 @@ module Chainweb.Version.Guards , chainweb215Pact , chainweb216Pact , chainweb217Pact - , cleanModuleCache , chainweb218Pact , chainweb219Pact , chainweb220Pact @@ -223,9 +222,6 @@ chainweb216Pact = checkFork after Chainweb216Pact chainweb217Pact :: ChainwebVersion -> ChainId -> BlockHeight -> Bool chainweb217Pact = checkFork after Chainweb217Pact -cleanModuleCache :: ChainwebVersion -> ChainId -> BlockHeight -> Bool -cleanModuleCache = checkFork atOrAfter Chainweb217Pact - chainweb218Pact :: ChainwebVersion -> ChainId -> BlockHeight -> Bool chainweb218Pact = checkFork atOrAfter Chainweb218Pact diff --git a/test/Chainweb/Test/Pact/Utils.hs b/test/Chainweb/Test/Pact/Utils.hs index a494655eec..14aa37bfe5 100644 --- a/test/Chainweb/Test/Pact/Utils.hs +++ b/test/Chainweb/Test/Pact/Utils.hs @@ -630,7 +630,7 @@ testPactCtxSQLite logger v cid bhdb pdb sqlenv conf gasmodel = do , _psLocalRewindDepthLimit = _pactLocalRewindDepthLimit conf , _psOnFatalError = defaultOnFatalError mempty , _psVersion = v - , _psValidateHashesOnReplay = _pactRevalidate conf + , _psReplaying = False , _psAllowReadsInLocal = _pactAllowReadsInLocal conf , _psIsBatch = False , _psCheckpointerDepth = 0 diff --git a/tools/cwtool/TxSimulator.hs b/tools/cwtool/TxSimulator.hs index 5de0a2474a..46a45e480e 100644 --- a/tools/cwtool/TxSimulator.hs +++ b/tools/cwtool/TxSimulator.hs @@ -170,7 +170,7 @@ simulate sc@(SimConfig dbDir txIdx' _ _ cid ver gasLog doTypecheck) = do , _psReorgLimit = RewindLimit 0 , _psOnFatalError = ferr , _psVersion = ver - , _psValidateHashesOnReplay = True + , _psReplaying = False , _psAllowReadsInLocal = False , _psLogger = logger , _psGasLogger = gasLogger From 3081d53296749436102f7c113d6bd6d832124eca Mon Sep 17 00:00:00 2001 From: Edmund Noble Date: Sat, 29 Jul 2023 23:21:27 -0400 Subject: [PATCH 2/6] Lazier logging --- src/Chainweb/Pact/TransactionExec.hs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Chainweb/Pact/TransactionExec.hs b/src/Chainweb/Pact/TransactionExec.hs index 4f3ef0bb61..9c46a21257 100644 --- a/src/Chainweb/Pact/TransactionExec.hs +++ b/src/Chainweb/Pact/TransactionExec.hs @@ -635,7 +635,7 @@ jsonErrorResult err msg = do l <- view txLogger logInfo_ l - $! msg + $ msg <> ": " <> sshow rk <> ": " <> sshow err @@ -1136,7 +1136,7 @@ gasLog m = do l <- view txGasLogger rk <- view txRequestKey for_ l $ \logger -> - logInfo_ logger $! m <> ": " <> sshow rk + logInfo_ logger $ m <> ": " <> sshow rk -- | Log request keys at DEBUG when successful -- @@ -1144,7 +1144,7 @@ debug :: (Logger logger) => Text -> TransactionM logger db () debug s = do l <- view txLogger rk <- view txRequestKey - logDebug_ l $! s <> ": " <> sshow rk + logDebug_ l $ s <> ": " <> sshow rk -- | Denotes fatal failure points in the tx exec process @@ -1155,7 +1155,7 @@ fatal e = do rk <- view txRequestKey logError_ l - $! "critical transaction failure: " + $ "critical transaction failure: " <> sshow rk <> ": " <> e throwM $ PactTransactionExecError (fromUntypedHash $ unRequestKey rk) e From b3857cddd60eb5694998f4f815d19cbd2c19a830 Mon Sep 17 00:00:00 2001 From: Edmund Noble Date: Sun, 30 Jul 2023 00:14:55 -0400 Subject: [PATCH 3/6] Enable psReplaying flag when we replay, not when we don't --- src/Chainweb/Pact/PactService/Checkpointer.hs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Chainweb/Pact/PactService/Checkpointer.hs b/src/Chainweb/Pact/PactService/Checkpointer.hs index 479f7ef0b0..c6b62dd3c0 100644 --- a/src/Chainweb/Pact/PactService/Checkpointer.hs +++ b/src/Chainweb/Pact/PactService/Checkpointer.hs @@ -400,7 +400,7 @@ rewindTo rewindLimit (Just (ParentHeader parent)) = do withAsync (heightProgress (_blockHeight commonAncestor) heightRef (logInfo_ logger)) $ \_ -> s & S.scanM - (\ !p !c -> runPact (local (psReplaying .~ True) $ fastForward (ParentHeader p, c)) >> writeIORef heightRef (_blockHeight c) >> return c) + (\ !p !c -> runPact (fastForward (ParentHeader p, c)) >> writeIORef heightRef (_blockHeight c) >> return c) (return h) -- initial parent return & S.length_ @@ -415,7 +415,7 @@ fastForward . (HasCallStack, CanReadablePayloadCas tbl, Logger logger) => (ParentHeader, BlockHeader) -> PactServiceM logger tbl () -fastForward (target, block) = +fastForward (target, block) = do -- This does a restore, i.e. it rewinds the checkpointer back in -- history, if needed. withCheckpointerWithoutRewind (Just target) "fastForward" $ \pdbenv -> do @@ -608,7 +608,7 @@ rewindToIncremental rewindLimit (Just (ParentHeader parent)) = do -- transactions (withBatchIO). let playChunk :: IORef BlockHeight -> BlockHeader -> Stream (Of BlockHeader) IO r -> IO (Of BlockHeader r) playChunk heightRef cur s = withBatchIO runPact $ \runPactLocal -> S.foldM - (\c x -> x <$ (runPactLocal (fastForward (ParentHeader c, x)) >> writeIORef heightRef (_blockHeight c))) + (\c x -> x <$ (runPactLocal (local (psReplaying .~ True) $ fastForward (ParentHeader c, x)) >> writeIORef heightRef (_blockHeight c))) (return cur) return s From 166adac2ebcdf2abe3336367892f2a9a95e3cad5 Mon Sep 17 00:00:00 2001 From: Edmund Noble Date: Sun, 30 Jul 2023 11:30:02 -0400 Subject: [PATCH 4/6] hashable 1.4.3.0 --- cabal.project.freeze | 4 ++-- test/golden/empty-block-tests-expected.txt | 6 +++--- test/golden/new-block-0-expected.txt | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cabal.project.freeze b/cabal.project.freeze index 7740477ee6..e49be9eb4d 100644 --- a/cabal.project.freeze +++ b/cabal.project.freeze @@ -162,7 +162,7 @@ constraints: any.Boolean ==0.2.4, any.ghc-prim ==0.10.0, any.groups ==0.5.3, any.happy ==1.20.1.1, - any.hashable ==1.4.2.0, + any.hashable ==1.4.3.0, hashable +integer-gmp -random-initial-seed, any.hashes ==0.2.3, hashes -benchmark-cryptonite -openssl-use-pkg-config -test-cryptonite +with-openssl, @@ -405,4 +405,4 @@ constraints: any.Boolean ==0.2.4, yet-another-logger -tbmqueue, any.zlib ==0.6.3.0, zlib -bundled-c-zlib -non-blocking-ffi -pkg-config -index-state: hackage.haskell.org 2023-07-18T16:46:58Z +index-state: hackage.haskell.org 2023-07-30T12:44:58Z diff --git a/test/golden/empty-block-tests-expected.txt b/test/golden/empty-block-tests-expected.txt index a3db763fca..8140e5357f 100644 --- a/test/golden/empty-block-tests-expected.txt +++ b/test/golden/empty-block-tests-expected.txt @@ -1,8 +1,8 @@ results: - coinbase: eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJJa1l3UXpsdFJUVkpNM2RsTFRsR05uRmxSV3RaYldSaWVYQXdUMk5sYUhKZmIwWkpNbXB1YkRVdGQwa2kiLCJsb2dzIjoibFdaVWZjX0dKdGxUUy1LeDAtYm00aXRfSWE5bnNGZG5jZ2NwSE0td091OCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjd9 + coinbase: eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJJbXd4V0c4MVNqRTFUSEZZWVdNdFVHa3dlVU5WTTNkSFZFRlRXWEY0TW5OUFNVMWpkM2xxWkRCWGJ6QWkiLCJsb2dzIjoibFdaVWZjX0dKdGxUUy1LeDAtYm00aXRfSWE5bnNGZG5jZ2NwSE0td091OCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjd9 minerData: eyJhY2NvdW50IjoiTm9NaW5lciIsInByZWRpY2F0ZSI6IjwiLCJwdWJsaWMta2V5cyI6W119 - outputsHash: CVJw7e4GM7lv0fTF6UQ_Bh9AskyHw2TWzgRLUyyKRqo - payloadHash: k_2HP1fYNLkKZQfXaijxIVlrN4hoxkG9--s060A9He4 + outputsHash: mh8w4FmYuSJVCVfbVf1ZLCda81pKz4aXzxXBJwSKiqo + payloadHash: lcZbOqoskzjhTp00INlXidfncmgME28HeMv3LPFxOBE transactions: [] transactionsHash: lL9ztEiU-NwzrlTpBbvhT4M1l5Shsht94OwFyhBaFD0 test-group: new-block diff --git a/test/golden/new-block-0-expected.txt b/test/golden/new-block-0-expected.txt index e90059bfad..c4373d8715 100644 --- a/test/golden/new-block-0-expected.txt +++ b/test/golden/new-block-0-expected.txt @@ -1,8 +1,8 @@ results: - coinbase: eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJJa1l3UXpsdFJUVkpNM2RsTFRsR05uRmxSV3RaYldSaWVYQXdUMk5sYUhKZmIwWkpNbXB1YkRVdGQwa2kiLCJsb2dzIjoibFdaVWZjX0dKdGxUUy1LeDAtYm00aXRfSWE5bnNGZG5jZ2NwSE0td091OCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjd9 + coinbase: eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJJbXd4V0c4MVNqRTFUSEZZWVdNdFVHa3dlVU5WTTNkSFZFRlRXWEY0TW5OUFNVMWpkM2xxWkRCWGJ6QWkiLCJsb2dzIjoibFdaVWZjX0dKdGxUUy1LeDAtYm00aXRfSWE5bnNGZG5jZ2NwSE0td091OCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjd9 minerData: eyJhY2NvdW50IjoiTm9NaW5lciIsInByZWRpY2F0ZSI6IjwiLCJwdWJsaWMta2V5cyI6W119 - outputsHash: 0xwr7re1jD50YtNtdzhIUUL-PEeyhiZ_DKRwVZS-DzE - payloadHash: MeRwZKToHy1mcewCOqHmuETKAt6CNMWntwVPtj6kO9Y + outputsHash: tk1Co2r1EcHCtR3KuJ8t1EISbLp3ah6HvrSAs-PClpI + payloadHash: IGJpidgvoMjwa6qwmO0_NQXrjhHXOsGI7iYjTX_nzww transactions: - - eyJoYXNoIjoiSWxGRDdhOVVZT0dXMUJHRUZjYWRwejVUVW1XLVc5ZkJ5NkZIVzYzaXEzayIsInNpZ3MiOlt7InNpZyI6ImYzZTc5Mjc4MGRmNTIwZmVkMjg5MDc3MjllMjI1NTA4NTk2MzJhMzNiMTQzMTM0MDlkOTkyZmRmMjJjNTZlZDEwMzdiZTcxNDYyNWRkMTZmYWI5MmVlNjZhZmQ1MjhiNWViZjEwYWNhZjY2ZjRlZGVmMWM2ZjZjY2Q4OTkxMjA0In1dLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1widGVzdC1hZG1pbi1rZXlzZXRcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdfSxcImNvZGVcIjpcIihkZWZpbmUta2V5c2V0ICd0ZXN0LWFkbWluIChyZWFkLWtleXNldCBcXFwidGVzdC1hZG1pbi1rZXlzZXRcXFwiKSlcXG5cXG4obmFtZXNwYWNlICdmcmVlKVxcblxcbihtb2R1bGUgdGVzdDEgJ3Rlc3QtYWRtaW5cXG5cXG4gIChkZWZzY2hlbWEgYWNjb3VudFxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgZGF0YSlcXG5cXG4gIChkZWZ0YWJsZSBhY2NvdW50czp7YWNjb3VudH0pXFxuXFxuICAoZGVmdW4gY3JlYXRlLWFjY291bnQgKGlkIGluaXQtYmFsKVxcbiAgICAoaW5zZXJ0IGFjY291bnRzIGlkXFxuICAgICAgICAgeyBcXFwiYmFsYW5jZVxcXCI6IGluaXQtYmFsLCBcXFwiYW1vdW50XFxcIjogaW5pdC1iYWwsIFxcXCJkYXRhXFxcIjogXFxcIkNyZWF0ZWQgYWNjb3VudFxcXCIgfSkpXFxuXFxuICAoZGVmdW4gdHJhbnNmZXIgKHNyYyBkZXN0IGFtb3VudClcXG4gICAgXFxcInRyYW5zZmVyIEFNT1VOVCBmcm9tIFNSQyB0byBERVNUIGZvciB1bmVuY3J5cHRlZCBhY2NvdW50c1xcXCJcXG4gICAgKGRlYml0IHNyYyBhbW91bnQgeyBcXFwidHJhbnNmZXItdG9cXFwiOiBkZXN0IH0pXFxuICAgIChjcmVkaXQgZGVzdCBhbW91bnQgeyBcXFwidHJhbnNmZXItZnJvbVxcXCI6IHNyYyB9KSlcXG5cXG4gIChkZWZwYWN0IHBheW1lbnQgKHNyYy1lbnRpdHkgc3JjIGRlc3QtZW50aXR5IGRlc3QgYW1vdW50KVxcbiAgICBcXFwiVHdvLXBoYXNlIGNvbmZpZGVudGlhbCBwYXltZW50LCBzZW5kaW5nIG1vbmV5IGZyb20gU1JDIGF0IFNSQy1FTlRJVFkgdG8gREVTVCBhdCBERVNULUVOVElUWS5cXFwiXFxuXFxuICAgIChzdGVwLXdpdGgtcm9sbGJhY2tcXG4gICAgIHNyYy1lbnRpdHlcXG4gICAgIChsZXQgKChyZXN1bHQgKGRlYml0IHNyYyBhbW91bnQgeyBcXFwidHJhbnNmZXItdG9cXFwiOiBkZXN0LCBcXFwibWVzc2FnZVxcXCI6IFxcXCJTdGFydGluZyBwYWN0XFxcIiB9KSkpXFxuICAgICAgICh5aWVsZCB7IFxcXCJyZXN1bHRcXFwiOiByZXN1bHQsIFxcXCJhbW91bnRcXFwiOiBhbW91bnQsIFxcXCJ0eFxcXCI6IChwYWN0LWlkKSB9KSlcXG4gICAgIChjcmVkaXQgc3JjIGFtb3VudCB7IFxcXCJyb2xsYmFja1xcXCI6IChwYWN0LWlkKSB9KSlcXG5cXG4gICAgKHN0ZXBcXG4gICAgIGRlc3QtZW50aXR5XFxuICAgICAocmVzdW1lIHsgXFxcInJlc3VsdFxcXCI6PSByZXN1bHQsIFxcXCJhbW91bnRcXFwiOj0gZGViaXQtYW1vdW50IH1cXG4gICAgICAgKGNyZWRpdCBkZXN0IGRlYml0LWFtb3VudFxcbiAgICAgICAgICAgICAgIHsgXFxcInRyYW5zZmVyLWZyb21cXFwiOiBzcmMsIFxcXCJkZWJpdC1yZXN1bHRcXFwiOiByZXN1bHQsIFxcXCJ0eFxcXCI6IChwYWN0LWlkKSB9KSkpKVxcblxcbiAgKGRlZnVuIGRlYml0IChhY2N0IGFtb3VudCBkYXRhKVxcbiAgICBcXFwiRGViaXQgQUNDVCBmb3IgQU1PVU5ULCBlbmZvcmNpbmcgcG9zaXRpdmUgYW1vdW50IGFuZCBzdWZmaWNpZW50IGZ1bmRzLCBhbm5vdGF0aW5nIHdpdGggREFUQVxcXCJcXG4gICAgKGVuZm9yY2UtcG9zaXRpdmUgYW1vdW50KVxcbiAgICAod2l0aC1yZWFkIGFjY291bnRzIGFjY3QgeyBcXFwiYmFsYW5jZVxcXCI6PSBiYWxhbmNlIH1cXG4gICAgICAoY2hlY2stYmFsYW5jZSBiYWxhbmNlIGFtb3VudClcXG4gICAgICAodXBkYXRlIGFjY291bnRzIGFjY3RcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKC0gYmFsYW5jZSBhbW91bnQpLCBcXFwiYW1vdW50XFxcIjogKC0gYW1vdW50KVxcbiAgICAgICAgICAgICwgXFxcImRhdGFcXFwiOiBkYXRhIH0pKSlcXG5cXG4gIChkZWZ1biBjcmVkaXQgKGFjY3QgYW1vdW50IGRhdGEpXFxuICAgIFxcXCJDcmVkaXQgQUNDVCBmb3IgQU1PVU5ULCBlbmZvcmNpbmcgcG9zaXRpdmUgYW1vdW50XFxcIlxcbiAgICAoZW5mb3JjZS1wb3NpdGl2ZSBhbW91bnQpXFxuICAgICh3aXRoLXJlYWQgYWNjb3VudHMgYWNjdCB7IFxcXCJiYWxhbmNlXFxcIjo9IGJhbGFuY2UgfVxcbiAgICAgICh1cGRhdGUgYWNjb3VudHMgYWNjdFxcbiAgICAgICAgICAgIHsgXFxcImJhbGFuY2VcXFwiOiAoKyBiYWxhbmNlIGFtb3VudCksIFxcXCJhbW91bnRcXFwiOiBhbW91bnRcXG4gICAgICAgICAgICAsIFxcXCJkYXRhXFxcIjogZGF0YSB9KSkpXFxuXFxuXFxuICAoZGVmdW4gcmVhZC1hY2NvdW50IChpZClcXG4gICAgXFxcIlJlYWQgZGF0YSBmb3IgYWNjb3VudCBJRFxcXCJcXG4gICAgKCsgeyBcXFwiYWNjb3VudFxcXCI6IGlkIH0gKHJlYWQgYWNjb3VudHMgaWQpKSlcXG5cXG4gIChkZWZ1biBjaGVjay1iYWxhbmNlIChiYWxhbmNlIGFtb3VudClcXG4gICAgKGVuZm9yY2UgKDw9IGFtb3VudCBiYWxhbmNlKSBcXFwiSW5zdWZmaWNpZW50IGZ1bmRzXFxcIikpXFxuXFxuICAoZGVmdW4gZW5mb3JjZS1wb3NpdGl2ZSAoYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMCkgXFxcImFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIikpXFxuXFxuIChkZWZ1biByZWFkLWFsbCAoKVxcbiAgIChtYXAgKHJlYWQtYWNjb3VudCkgKGtleXMgYWNjb3VudHMpKSlcXG5cXG4gKGRlZnVuIHJlYWQtYWxsLWdsb2JhbCAoKVxcbiAgIChtYXAgKHJlYWQtYWNjb3VudCkgW1xcXCJBY2N0MVxcXCIgXFxcIkFjY3QyXFxcIl0pKVxcblxcbiAoZGVmdW4gY3JlYXRlLWdsb2JhbC1hY2NvdW50cyAoKVxcbiAgIChjcmVhdGUtYWNjb3VudCBcXFwiQWNjdDFcXFwiIDEwMDAwMDAuMClcXG4gICAoY3JlYXRlLWFjY291bnQgXFxcIkFjY3QyXFxcIiAwLjApXFxuICAgKHJlYWQtYWxsKSlcXG5cXG4gKGRlZnBhY3QgY3JlYXRlLXByaXZhdGUtYWNjb3VudHMgKClcXG4gICAoc3RlcCBcXFwiQWxpY2VcXFwiIChjcmVhdGUtYWNjb3VudCBcXFwiQVxcXCIgMTAwMC4wKSlcXG4gICAoc3RlcCBcXFwiQm9iXFxcIiAoY3JlYXRlLWFjY291bnQgXFxcIkJcXFwiIDEwMDAuMCkpXFxuICAgKHN0ZXAgXFxcIkNhcm9sXFxcIiAoY3JlYXRlLWFjY291bnQgXFxcIkNcXFwiIDEwMDAuMCkpXFxuICAgKHN0ZXAgXFxcIkRpbmVzaFxcXCIgKGNyZWF0ZS1hY2NvdW50IFxcXCJEXFxcIiAxMDAwLjApKSlcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbe1wicHViS2V5XCI6XCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJ9XSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTAwMDAwMCxcImdhc0xpbWl0XCI6MTAwMDAsXCJjaGFpbklkXCI6XCIwXCIsXCJnYXNQcmljZVwiOjEuMGUtMixcInNlbmRlclwiOlwic2VuZGVyMDBcIn0sXCJub25jZVwiOlwiMTBcIn0ifQ - eyJnYXMiOjY0OSwicmVzdWx0Ijp7InN0YXR1cyI6InN1Y2Nlc3MiLCJkYXRhIjoiTG9hZGVkIG1vZHVsZSBmcmVlLnRlc3QxLCBoYXNoIEI2WkpnZldENW9iUEdtWWNfaVJLaXJETVA2LVVHbTJwVVY3bXRIRC1Sc1EifSwicmVxS2V5IjoiSWxGRDdhOVVZT0dXMUJHRUZjYWRwejVUVW1XLVc5ZkJ5NkZIVzYzaXEzayIsImxvZ3MiOiJMRm51NzRDaE4wZS1IbGI3azlqZlAzcmpmcWh6WjFweUpibXpkX1lOMFdZIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MTF9 @@ -13,7 +13,7 @@ results: - - eyJoYXNoIjoicFBrLWxFUE1jRnRDWXdXR2ZaejV2bGdzZ1ZYV3dYbXhmQVJ6bkFCbUVONCIsInNpZ3MiOlt7InNpZyI6IjM3YjI4MmY1YWQ0YWY0Yzk2YmE1NzA5YWEzOTI2NTU1YjU5MDEwYzczZmVmZTUwNzQyMGYyODVjZTI1MmQ5ZjM1YzQ5NjAxYTgwMDYxZGU2NzEzNTcxNzY2MTNmODIyODQxMDU0MjliZTVkOTEzNWMzODAxMzcyN2UyMmI3ZjA2In1dLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1widGVzdC1hZG1pbi1rZXlzZXRcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdfSxcImNvZGVcIjpcIihmcmVlLnRlc3QxLnRyYW5zZmVyIFxcXCJBY2N0MVxcXCIgXFxcIkFjY3QyXFxcIiAxLjAwKVwifX0sXCJzaWduZXJzXCI6W3tcInB1YktleVwiOlwiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwifV0sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjEwMDAwMDAsXCJnYXNMaW1pdFwiOjEwMDAwLFwiY2hhaW5JZFwiOlwiMFwiLFwiZ2FzUHJpY2VcIjoxLjBlLTIsXCJzZW5kZXJcIjpcInNlbmRlcjAwXCJ9LFwibm9uY2VcIjpcIjEzXCJ9In0 - eyJnYXMiOjQwNywicmVzdWx0Ijp7InN0YXR1cyI6InN1Y2Nlc3MiLCJkYXRhIjoiV3JpdGUgc3VjY2VlZGVkIn0sInJlcUtleSI6InBQay1sRVBNY0Z0Q1l3V0dmWno1dmxnc2dWWFd3WG14ZkFSem5BQm1FTjQiLCJsb2dzIjoib3hWd2tvU21xM2JZeVh5aHYwT0V3ZTN2c0tGbWlkRTBtTEotQ2FZWVhRayIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjIwfQ - - eyJoYXNoIjoiX2RneUxfSGtlZGJFZjl5UTY5Wkhhc2g2M01JVUw2ZktibzBqeXJJRWhPYyIsInNpZ3MiOlt7InNpZyI6IjZhODRiMWRkNGFkNDE5ZGY3YThhODA4NGYwNWEyZDM5YzExNTBmMjI5ZTM3OTFlM2UwY2E0OTkyZDkwNGNhOGVlMTk4MTljNTE3YTVjNjM5M2E3ZmYyNWI1NjdiNjJjOTYwZTFiYmI4ZTE2YjZiMWU2YmRkNDU1Njk3ODc1MDA5In1dLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1widGVzdC1hZG1pbi1rZXlzZXRcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdfSxcImNvZGVcIjpcIihhdCAncHJldi1ibG9jay1oYXNoIChjaGFpbi1kYXRhKSlcIn19LFwic2lnbmVyc1wiOlt7XCJwdWJLZXlcIjpcIjM2ODgyMGY4MGMzMjRiYmM3YzJiMDYxMDY4OGE3ZGE0M2UzOWY5MWQxMTg3MzI2NzFjZDljNzUwMGZmNDNjY2FcIn1dLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxMDAwMDAwLFwiZ2FzTGltaXRcIjoxMDAwMCxcImNoYWluSWRcIjpcIjBcIixcImdhc1ByaWNlXCI6MS4wZS0yLFwic2VuZGVyXCI6XCJzZW5kZXIwMFwifSxcIm5vbmNlXCI6XCIxNFwifSJ9 - - eyJnYXMiOjcsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkRoVzNJa1VOMTJ0bXAzWGt5d3lnSk5lLTNXZDl5dUNFTHdRX2lIYnM2V2cifSwicmVxS2V5IjoiX2RneUxfSGtlZGJFZjl5UTY5Wkhhc2g2M01JVUw2ZktibzBqeXJJRWhPYyIsImxvZ3MiOiJUVVVlWFJmRFlnQlZTdjFZU0ktU3lfRVdtcHRaWXZqQlNmY1ZMc2ZzcVpVIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MjN9 + - eyJnYXMiOjcsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6ImY1TTYyME5Idlg3Q1VJQVIwVHltRmotemVDbzNLYjFZY2dyTlBpM1V1Q1EifSwicmVxS2V5IjoiX2RneUxfSGtlZGJFZjl5UTY5Wkhhc2g2M01JVUw2ZktibzBqeXJJRWhPYyIsImxvZ3MiOiJUVVVlWFJmRFlnQlZTdjFZU0ktU3lfRVdtcHRaWXZqQlNmY1ZMc2ZzcVpVIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MjN9 - - eyJoYXNoIjoiTzhoWU1TVUhnSkNPRXFoTy0yRFRNRGJhTzBIZmx6VjM0UHRzM0dlUHBJUSIsInNpZ3MiOlt7InNpZyI6ImMxYjQ5OTQwNTQ0MjZmNzE2NWM2NmZjNjY0MzE0N2M1N2QxYTczYzM3NjEwMjU4OGU0M2QyMzA1ZjBhY2FhYTQyMDRkZGRmNGRhMWFiMzk0OTdkY2FiM2FjZWU1NmQ0NmQ3NzJkNDZkNjAyNmU5ZjQ4MGFmMWNiMWIyNWFmYzA3In1dLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1widGVzdC1hZG1pbi1rZXlzZXRcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdfSxcImNvZGVcIjpcIihhdCAnYmxvY2stdGltZSAoY2hhaW4tZGF0YSkpXCJ9fSxcInNpZ25lcnNcIjpbe1wicHViS2V5XCI6XCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJ9XSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTAwMDAwMCxcImdhc0xpbWl0XCI6MTAwMDAsXCJjaGFpbklkXCI6XCIwXCIsXCJnYXNQcmljZVwiOjEuMGUtMixcInNlbmRlclwiOlwic2VuZGVyMDBcIn0sXCJub25jZVwiOlwiMTVcIn0ifQ - eyJnYXMiOjcsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJ0aW1lIjoiMTk3MC0wMS0wMVQwMDowMDowMFoifX0sInJlcUtleSI6Ik84aFlNU1VIZ0pDT0VxaE8tMkRUTURiYU8wSGZselYzNFB0czNHZVBwSVEiLCJsb2dzIjoidTdKNDU3dGdzNDJ1dGhjOU1TbWtkaTkxT2tUb2FCNFpGei1QUWtSajJhdyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjI2fQ - - eyJoYXNoIjoiSGFsbTJLYUV5Qm5weXJqMkxHMmJQcVZDUmZBYk8yWHZzZWlnaURaZElLOCIsInNpZ3MiOlt7InNpZyI6ImI0MDNlZWI3ODI0NzA0OWU0NjEzNGQzYWQ0MWZlMTAwNWMxM2I0NzNhNjUzZGNmNTVlN2ZmMzIzOGU5N2VkYmRmZTMyZmFmODczODViYTc0MmNmMDFmYmFkMDU2ODEwNWVjNDhhMDk1MzIyNWJmMmY0ODJjNjhiMjkyZGNmOTAzIn1dLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1widGVzdC1hZG1pbi1rZXlzZXRcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdfSxcImNvZGVcIjpcIihhdCAnYmxvY2staGVpZ2h0IChjaGFpbi1kYXRhKSlcIn19LFwic2lnbmVyc1wiOlt7XCJwdWJLZXlcIjpcIjM2ODgyMGY4MGMzMjRiYmM3YzJiMDYxMDY4OGE3ZGE0M2UzOWY5MWQxMTg3MzI2NzFjZDljNzUwMGZmNDNjY2FcIn1dLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxMDAwMDAwLFwiZ2FzTGltaXRcIjoxMDAwMCxcImNoYWluSWRcIjpcIjBcIixcImdhc1ByaWNlXCI6MS4wZS0yLFwic2VuZGVyXCI6XCJzZW5kZXIwMFwifSxcIm5vbmNlXCI6XCIxNlwifSJ9 From 3ef7fc1376ac8cdbe49cd047b89f77480146a588 Mon Sep 17 00:00:00 2001 From: Edmund Noble Date: Sun, 30 Jul 2023 11:30:41 -0400 Subject: [PATCH 5/6] Revert "hashable 1.4.3.0" This reverts commit 166adac2ebcdf2abe3336367892f2a9a95e3cad5. --- cabal.project.freeze | 4 ++-- test/golden/empty-block-tests-expected.txt | 6 +++--- test/golden/new-block-0-expected.txt | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cabal.project.freeze b/cabal.project.freeze index e49be9eb4d..7740477ee6 100644 --- a/cabal.project.freeze +++ b/cabal.project.freeze @@ -162,7 +162,7 @@ constraints: any.Boolean ==0.2.4, any.ghc-prim ==0.10.0, any.groups ==0.5.3, any.happy ==1.20.1.1, - any.hashable ==1.4.3.0, + any.hashable ==1.4.2.0, hashable +integer-gmp -random-initial-seed, any.hashes ==0.2.3, hashes -benchmark-cryptonite -openssl-use-pkg-config -test-cryptonite +with-openssl, @@ -405,4 +405,4 @@ constraints: any.Boolean ==0.2.4, yet-another-logger -tbmqueue, any.zlib ==0.6.3.0, zlib -bundled-c-zlib -non-blocking-ffi -pkg-config -index-state: hackage.haskell.org 2023-07-30T12:44:58Z +index-state: hackage.haskell.org 2023-07-18T16:46:58Z diff --git a/test/golden/empty-block-tests-expected.txt b/test/golden/empty-block-tests-expected.txt index 8140e5357f..a3db763fca 100644 --- a/test/golden/empty-block-tests-expected.txt +++ b/test/golden/empty-block-tests-expected.txt @@ -1,8 +1,8 @@ results: - coinbase: eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJJbXd4V0c4MVNqRTFUSEZZWVdNdFVHa3dlVU5WTTNkSFZFRlRXWEY0TW5OUFNVMWpkM2xxWkRCWGJ6QWkiLCJsb2dzIjoibFdaVWZjX0dKdGxUUy1LeDAtYm00aXRfSWE5bnNGZG5jZ2NwSE0td091OCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjd9 + coinbase: eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJJa1l3UXpsdFJUVkpNM2RsTFRsR05uRmxSV3RaYldSaWVYQXdUMk5sYUhKZmIwWkpNbXB1YkRVdGQwa2kiLCJsb2dzIjoibFdaVWZjX0dKdGxUUy1LeDAtYm00aXRfSWE5bnNGZG5jZ2NwSE0td091OCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjd9 minerData: eyJhY2NvdW50IjoiTm9NaW5lciIsInByZWRpY2F0ZSI6IjwiLCJwdWJsaWMta2V5cyI6W119 - outputsHash: mh8w4FmYuSJVCVfbVf1ZLCda81pKz4aXzxXBJwSKiqo - payloadHash: lcZbOqoskzjhTp00INlXidfncmgME28HeMv3LPFxOBE + outputsHash: CVJw7e4GM7lv0fTF6UQ_Bh9AskyHw2TWzgRLUyyKRqo + payloadHash: k_2HP1fYNLkKZQfXaijxIVlrN4hoxkG9--s060A9He4 transactions: [] transactionsHash: lL9ztEiU-NwzrlTpBbvhT4M1l5Shsht94OwFyhBaFD0 test-group: new-block diff --git a/test/golden/new-block-0-expected.txt b/test/golden/new-block-0-expected.txt index c4373d8715..e90059bfad 100644 --- a/test/golden/new-block-0-expected.txt +++ b/test/golden/new-block-0-expected.txt @@ -1,8 +1,8 @@ results: - coinbase: eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJJbXd4V0c4MVNqRTFUSEZZWVdNdFVHa3dlVU5WTTNkSFZFRlRXWEY0TW5OUFNVMWpkM2xxWkRCWGJ6QWkiLCJsb2dzIjoibFdaVWZjX0dKdGxUUy1LeDAtYm00aXRfSWE5bnNGZG5jZ2NwSE0td091OCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjd9 + coinbase: eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJJa1l3UXpsdFJUVkpNM2RsTFRsR05uRmxSV3RaYldSaWVYQXdUMk5sYUhKZmIwWkpNbXB1YkRVdGQwa2kiLCJsb2dzIjoibFdaVWZjX0dKdGxUUy1LeDAtYm00aXRfSWE5bnNGZG5jZ2NwSE0td091OCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjd9 minerData: eyJhY2NvdW50IjoiTm9NaW5lciIsInByZWRpY2F0ZSI6IjwiLCJwdWJsaWMta2V5cyI6W119 - outputsHash: tk1Co2r1EcHCtR3KuJ8t1EISbLp3ah6HvrSAs-PClpI - payloadHash: IGJpidgvoMjwa6qwmO0_NQXrjhHXOsGI7iYjTX_nzww + outputsHash: 0xwr7re1jD50YtNtdzhIUUL-PEeyhiZ_DKRwVZS-DzE + payloadHash: MeRwZKToHy1mcewCOqHmuETKAt6CNMWntwVPtj6kO9Y transactions: - - eyJoYXNoIjoiSWxGRDdhOVVZT0dXMUJHRUZjYWRwejVUVW1XLVc5ZkJ5NkZIVzYzaXEzayIsInNpZ3MiOlt7InNpZyI6ImYzZTc5Mjc4MGRmNTIwZmVkMjg5MDc3MjllMjI1NTA4NTk2MzJhMzNiMTQzMTM0MDlkOTkyZmRmMjJjNTZlZDEwMzdiZTcxNDYyNWRkMTZmYWI5MmVlNjZhZmQ1MjhiNWViZjEwYWNhZjY2ZjRlZGVmMWM2ZjZjY2Q4OTkxMjA0In1dLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1widGVzdC1hZG1pbi1rZXlzZXRcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdfSxcImNvZGVcIjpcIihkZWZpbmUta2V5c2V0ICd0ZXN0LWFkbWluIChyZWFkLWtleXNldCBcXFwidGVzdC1hZG1pbi1rZXlzZXRcXFwiKSlcXG5cXG4obmFtZXNwYWNlICdmcmVlKVxcblxcbihtb2R1bGUgdGVzdDEgJ3Rlc3QtYWRtaW5cXG5cXG4gIChkZWZzY2hlbWEgYWNjb3VudFxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgZGF0YSlcXG5cXG4gIChkZWZ0YWJsZSBhY2NvdW50czp7YWNjb3VudH0pXFxuXFxuICAoZGVmdW4gY3JlYXRlLWFjY291bnQgKGlkIGluaXQtYmFsKVxcbiAgICAoaW5zZXJ0IGFjY291bnRzIGlkXFxuICAgICAgICAgeyBcXFwiYmFsYW5jZVxcXCI6IGluaXQtYmFsLCBcXFwiYW1vdW50XFxcIjogaW5pdC1iYWwsIFxcXCJkYXRhXFxcIjogXFxcIkNyZWF0ZWQgYWNjb3VudFxcXCIgfSkpXFxuXFxuICAoZGVmdW4gdHJhbnNmZXIgKHNyYyBkZXN0IGFtb3VudClcXG4gICAgXFxcInRyYW5zZmVyIEFNT1VOVCBmcm9tIFNSQyB0byBERVNUIGZvciB1bmVuY3J5cHRlZCBhY2NvdW50c1xcXCJcXG4gICAgKGRlYml0IHNyYyBhbW91bnQgeyBcXFwidHJhbnNmZXItdG9cXFwiOiBkZXN0IH0pXFxuICAgIChjcmVkaXQgZGVzdCBhbW91bnQgeyBcXFwidHJhbnNmZXItZnJvbVxcXCI6IHNyYyB9KSlcXG5cXG4gIChkZWZwYWN0IHBheW1lbnQgKHNyYy1lbnRpdHkgc3JjIGRlc3QtZW50aXR5IGRlc3QgYW1vdW50KVxcbiAgICBcXFwiVHdvLXBoYXNlIGNvbmZpZGVudGlhbCBwYXltZW50LCBzZW5kaW5nIG1vbmV5IGZyb20gU1JDIGF0IFNSQy1FTlRJVFkgdG8gREVTVCBhdCBERVNULUVOVElUWS5cXFwiXFxuXFxuICAgIChzdGVwLXdpdGgtcm9sbGJhY2tcXG4gICAgIHNyYy1lbnRpdHlcXG4gICAgIChsZXQgKChyZXN1bHQgKGRlYml0IHNyYyBhbW91bnQgeyBcXFwidHJhbnNmZXItdG9cXFwiOiBkZXN0LCBcXFwibWVzc2FnZVxcXCI6IFxcXCJTdGFydGluZyBwYWN0XFxcIiB9KSkpXFxuICAgICAgICh5aWVsZCB7IFxcXCJyZXN1bHRcXFwiOiByZXN1bHQsIFxcXCJhbW91bnRcXFwiOiBhbW91bnQsIFxcXCJ0eFxcXCI6IChwYWN0LWlkKSB9KSlcXG4gICAgIChjcmVkaXQgc3JjIGFtb3VudCB7IFxcXCJyb2xsYmFja1xcXCI6IChwYWN0LWlkKSB9KSlcXG5cXG4gICAgKHN0ZXBcXG4gICAgIGRlc3QtZW50aXR5XFxuICAgICAocmVzdW1lIHsgXFxcInJlc3VsdFxcXCI6PSByZXN1bHQsIFxcXCJhbW91bnRcXFwiOj0gZGViaXQtYW1vdW50IH1cXG4gICAgICAgKGNyZWRpdCBkZXN0IGRlYml0LWFtb3VudFxcbiAgICAgICAgICAgICAgIHsgXFxcInRyYW5zZmVyLWZyb21cXFwiOiBzcmMsIFxcXCJkZWJpdC1yZXN1bHRcXFwiOiByZXN1bHQsIFxcXCJ0eFxcXCI6IChwYWN0LWlkKSB9KSkpKVxcblxcbiAgKGRlZnVuIGRlYml0IChhY2N0IGFtb3VudCBkYXRhKVxcbiAgICBcXFwiRGViaXQgQUNDVCBmb3IgQU1PVU5ULCBlbmZvcmNpbmcgcG9zaXRpdmUgYW1vdW50IGFuZCBzdWZmaWNpZW50IGZ1bmRzLCBhbm5vdGF0aW5nIHdpdGggREFUQVxcXCJcXG4gICAgKGVuZm9yY2UtcG9zaXRpdmUgYW1vdW50KVxcbiAgICAod2l0aC1yZWFkIGFjY291bnRzIGFjY3QgeyBcXFwiYmFsYW5jZVxcXCI6PSBiYWxhbmNlIH1cXG4gICAgICAoY2hlY2stYmFsYW5jZSBiYWxhbmNlIGFtb3VudClcXG4gICAgICAodXBkYXRlIGFjY291bnRzIGFjY3RcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKC0gYmFsYW5jZSBhbW91bnQpLCBcXFwiYW1vdW50XFxcIjogKC0gYW1vdW50KVxcbiAgICAgICAgICAgICwgXFxcImRhdGFcXFwiOiBkYXRhIH0pKSlcXG5cXG4gIChkZWZ1biBjcmVkaXQgKGFjY3QgYW1vdW50IGRhdGEpXFxuICAgIFxcXCJDcmVkaXQgQUNDVCBmb3IgQU1PVU5ULCBlbmZvcmNpbmcgcG9zaXRpdmUgYW1vdW50XFxcIlxcbiAgICAoZW5mb3JjZS1wb3NpdGl2ZSBhbW91bnQpXFxuICAgICh3aXRoLXJlYWQgYWNjb3VudHMgYWNjdCB7IFxcXCJiYWxhbmNlXFxcIjo9IGJhbGFuY2UgfVxcbiAgICAgICh1cGRhdGUgYWNjb3VudHMgYWNjdFxcbiAgICAgICAgICAgIHsgXFxcImJhbGFuY2VcXFwiOiAoKyBiYWxhbmNlIGFtb3VudCksIFxcXCJhbW91bnRcXFwiOiBhbW91bnRcXG4gICAgICAgICAgICAsIFxcXCJkYXRhXFxcIjogZGF0YSB9KSkpXFxuXFxuXFxuICAoZGVmdW4gcmVhZC1hY2NvdW50IChpZClcXG4gICAgXFxcIlJlYWQgZGF0YSBmb3IgYWNjb3VudCBJRFxcXCJcXG4gICAgKCsgeyBcXFwiYWNjb3VudFxcXCI6IGlkIH0gKHJlYWQgYWNjb3VudHMgaWQpKSlcXG5cXG4gIChkZWZ1biBjaGVjay1iYWxhbmNlIChiYWxhbmNlIGFtb3VudClcXG4gICAgKGVuZm9yY2UgKDw9IGFtb3VudCBiYWxhbmNlKSBcXFwiSW5zdWZmaWNpZW50IGZ1bmRzXFxcIikpXFxuXFxuICAoZGVmdW4gZW5mb3JjZS1wb3NpdGl2ZSAoYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMCkgXFxcImFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIikpXFxuXFxuIChkZWZ1biByZWFkLWFsbCAoKVxcbiAgIChtYXAgKHJlYWQtYWNjb3VudCkgKGtleXMgYWNjb3VudHMpKSlcXG5cXG4gKGRlZnVuIHJlYWQtYWxsLWdsb2JhbCAoKVxcbiAgIChtYXAgKHJlYWQtYWNjb3VudCkgW1xcXCJBY2N0MVxcXCIgXFxcIkFjY3QyXFxcIl0pKVxcblxcbiAoZGVmdW4gY3JlYXRlLWdsb2JhbC1hY2NvdW50cyAoKVxcbiAgIChjcmVhdGUtYWNjb3VudCBcXFwiQWNjdDFcXFwiIDEwMDAwMDAuMClcXG4gICAoY3JlYXRlLWFjY291bnQgXFxcIkFjY3QyXFxcIiAwLjApXFxuICAgKHJlYWQtYWxsKSlcXG5cXG4gKGRlZnBhY3QgY3JlYXRlLXByaXZhdGUtYWNjb3VudHMgKClcXG4gICAoc3RlcCBcXFwiQWxpY2VcXFwiIChjcmVhdGUtYWNjb3VudCBcXFwiQVxcXCIgMTAwMC4wKSlcXG4gICAoc3RlcCBcXFwiQm9iXFxcIiAoY3JlYXRlLWFjY291bnQgXFxcIkJcXFwiIDEwMDAuMCkpXFxuICAgKHN0ZXAgXFxcIkNhcm9sXFxcIiAoY3JlYXRlLWFjY291bnQgXFxcIkNcXFwiIDEwMDAuMCkpXFxuICAgKHN0ZXAgXFxcIkRpbmVzaFxcXCIgKGNyZWF0ZS1hY2NvdW50IFxcXCJEXFxcIiAxMDAwLjApKSlcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbe1wicHViS2V5XCI6XCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJ9XSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTAwMDAwMCxcImdhc0xpbWl0XCI6MTAwMDAsXCJjaGFpbklkXCI6XCIwXCIsXCJnYXNQcmljZVwiOjEuMGUtMixcInNlbmRlclwiOlwic2VuZGVyMDBcIn0sXCJub25jZVwiOlwiMTBcIn0ifQ - eyJnYXMiOjY0OSwicmVzdWx0Ijp7InN0YXR1cyI6InN1Y2Nlc3MiLCJkYXRhIjoiTG9hZGVkIG1vZHVsZSBmcmVlLnRlc3QxLCBoYXNoIEI2WkpnZldENW9iUEdtWWNfaVJLaXJETVA2LVVHbTJwVVY3bXRIRC1Sc1EifSwicmVxS2V5IjoiSWxGRDdhOVVZT0dXMUJHRUZjYWRwejVUVW1XLVc5ZkJ5NkZIVzYzaXEzayIsImxvZ3MiOiJMRm51NzRDaE4wZS1IbGI3azlqZlAzcmpmcWh6WjFweUpibXpkX1lOMFdZIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MTF9 @@ -13,7 +13,7 @@ results: - - eyJoYXNoIjoicFBrLWxFUE1jRnRDWXdXR2ZaejV2bGdzZ1ZYV3dYbXhmQVJ6bkFCbUVONCIsInNpZ3MiOlt7InNpZyI6IjM3YjI4MmY1YWQ0YWY0Yzk2YmE1NzA5YWEzOTI2NTU1YjU5MDEwYzczZmVmZTUwNzQyMGYyODVjZTI1MmQ5ZjM1YzQ5NjAxYTgwMDYxZGU2NzEzNTcxNzY2MTNmODIyODQxMDU0MjliZTVkOTEzNWMzODAxMzcyN2UyMmI3ZjA2In1dLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1widGVzdC1hZG1pbi1rZXlzZXRcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdfSxcImNvZGVcIjpcIihmcmVlLnRlc3QxLnRyYW5zZmVyIFxcXCJBY2N0MVxcXCIgXFxcIkFjY3QyXFxcIiAxLjAwKVwifX0sXCJzaWduZXJzXCI6W3tcInB1YktleVwiOlwiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwifV0sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjEwMDAwMDAsXCJnYXNMaW1pdFwiOjEwMDAwLFwiY2hhaW5JZFwiOlwiMFwiLFwiZ2FzUHJpY2VcIjoxLjBlLTIsXCJzZW5kZXJcIjpcInNlbmRlcjAwXCJ9LFwibm9uY2VcIjpcIjEzXCJ9In0 - eyJnYXMiOjQwNywicmVzdWx0Ijp7InN0YXR1cyI6InN1Y2Nlc3MiLCJkYXRhIjoiV3JpdGUgc3VjY2VlZGVkIn0sInJlcUtleSI6InBQay1sRVBNY0Z0Q1l3V0dmWno1dmxnc2dWWFd3WG14ZkFSem5BQm1FTjQiLCJsb2dzIjoib3hWd2tvU21xM2JZeVh5aHYwT0V3ZTN2c0tGbWlkRTBtTEotQ2FZWVhRayIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjIwfQ - - eyJoYXNoIjoiX2RneUxfSGtlZGJFZjl5UTY5Wkhhc2g2M01JVUw2ZktibzBqeXJJRWhPYyIsInNpZ3MiOlt7InNpZyI6IjZhODRiMWRkNGFkNDE5ZGY3YThhODA4NGYwNWEyZDM5YzExNTBmMjI5ZTM3OTFlM2UwY2E0OTkyZDkwNGNhOGVlMTk4MTljNTE3YTVjNjM5M2E3ZmYyNWI1NjdiNjJjOTYwZTFiYmI4ZTE2YjZiMWU2YmRkNDU1Njk3ODc1MDA5In1dLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1widGVzdC1hZG1pbi1rZXlzZXRcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdfSxcImNvZGVcIjpcIihhdCAncHJldi1ibG9jay1oYXNoIChjaGFpbi1kYXRhKSlcIn19LFwic2lnbmVyc1wiOlt7XCJwdWJLZXlcIjpcIjM2ODgyMGY4MGMzMjRiYmM3YzJiMDYxMDY4OGE3ZGE0M2UzOWY5MWQxMTg3MzI2NzFjZDljNzUwMGZmNDNjY2FcIn1dLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxMDAwMDAwLFwiZ2FzTGltaXRcIjoxMDAwMCxcImNoYWluSWRcIjpcIjBcIixcImdhc1ByaWNlXCI6MS4wZS0yLFwic2VuZGVyXCI6XCJzZW5kZXIwMFwifSxcIm5vbmNlXCI6XCIxNFwifSJ9 - - eyJnYXMiOjcsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6ImY1TTYyME5Idlg3Q1VJQVIwVHltRmotemVDbzNLYjFZY2dyTlBpM1V1Q1EifSwicmVxS2V5IjoiX2RneUxfSGtlZGJFZjl5UTY5Wkhhc2g2M01JVUw2ZktibzBqeXJJRWhPYyIsImxvZ3MiOiJUVVVlWFJmRFlnQlZTdjFZU0ktU3lfRVdtcHRaWXZqQlNmY1ZMc2ZzcVpVIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MjN9 + - eyJnYXMiOjcsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkRoVzNJa1VOMTJ0bXAzWGt5d3lnSk5lLTNXZDl5dUNFTHdRX2lIYnM2V2cifSwicmVxS2V5IjoiX2RneUxfSGtlZGJFZjl5UTY5Wkhhc2g2M01JVUw2ZktibzBqeXJJRWhPYyIsImxvZ3MiOiJUVVVlWFJmRFlnQlZTdjFZU0ktU3lfRVdtcHRaWXZqQlNmY1ZMc2ZzcVpVIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MjN9 - - eyJoYXNoIjoiTzhoWU1TVUhnSkNPRXFoTy0yRFRNRGJhTzBIZmx6VjM0UHRzM0dlUHBJUSIsInNpZ3MiOlt7InNpZyI6ImMxYjQ5OTQwNTQ0MjZmNzE2NWM2NmZjNjY0MzE0N2M1N2QxYTczYzM3NjEwMjU4OGU0M2QyMzA1ZjBhY2FhYTQyMDRkZGRmNGRhMWFiMzk0OTdkY2FiM2FjZWU1NmQ0NmQ3NzJkNDZkNjAyNmU5ZjQ4MGFmMWNiMWIyNWFmYzA3In1dLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1widGVzdC1hZG1pbi1rZXlzZXRcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdfSxcImNvZGVcIjpcIihhdCAnYmxvY2stdGltZSAoY2hhaW4tZGF0YSkpXCJ9fSxcInNpZ25lcnNcIjpbe1wicHViS2V5XCI6XCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJ9XSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTAwMDAwMCxcImdhc0xpbWl0XCI6MTAwMDAsXCJjaGFpbklkXCI6XCIwXCIsXCJnYXNQcmljZVwiOjEuMGUtMixcInNlbmRlclwiOlwic2VuZGVyMDBcIn0sXCJub25jZVwiOlwiMTVcIn0ifQ - eyJnYXMiOjcsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJ0aW1lIjoiMTk3MC0wMS0wMVQwMDowMDowMFoifX0sInJlcUtleSI6Ik84aFlNU1VIZ0pDT0VxaE8tMkRUTURiYU8wSGZselYzNFB0czNHZVBwSVEiLCJsb2dzIjoidTdKNDU3dGdzNDJ1dGhjOU1TbWtkaTkxT2tUb2FCNFpGei1QUWtSajJhdyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjI2fQ - - eyJoYXNoIjoiSGFsbTJLYUV5Qm5weXJqMkxHMmJQcVZDUmZBYk8yWHZzZWlnaURaZElLOCIsInNpZ3MiOlt7InNpZyI6ImI0MDNlZWI3ODI0NzA0OWU0NjEzNGQzYWQ0MWZlMTAwNWMxM2I0NzNhNjUzZGNmNTVlN2ZmMzIzOGU5N2VkYmRmZTMyZmFmODczODViYTc0MmNmMDFmYmFkMDU2ODEwNWVjNDhhMDk1MzIyNWJmMmY0ODJjNjhiMjkyZGNmOTAzIn1dLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1widGVzdC1hZG1pbi1rZXlzZXRcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdfSxcImNvZGVcIjpcIihhdCAnYmxvY2staGVpZ2h0IChjaGFpbi1kYXRhKSlcIn19LFwic2lnbmVyc1wiOlt7XCJwdWJLZXlcIjpcIjM2ODgyMGY4MGMzMjRiYmM3YzJiMDYxMDY4OGE3ZGE0M2UzOWY5MWQxMTg3MzI2NzFjZDljNzUwMGZmNDNjY2FcIn1dLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxMDAwMDAwLFwiZ2FzTGltaXRcIjoxMDAwMCxcImNoYWluSWRcIjpcIjBcIixcImdhc1ByaWNlXCI6MS4wZS0yLFwic2VuZGVyXCI6XCJzZW5kZXIwMFwifSxcIm5vbmNlXCI6XCIxNlwifSJ9 From 69512137c2e42e3b512418c53c6e0b97814a7827 Mon Sep 17 00:00:00 2001 From: Edmund Noble Date: Tue, 1 Aug 2023 17:35:44 -0400 Subject: [PATCH 6/6] Always validate hashes --- src/Chainweb/Pact/PactService/ExecBlock.hs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Chainweb/Pact/PactService/ExecBlock.hs b/src/Chainweb/Pact/PactService/ExecBlock.hs index 3b21bf8a3f..b603c1c1fe 100644 --- a/src/Chainweb/Pact/PactService/ExecBlock.hs +++ b/src/Chainweb/Pact/PactService/ExecBlock.hs @@ -152,11 +152,8 @@ execBlock currHeader plData pdbenv = do modify' $ set psStateValidated $ Just currHeader - -- Validate hashes if not doing a replay. no need to re-validate hashes - -- during a replay, because these blocks have already been validated - view psReplaying >>= \x -> unless x $ - either throwM (void . return) $! - validateHashes currHeader plData miner results + either throwM (void . return) $ + validateHashes currHeader plData miner results return $! T2 miner results