From 982babe361e5216e76326cdaddfd6fc16eedc32b Mon Sep 17 00:00:00 2001 From: Nicolas Frisby Date: Mon, 17 Jan 2022 06:54:13 -0800 Subject: [PATCH] TOSQUASH elide EBBs --- .../tools/db-analyser/Analysis.hs | 17 ++++++++++------- .../tools/db-analyser/Block/Byron.hs | 8 +++++--- .../tools/db-analyser/Block/Shelley.hs | 4 +++- .../tools/db-analyser/HasAnalysis.hs | 4 ++-- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/ouroboros-consensus-cardano/tools/db-analyser/Analysis.hs b/ouroboros-consensus-cardano/tools/db-analyser/Analysis.hs index 52f894b83bd..ee1117fc147 100644 --- a/ouroboros-consensus-cardano/tools/db-analyser/Analysis.hs +++ b/ouroboros-consensus-cardano/tools/db-analyser/Analysis.hs @@ -258,14 +258,17 @@ extractTxOutputIdDeltas AnalysisEnv { db, registry, initLedger, limit, tracer } where process :: () -> blk -> IO () process () blk = - traceWith tracer $ ExtractTxOutputIdDeltasEvent - (blockNo blk) - (blockSlot blk) - count - consumed - created + case isEBB of + IsEBB -> pure () + IsNotEBB -> do + traceWith tracer $ ExtractTxOutputIdDeltasEvent + (blockNo blk) + (blockSlot blk) + count + consumed + created where - (count, consumed, created) = HasAnalysis.extractTxOutputIdDelta blk + (isEBB, count, consumed, created) = HasAnalysis.extractTxOutputIdDelta blk extractGenesisTxOutputIds :: forall blk. HasAnalysis blk => Analysis blk extractGenesisTxOutputIds AnalysisEnv { initLedger, tracer } = do diff --git a/ouroboros-consensus-cardano/tools/db-analyser/Block/Byron.hs b/ouroboros-consensus-cardano/tools/db-analyser/Block/Byron.hs index f82c0a9c86e..1fb5f2a0536 100644 --- a/ouroboros-consensus-cardano/tools/db-analyser/Block/Byron.hs +++ b/ouroboros-consensus-cardano/tools/db-analyser/Block/Byron.hs @@ -29,6 +29,7 @@ import qualified Cardano.Chain.Genesis as Genesis import qualified Cardano.Chain.UTxO as Chain import qualified Cardano.Chain.Update as Update +import Ouroboros.Consensus.Block (IsEBB (..)) import qualified Ouroboros.Consensus.Mempool.TxLimits as TxLimits import Ouroboros.Consensus.Node.ProtocolInfo @@ -41,7 +42,7 @@ import HasAnalysis instance HasAnalysis ByronBlock where countTxOutputs = aBlockOrBoundary (const 0) countTxOutputsByron - extractTxOutputIdDelta = aBlockOrBoundary (const (0, [], [])) extractTxOutputIdDeltaByron + extractTxOutputIdDelta = aBlockOrBoundary (const (IsEBB, 0, [], [])) extractTxOutputIdDeltaByron genesisTxOutputIds st = (Map.size maxes, txOutputIds) where @@ -126,9 +127,10 @@ countTxOutputsByron Chain.ABlock{..} = countTxPayload bodyTxPayload countTx :: Chain.Tx -> Int countTx = length . Chain.txOutputs -extractTxOutputIdDeltaByron :: Chain.ABlock ByteString -> (Int, [TxIn], [TxOutputIds]) +extractTxOutputIdDeltaByron :: Chain.ABlock ByteString -> (IsEBB, Int, [TxIn], [TxOutputIds]) extractTxOutputIdDeltaByron Chain.ABlock{..} = - ( length txs + ( IsNotEBB + , length txs , foldMap inputs txs , mapMaybe outputs txs ) diff --git a/ouroboros-consensus-cardano/tools/db-analyser/Block/Shelley.hs b/ouroboros-consensus-cardano/tools/db-analyser/Block/Shelley.hs index 7631040c8f3..9fcd1c3efa2 100644 --- a/ouroboros-consensus-cardano/tools/db-analyser/Block/Shelley.hs +++ b/ouroboros-consensus-cardano/tools/db-analyser/Block/Shelley.hs @@ -38,6 +38,7 @@ import qualified Cardano.Ledger.Alonzo.Tx as Alonzo import Cardano.Ledger.Shelley (ShelleyEra) import Cardano.Ledger.Mary (MaryEra) +import Ouroboros.Consensus.Block (IsEBB (..)) import qualified Ouroboros.Consensus.Mempool.TxLimits as TxLimits import Ouroboros.Consensus.Node.ProtocolInfo @@ -117,7 +118,8 @@ instance ( ShelleyBasedEra era countOutputs = length . getField @"outputs" . getField @"body" extractTxOutputIdDelta blk = - ( length txs + ( IsNotEBB + , length txs , foldMap inputs txs , mapMaybe outputs (toList txs) ) diff --git a/ouroboros-consensus-cardano/tools/db-analyser/HasAnalysis.hs b/ouroboros-consensus-cardano/tools/db-analyser/HasAnalysis.hs index aa32eec53e7..2b6cbfd1798 100644 --- a/ouroboros-consensus-cardano/tools/db-analyser/HasAnalysis.hs +++ b/ouroboros-consensus-cardano/tools/db-analyser/HasAnalysis.hs @@ -72,8 +72,8 @@ instance Show TxOutputIds where class (HasAnnTip blk, GetPrevHash blk) => HasAnalysis blk where countTxOutputs :: blk -> Int - -- | How many transactions, the txins consumed, and the txouts created - extractTxOutputIdDelta :: blk -> (Int, [TxIn], [TxOutputIds]) + -- | Is it an EBB, how many transactions, which txins consumed, which txouts created + extractTxOutputIdDelta :: blk -> (IsEBB, Int, [TxIn], [TxOutputIds]) genesisTxOutputIds :: LedgerState blk -> (Int, [TxOutputIds]) blockTxSizes :: blk -> [SizeInBytes] knownEBBs :: proxy blk -> Map (HeaderHash blk) (ChainHash blk)