Skip to content

Commit

Permalink
TOSQUASH elide EBBs
Browse files Browse the repository at this point in the history
  • Loading branch information
nfrisby committed Jan 17, 2022
1 parent c459879 commit 990f549
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 13 deletions.
17 changes: 10 additions & 7 deletions ouroboros-consensus-cardano/tools/db-analyser/Analysis.hs
Expand Up @@ -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
Expand Down
8 changes: 5 additions & 3 deletions ouroboros-consensus-cardano/tools/db-analyser/Block/Byron.hs
Expand Up @@ -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

Expand All @@ -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
Expand Down Expand Up @@ -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
)
Expand Down
Expand Up @@ -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

Expand Down Expand Up @@ -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)
)
Expand Down
4 changes: 2 additions & 2 deletions ouroboros-consensus-cardano/tools/db-analyser/HasAnalysis.hs
Expand Up @@ -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)
Expand Down

0 comments on commit 990f549

Please sign in to comment.